著录项信息
专利名称 | 一种网络设备的固件恢复方法及装置 |
申请号 | CN201510094537.3 | 申请日期 | 2015-03-03 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2015-07-01 | 公开/公告号 | CN104750574A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/14 | IPC分类号 | G;0;6;F;1;1;/;1;4;;;G;0;6;F;9;/;4;4;0;1查看分类表>
|
申请人 | 普联技术有限公司 | 申请人地址 | 广东省深圳市南山区高新区高新南四道023号高新工业村R1号B区第三层西段
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳市美科星通信技术有限公司 | 当前权利人 | 深圳市美科星通信技术有限公司 |
发明人 | 侯旭勃 |
代理机构 | 深圳中一专利商标事务所 | 代理人 | 张全文 |
摘要
本发明适用于网络技术领域,提供了一种网络设备的固件恢复方法及装置,包括:在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区仅支持读操作;所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区开始运行;触发所述出厂恢复分区进入恢复模式;在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。当网络设备的固件被破坏时,本发明提供的固件恢复方法能够避免网络设备无法成功启动的情况出现,可以通过恢复模式引导用户完成网络设备的固件修复,减少网络设备的返修次数和废弃现象,并加快网络设备的返修速度,提高生产效率。
1.一种网络设备的固件恢复方法,其特征在于,包括:
在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区从所述闪存的零地址开始存放,所述出厂恢复分区仅支持读操作;
所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区的起始位置开始运行;
触发所述出厂恢复分区进入恢复模式;
在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。
2.如权利要求1所述的方法,其特征在于,所述触发所述出厂恢复分区进入恢复模式包括:
在所述网络设备上电时,检测所述网络设备的复位按键是否按下;
当所述网络设备的复位按键按下,触发所述出厂恢复分区进入恢复模式。
3.如权利要求1所述的方法,其特征在于,所述触发所述出厂恢复分区进入恢复模式包括:
检测所述网络设备的闪存中的固件分区数据是否完整;
若所述网络设备的闪存中的固件分区数据不完整,触发所述出厂恢复分区进入恢复模式。
4.如权利要求3所述的方法,其特征在于,所述检测所述网络设备的闪存中的固件分区数据是否完整包括:
通过预设算法计算所述固件分区数据的校验值;
判断计算出的校验值与预先存储在所述出厂恢复分区中的校验值是否一致;
若计算出的校验值与预先存储在所述出厂恢复分区中的校验值不一致,则所述网络设备的闪存中的固件分区数据不完整;
若计算出的校验值与预先存储在所述出厂恢复分区中的校验值一致,则所述网络设备的闪存中的固件分区数据完整。
5.如权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
触发所述出厂恢复分区进入引导模式;
由所述出厂恢复分区跳转至所述网络设备的闪存中的引导程序所在分区,启动所述网络设备。
6.一种网络设备的固件恢复装置,其特征在于,包括:
设置单元,用于在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区从所述闪存的零地址开始存放,所述出厂恢复分区仅支持读操作;
运行单元,用于所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区的起始位置开始运行;
第一触发单元,用于触发所述出厂恢复分区进入恢复模式;
恢复单元,用于在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。
7.如权利要求6所述的装置,其特征在于,所述第一触发单元包括:
第一检测子单元,用于在所述网络设备上电时,检测所述网络设备的复位按键是否按下;
第一触发子单元,用于当所述网络设备的复位按键按下,触发所述出厂恢复分区进入恢复模式。
8.如权利要求6所述的装置,其特征在于,所述第一触发单元包括:
第二检测子单元,用于检测所述网络设备的闪存中的固件分区数据是否完整;
第二触发子单元,用于若所述网络设备的闪存中的固件分区数据不完整,触发所述出厂恢复分区进入恢复模式。
9.如权利要求8所述的装置,其特征在于,所述第二检测子单元具体用于:
通过预设算法计算所述固件分区数据的校验值;
判断计算出的校验值与预先存储在所述出厂恢复分区中的校验值是否一致;
若计算出的校验值与预先存储在所述出厂恢复分区中的校验值不一致,则所述网络设备的闪存中的固件分区数据不完整;
若计算出的校验值与预先存储在所述出厂恢复分区中的校验值一致,则所述网络设备的闪存中的固件分区数据完整。
10.如权利要求6至9任一项所述的装置,其特征在于,所述装置还包括:
第二触发单元,用于触发所述出厂恢复分区进入引导模式;
启动单元,用于由所述出厂恢复分区跳转至所述网络设备的闪存中的引导程序所在分区,启动所述网络设备。
一种网络设备的固件恢复方法及装置\n技术领域\n[0001] 本发明属于网络技术领域,尤其涉及一种网络设备的固件恢复方法及装置。\n背景技术\n[0002] 家用路由器的固件通常包括引导程序、操作系统和应用程序,当设备上电之后,固件通过以下方式顺序执行:CPU执行引导程序,引导程序初始化硬件后引导操作系统,操作系统加载应用程序。在家用路由器的使用过程中,固件存在着被意外破坏的可能,例如,固件升级过程中意外断电,或者使用了不兼容的破解固件等等,从而导致家用路由器无法正常启动。\n[0003] 目前,在智能家用路由器中,引入了双系统来解决上述问题。双系统的固件构成通常包括一份引导程序、两份操作系统和两份应用程序,设备上电后,固件的执行顺序为“引导程序-操作系统1-应用程序1”,或者“引导程序-操作系统2-应用程序2”,引导程序根据存储在闪存中的标志位决定引导操作系统1或者操作系统2。然而,上述解决方案需要将闪存体积增加近一倍,造成资源浪费,而且存在升级引导程序的可能,从而引入引导程序被破坏的可能,导致设备无法正常启动。\n发明内容\n[0004] 本发明实施例的目的在于提供一种网络设备的固件恢复方法及装置,旨在解决目前网络设备中的固件被意外破坏之后,网络设备无法正常启动的问题。\n[0005] 本发明实施例是这样实现的,一种网络设备的固件恢复方法,包括:\n[0006] 在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区仅支持读操作;\n[0007] 所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区开始运行;\n[0008] 触发所述出厂恢复分区进入恢复模式;\n[0009] 在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。\n[0010] 本发明实施例的另一目的在于提供一种网络设备的固件恢复装置,包括:\n[0011] 设置单元,用于在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区仅支持读操作;\n[0012] 运行单元,用于所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区开始运行;\n[0013] 第一触发单元,用于触发所述出厂恢复分区进入恢复模式;\n[0014] 恢复单元,用于在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。\n[0015] 当网络设备的固件被破坏时,本发明实施例提供的固件恢复方法能够避免网络设备无法成功启动的情况出现,可以通过恢复模式引导用户完成网络设备的固件修复,减少网络设备的返修次数和废弃现象,并加快网络设备的返修速度,提高生产效率。\n附图说明\n[0016] 图1是本发明实施例提供的网络设备的固件恢复方法的实现流程图;\n[0017] 图2是本发明实施例提供的网络设备的固件恢复方法S103的具体实现流程图;\n[0018] 图3是本发明另一实施例提供的网络设备的固件恢复方法S103的具体实现流程图;\n[0019] 图4是本发明实施例提供的网络设备的固件恢复方法S301的具体实现流程图;\n[0020] 图5是本发明另一实施例提供的网络设备的固件恢复方法S103的具体实现流程图;\n[0021] 图6是本发明实施例提供的网络设备的固件恢复方法S104的工作流程示意图;\n[0022] 图7是本发明实施例提供的网络设备的固件恢复方法的引导模式工作流程图;\n[0023] 图8是本发明实施例提供的网络设备的固件恢复装置的结构框图。\n具体实施方式\n[0024] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0025] 图1示出了本发明实施例提供的网络设备的固件恢复方法的实现流程,详述如下:\n[0026] 在S101中,在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区仅支持读操作。\n[0027] 其中,所述网络设备,包括但不限于家用路由器,或者具备与家用路由器类似系统架构的嵌入式网络设备。\n[0028] 所述闪存,即flash,具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据,使数据不会因为断电而丢失,因此,在嵌入式设备中被广泛采用,用作存储Bootloader以及操作系统或者程序代码。传统的网络设备闪存中通常包括用于分别存放引导程序、操作系统和应用程序的三个分区,而在本实施例中,在网络设备的闪存中增加出厂恢复分区,该分区仅支持读操作,即,网络设备出厂之后,该分区内的数据内容就不再改变。\n[0029] 在S102中,所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区开始运行。\n[0030] 在本实施例中,设置出厂恢复分区从网络设备的闪存的零地址开始存放,一旦网络设备上电之后,CPU便从flash的零地址开始运行,即,从出厂恢复分区开始运行。\n[0031] 在S103中,触发所述出厂恢复分区进入恢复模式。\n[0032] 出厂恢复分区可以工作在两种模式,包括引导模式和恢复模式,其中,当网络设备的固件出现问题无法启动时,可以触发出厂恢复分区进入恢复模式,用于实现固件恢复。\n[0033] 作为本发明的一个实施例,可以通过手动方式触发出厂恢复分区进入恢复模式,如图2所示,S103具体为:\n[0034] 在S201中,在所述网络设备上电时,检测所述网络设备的复位按键是否按下。\n[0035] 在S202中,当所述网络设备的复位按键按下,触发所述出厂恢复分区进入恢复模式。\n[0036] 在网络设备上电之后,检测网络设备的复位(Reset)按键是否被按下,若复位按键未被按下,则按正常的启动流程启动网络设备;若复位按键被按下,则触发出厂恢复分区进入恢复模式。因此,在本实施例中,若发现网络设备的固件被破坏,无法启动,用户可以在网络设备上电之后手动按下网络设备的复位按键,以执行固件恢复过程。\n[0037] 作为本发明的一个实施例,可以通过自动方式触发出厂恢复分区进入恢复模式,如图3所示,S103具体为:\n[0038] 在S301中,检测所述网络设备的闪存中的固件分区数据是否完整。\n[0039] 在S302中,若所述网络设备的闪存中的固件分区数据不完整,触发所述出厂恢复分区进入恢复模式。\n[0040] 在网络设备上电之后,首先检测固件所在分区的数据是否完整,若固件所在分区的数据完整,则按正常的启动流程启动网络设备;若固件所在分区的数据不完整,则触发出厂恢复分区进入恢复模式。因此,在本实施例中,若网络设备的固件被破坏,无法启动,网络设备在上电之后会自动进入固件恢复工作模式,以便进一步执行固件恢复过程。\n[0041] 对固件所在的数据完整性的检测可以通过预置的算法来实现,作为本发明的一个实施例,如图4所示,S301具体为:\n[0042] 在S401中,通过预设算法计算所述固件分区数据的校验值。\n[0043] 在S402中,判断计算出的校验值与预先存储在所述出厂恢复分区中的校验值是否一致。\n[0044] 在S403中,若计算出的校验值与预先存储在所述出厂恢复分区中的校验值不一致,则所述网络设备的闪存中的固件分区数据不完整。\n[0045] 在S404中,若计算出的校验值与预先存储在所述出厂恢复分区中的校验值一致,则所述网络设备的闪存中的固件分区数据完整。\n[0046] 例如,可以通过MD5(Message-Digest Algorithm 5)算法计算固件所在分区数据的MD5值,且在网络设备上一次进行固件更新之后,完整固件的MD5值已被存储在出厂恢复分区之中,因此,可以将计算出的MD5值与预先存储在出厂恢复分区中的MD5值进行比较,判断二者是否一致,若一致,则表示固件没有被破坏,那么按正常的启动流程启动网络设备;\n若不一致,则表示固件被破坏,需要触发出厂恢复分区进入恢复模式。\n[0047] 除了上述通过手动和自动两种方式触发出厂恢复分区进入恢复模式之外,显然,还可以采用手动和自动两种方式相结合的方法,触发出厂恢复分区进入恢复模式,如图5所示,在网络设备上电之后,首先判断网络设备的复位按键是否被按下,若复位按键被按下,则直接触发出厂恢复分区进入恢复模式;若复位按键未被按下,则进一步检测固件所在分区的数据是否完整,如果不完整,则直接触发出厂恢复分区进入恢复模式,若完整,则按正常的启动流程启动网络设备。\n[0048] 在S104中,在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。\n[0049] 一旦出厂恢复分区进入了恢复模式,则通过该分区内预置的程序提供动态主机配置协议(Dynamic Host Configuration Protocol)服务,用于为接入网络设备的客户端分配IP地址,同时,提供Web服务,用于向客户端提供web页面以供用户上传固件。当网络设备接收到通过web页面上传的固件,首先检测固件的合法性,例如,固件的版本号是否正确,等等,若判断固件合法之后,将固件写入对应的flash分区。\n[0050] 作为网络设备的一种常见类型,接下来,以家用的智能路由器为例,对本发明实施例提供的网络设备的固件恢复方法S104的工作流程进行详细说明。所述智能路由器,目前已经在家庭、办公场所等场景之下被普及,其通常具有独立的操作系统,可以由用户自行安装各种应用,自行控制带宽、自行控制在线人数、自行控制浏览网页、自行控制在线时间、同时拥有强大的USB共享功能,真正做到网络和设备的智能化管理。在本实施例中,用户通过Web页面来对智能路由器进行管理操作:\n[0051] 首先,用户在计算机、笔记本、平板、手机等终端设备上开启浏览器,访问智能路由器的管理页面,智能路由器在接收到访问指令之后,向终端设备返回用于上传固件的固件恢复页面;在固件上传过程中,对于已上传的固件,智能路由器会检测该固件的合法性,若上传的固件不合法,则会通过Web页面返回“固件不正确,请重新上传”的提示信息,若上传的固件合法,则会尝试将该固件写入智能路由器对应的flash分区之中;在对接收到的固件执行写入操作之后,判断该固件是否写入成功,若写入成功,则设置智能路由器可以在2秒之后重启,或者在固件恢复成功之后自动重启;若写入失败,则通过web页面提示用户重新上传固件。\n[0052] 此外,在本发明实施例中,在固件未被破坏,或者固件恢复成功的情况下,若网络设备上电或者重启之后,则触发出厂恢复分区进入引导模式,则此时,如图7所示,网络设备的运行过程为:由出厂恢复分区跳转至引导程序所在分区,引导程序初始化硬件后引导操作系统,操作系统加载应用程序,从而完成网络设备的启动,实现网络设备的正常运行。\n[0053] 当网络设备的固件被破坏时,本发明实施例提供的固件恢复方法能够避免网络设备无法成功启动的情况出现,可以通过恢复模式引导用户完成网络设备的固件修复,减少网络设备的返修次数和废弃现象,同时,对于返修的网络产品,无需将flash从PCB上焊下来重新烧写,能够加快网络设备的返修速度,提高生产效率。\n[0054] 同时,本发明实施例提及的出厂恢复分区仅需要占用128Kbytes以内的flash资源,就能支持固件恢复功能,无需在硬件上扩大flash容量,很好地节约了网络设备的flash资源,且整个固件恢复过程无需操作系统支持,实施简单,大大提高了固件恢复的效率。\n[0055] 对应于上文实施例所述的网络设备的固件恢复方法,图8示出了本发明实施例提供的网络设备的固件恢复装置的结构框图,该装置可以位于家用路由器等网络设备中,为了便于说明,仅示出了与本实施例相关的部分。\n[0056] 参照图8,该装置包括:\n[0057] 设置单元81,在所述网络设备的闪存中设置出厂恢复分区,所述出厂恢复分区仅支持读操作。\n[0058] 运行单元82,所述网络设备上电之后,所述网络设备的CPU从所述出厂恢复分区开始运行。\n[0059] 第一触发单元83,触发所述出厂恢复分区进入恢复模式。\n[0060] 恢复单元84,在所述恢复模式之下,将通过web页面上传的固件恢复至该固件对应的闪存分区中。\n[0061] 可选地,所述第一触发单元83包括:\n[0062] 第一检测子单元,在所述网络设备上电时,检测所述网络设备的复位按键是否按下。\n[0063] 第一触发子单元,当所述网络设备的复位按键按下,触发所述出厂恢复分区进入恢复模式。\n[0064] 可选地,所述第一触发单元83包括:\n[0065] 第二检测子单元,检测所述网络设备的闪存中的固件分区数据是否完整。\n[0066] 第二触发子单元,若所述网络设备的闪存中的固件分区数据不完整,触发所述出厂恢复分区进入恢复模式。\n[0067] 可选地,所述第二检测子单元具体用于:\n[0068] 通过预设算法计算所述固件分区数据的校验值;\n[0069] 判断计算出的校验值与预先存储在所述出厂恢复分区中的校验值是否一致;\n[0070] 若计算出的校验值与预先存储在所述出厂恢复分区中的校验值不一致,则所述网络设备的闪存中的固件分区数据不完整;\n[0071] 若计算出的校验值与预先存储在所述出厂恢复分区中的校验值一致,则所述网络设备的闪存中的固件分区数据完整。\n[0072] 可选地,所述装置还包括:\n[0073] 第二触发单元,触发所述出厂恢复分区进入引导模式。\n[0074] 启动单元,由所述出厂恢复分区跳转至所述网络设备的闪存中的引导程序所在分区,启动所述网络设备。\n[0075] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2019-11-22
专利权的转移
登记生效日: 2019.11.01
专利权人由普联技术有限公司变更为深圳市美科星通信技术有限公司
地址由518000 广东省深圳市南山区深南路科技园工业厂房24栋南段1层、3-5层、28栋北段1-4层变更为518000 广东省深圳市南山区高新区高新南四道023号高新工业村R1号B区第三层西段
- 2018-06-19
- 2015-07-29
实质审查的生效
IPC(主分类): G06F 11/14
专利申请号: 201510094537.3
申请日: 2015.03.03
- 2015-07-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-03-20
|
2012-11-09
| | |
2
| |
2011-08-03
|
2010-12-29
| | |
3
| |
2012-06-20
|
2011-11-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |