首页 > 专利 > 台州市吉吉知识产权运营有限公司 > 一种基于openwrt的固件升级方法及路由器专利详情

一种基于openwrt的固件升级方法及路由器   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2017-08-24
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2018-04-17
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-04-09
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2037-08-24
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201710734885.1 申请日 2017-08-24
公开/公告号 CN107566169B 公开/公告日 2021-04-09
授权日 2021-04-09 预估到期日 2037-08-24
申请年 2017年 公开/公告年 2021年
缴费截止日 2022-09-24
分类号 H04L12/24H04L12/771G06F8/654 主分类号 H04L12/24
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 0
引用专利数量 4 被引证专利数量 0
非专利引证
引用专利 CN104915226A、CN102945174A、CN104102514A、CN105488419A 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、申请权转移、授权
申请人信息
申请人 第一申请人
专利权人 台州市吉吉知识产权运营有限公司 当前专利权人 台州市吉吉知识产权运营有限公司
发明人 王成长 第一发明人 王成长
地址 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号 邮编 318015
申请人数量 1 发明人数量 1
申请人所在省 浙江省 申请人所在市 浙江省台州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
浙江千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
裴金华
摘要
本发明提供了一种基于openwrt的固件升级方法及路由器,其方法包括:S100运行预设升级脚本,预设升级脚本启动在RAM中创建ramfs文件系统;S200在ramfs文件系统中生成预设路径和软链接;预设路径为从ROM调用目标固件文件的路径;软链接为预设命令的链接地址;S300擦除Flash,根据预设路径写入目标固件文件至Flash;S400在ramfs文件系统中调用软链接执行重启操作,完成目标固件的升级。本发明避免了设备升级过程中,Flash破坏冲突等导致的设备死机变砖头无法重启的问题,极大的提高了升级的稳定性,使得待升级路由器擦写升级更为安全可靠。
  • 摘要附图
    一种基于openwrt的固件升级方法及路由器
  • 说明书附图:图1
    一种基于openwrt的固件升级方法及路由器
  • 说明书附图:图2
    一种基于openwrt的固件升级方法及路由器
  • 说明书附图:图3
    一种基于openwrt的固件升级方法及路由器
  • 说明书附图:图4
    一种基于openwrt的固件升级方法及路由器
  • 说明书附图:图5
    一种基于openwrt的固件升级方法及路由器
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-04-09 授权
2 2020-11-06 专利申请权的转移 登记生效日: 2020.10.27 申请人由上海斐讯数据通信技术有限公司变更为台州市吉吉知识产权运营有限公司 地址由201616 上海市松江区思贤路3666号变更为318015 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号
3 2018-04-17 实质审查的生效 IPC(主分类): H04L 12/24 专利申请号: 201710734885.1 申请日: 2017.08.24
4 2018-01-09 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于openwrt的固件升级方法,其特征在于,包括步骤:
S100运行预设升级脚本,所述预设升级脚本启动在RAM中创建ramfs文件系统;
S200在所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;
S300擦除Flash,根据所述预设路径写入所述目标固件文件至Flash;
S400在所述ramfs文件系统中调用所述软链接执行重启操作,完成所述目标固件的升级;
所述步骤S100之前包括步骤:
S010生成所述预设升级脚本;所述预设升级脚本包括预设获取地址,所述预设获取地址为获取目标固件安装包的地址;
S020储存所述预设升级脚本至ROM中,并根据所述预设获取地址获取所述目标固件安装包至ROM;
S030判断待升级路由器是否接收到升级指令;若是,执行步骤S100。

2.根据权利要求1所述的基于openwrt的固件升级方法,其特征在于,所述步骤S300包括步骤:
S310擦除Flash中历史固件文件的所有数据;所述历史固件文件是对应于所述目标固件文件的历史版本文件;
S320根据所述预设路径写入所述目标固件文件至Flash。

3.根据权利要求1所述的基于openwrt的固件升级方法,其特征在于,所述步骤S400包括步骤:
S410在所述ramfs文件系统中输入预设命令;所述预设命令包括重启命令或复位命令或关闭看门狗命令;
S420根据所述预设命令调用所述软链接执行重启操作,完成所述目标固件的升级。

4.根据权利要求1-3任一项所述的基于openwrt的固件升级方法,其特 征在于,所述步骤S300之后,S400之前包括步骤:
S301判断写入的所述目标固件文件是否是完整;若是,执行步骤S302;
S302备份固件配置文件至ROM;所述固件配置文件包括所述目标固件文件和配置文件。

5.一种基于openwrt的固件升级路由器,其特征在于,包括:
运行模块,运行预设升级脚本;
启动创建模块,根据所述运行模块运行的所述预设升级脚本启动在RAM中创建ramfs文件系统;
第一生成模块,在所述启动创建模块生成的所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;
擦除写入模块,擦除Flash,根据所述第一生成模块生成的所述预设路径写入所述目标固件文件至Flash;
调用重启模块,在所述ramfs文件系统中调用所述第一生成模块生成的所述软链接执行重启操作,完成所述目标固件的升级;
还包括:
第二生成模块,生成所述预设升级脚本;所述预设升级脚本包括预设获取地址,所述预设获取地址为获取目标固件安装包的地址;
储存模块,储存所述第二生成模块生成的所述预设升级脚本至ROM中,并根据所述预设获取地址获取所述目标固件安装包至ROM;
第一判断模块,判断待升级路由器是否接收到升级指令;若是,所述运行模块开始运行所述预设升级脚本。

6.根据权利要求5所述的基于openwrt的固件升级路由器,其特征在于,所述擦除写入模块包括:
擦除单元,擦除Flash中历史固件文件的所有数据;所述历史固件文件是对应于所述目标固件文件的历史版本文件;
写入单元,在所述擦除单元擦除Flash中历史固件文件的所有数据后,根 据所述预设路径写入所述目标固件文件至Flash。

7.根据权利要求5所述的基于openwrt的固件升级路由器,其特征在于,所述调用重启模块包括:
输入单元,在所述ramfs文件系统中输入预设命令;所述预设命令包括重启命令或复位命令或关闭看门狗命令;
调用重启单元,根据所述输入单元获取的所述预设命令调用所述软链接执行重启操作,完成所述目标固件的升级。

8.根据权利要求5-7任一项所述的基于openwrt的固件升级路由器,其特征在于,还包括:
第二判断模块,判断所述擦除写入模块写入的所述目标固件文件是否是完整;
备份模块,当所述第二判断模块判定所述目标固件完整时,备份固件配置文件至ROM;
所述固件配置文件包括所述目标固件文件和配置文件。
说明书

技术领域

[0001] 本发明涉及路由器升级领域,尤指一种基于openwrt的固件升级方法及路由器。

背景技术

[0002] 当我们使用路由器的时候,大部分人也许并未意识到这种将网络信号分配到各个电脑的设备,其实也有软件运行其中,在路由器上,我们称之为固件。当用户的设备出现问题的时候,尤其是出现了通过恢复出厂设置也不能修复的较复杂问题的时候,此时如果通过更换硬件,设备等方式既不经济方便,也不适合维护,只要不是硬件上或者底层问题,此时最好的方式就是刷机(亦称刷固件),通过路由器管理界面里的升级功能对路由器的固件进行重装或升级,能够大大提升路由器的整体性能。
[0003] 目前的待升级路由器,刷机直接擦写待升级路由器的整个文件系统,导致当用户刷机升级时,如果当前运行的文件系统遭到破坏时,可能会导致待升级路由器中的预设命令无法使用,从而使得待升级路由器无法使用的死机情况,使得设备不能稳定升级,甚至不能正常使用。

发明内容

[0004] 本发明的目的是提供一种基于openwrt的固件升级方法及路由器,实现稳定升级路由器的固件的目的。
[0005] 本发明提供的技术方案如下:
[0006] 本发明提供一种基于openwrt的固件升级方法,包括步骤:S100运行预设升级脚本,所述预设升级脚本启动在RAM中创建ramfs文件系统;S200在所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;S300擦除Flash,根据所述预设路径写入所述目标固件文件至Flash;S400在所述ramfs文件系统中调用所述软链接执行重启操作,完成所述目标固件的升级。
[0007] 进一步的,所述步骤S100之前包括步骤:S010生成所述预设升级脚本;所述预设升级脚本包括预设获取地址,所述预设获取地址为获取目标固件安装包的地址;S020储存所述预设升级脚本至ROM中,并根据所述预设获取地址获取所述目标固件安装包至ROM;S030判断待升级路由器是否接收到升级指令;若是,执行步骤S100。
[0008] 进一步的,所述步骤S300包括步骤:S310擦除Flash中历史固件文件的所有数据;所述历史固件文件是对应于所述目标固件文件的历史版本文件;S320根据所述预设路径写入所述目标固件文件至Flash。
[0009] 进一步的,所述步骤S400包括步骤:S410在所述ramfs文件系统中输入预设命令;所述预设命令包括重启命令或复位命令或关闭看门狗命令;S420根据所述预设命令调用所述软链接执行重启操作,完成所述目标固件的升级。
[0010] 进一步的,所述步骤S300之后,S400之前包括步骤:S301判断写入的所述目标固件文件是否是完整;若是,执行步骤S302;S302备份固件配置文件至ROM;所述固件配置文件包括所述目标固件文件和配置文件。
[0011] 本发明还提供一种基于openwrt的固件升级路由器,包括:运行模块,运行预设升级脚本;启动创建模块,根据所述运行模块运行的所述预设升级脚本启动在RAM中创建ramfs文件系统;第一生成模块,在所述启动创建模块生成的所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;擦除写入模块,擦除Flash,根据所述第一生成模块生成的所述预设路径写入所述目标固件文件至Flash;调用重启模块,在所述ramfs文件系统中调用所述第一生成模块生成的所述软链接执行重启操作,完成所述目标固件的升级。
[0012] 进一步,还包括:第二生成模块,生成所述预设升级脚本;所述预设升级脚本包括预设获取地址,所述预设获取地址为获取目标固件安装包的地址;储存模块,储存所述第二生成模块生成的所述预设升级脚本至ROM中,并根据所述预设获取地址获取所述目标固件安装包至ROM;第一判断模块,判断待升级路由器是否接收到升级指令;若是,所述运行模块开始运行所述预设升级脚本。
[0013] 进一步,所述擦除写入模块包括:擦除单元,擦除Flash中历史固件文件的所有数据;所述历史固件文件是对应于所述目标固件文件的历史版本文件;写入单元,在所述擦除单元擦除Flash中历史固件文件的所有数据后,根据所述预设路径写入所述目标固件文件至Flash。
[0014] 进一步,所述调用重启模块包括:输入单元,在所述ramfs文件系统中输入预设命令;所述预设命令包括重启命令或复位命令或关闭看门狗命令;调用重启单元,根据所述输入单元获取的所述预设命令调用所述软链接执行重启操作,完成所述目标固件的升级。
[0015] 进一步,还包括:第二判断模块,判断所述擦除写入模块写入的所述目标固件文件是否是完整;备份模块,当所述第二判断模块判定所述目标固件完整时,备份固件配置文件至ROM;所述固件配置文件包括所述目标固件文件和配置文件。
[0016] 通过本发明提供的一种基于openwrt的固件升级方法及路由器,能够带来以下至少一种有益效果:
[0017] 1)本发明避免了设备升级过程中,Flash破坏冲突等导致的设备死机变砖头无法重启的问题,极大的提高了升级的稳定性,使得待升级路由器擦写升级更为安全可靠。
[0018] 2)本发明提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。
[0019] 3)本发明提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。

实施方案

[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0027] 为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0028] OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。
[0029] ramfs文件系统是Linus系统的一种基于内存的文件系统,工作于虚拟文件系统层,不能格式化,可以创建多个,在创建时可以指定最大能使用的内存大小,并且读写。ramfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs文件系统来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。ramfs文件系统不能格式化,文件系统大小可以随所含文件内容大小变化。
[0030] ramfs文件系统的文件系统大小可以根据被复制、创建或删除的文件及目录的数据来缩放,使得能够以最理想的方式使用内存,因为ramfs文件系统基于RAM构建,所以读和写几乎都是瞬时的,即使以交换的形式存储文件,I/O操作的速度仍非常快。
[0031] 图1是本发明一种基于openwrt的固件升级方法的一个实施例,包括:
[0032] S100运行预设升级脚本,所述预设升级脚本启动在RAM中创建ramfs文件系统;
[0033] 具体的,本实施例中,ramfs文件系统顾名思义是内存文件系统,它处于虚拟文件系统(VFS)层,无需格式化,可以创建多个,只要内存足够,在创建时可以指定其最大能使用的内存大小。如果待升级路由器的操作系统Linux已经将ramfs文件系统编译进内核,就可以创建一个目录,加载ramfs文件系统到该目录即可。即:
[0034] #mkdir-p/RAM1
[0035] #mount-t ramfs文件系统none/RAM1
[0036] 缺省情况下,ramfs文件系统被限制最多可使用内存大小的一半。可以通过maxsize(以kbyte为单位)选项来改变。
[0037] #mkdir-p/RAM1
[0038] #mount-t ramfs文件系统none/RAM1-o maxsize=10M
[0039] 以上就创建了一个限定了最大使用内存大小为10M的ramfs文件系统。
[0040] S200在所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;
[0041] S300擦除Flash,根据所述预设路径写入所述目标固件文件至Flash;
[0042] S400在所述ramfs文件系统中调用所述软链接执行重启操作,完成所述目标固件的升级。
[0043] 具体的,当待升级路由器如路由器等运行的过程中,一旦烧写固件的时候,如果当前路由器的操作系统被破坏,会导致待升级路由器由于烧写故障而不能使用,而本发明是将内存RAM划分出来,当做一块独立的分区进行使用,该ramfs文件系统是基于内存中的,与Flash无冲突,因此当待升级路由器升级时Flash烧写目标固件文件时,并不会影响到ranfs文件系统中执行脚本和命令,这样即使待升级路由器在Flash区域进行烧写目标固件文件出现故障时,本发明还能根据ramfs文件系统中的预设路径和软链接执行重启操作,恢复待升级路由器的工作状态,当待升级路由器重启或者重置或者复位成功后,还能够重新进行固件的烧写,不会导致待升级路由器由于烧写故障而不能使用,出现死机或宕机的状态,提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。
[0044] 图2是本发明一种基于openwrt的固件升级方法的另一个实施例,包括:
[0045] S010生成所述预设升级脚本;所述预设升级脚本包括预设获取地址,所述预设获取地址为获取目标固件安装包的地址;
[0046] S020储存所述预设升级脚本至ROM中,并根据所述预设获取地址获取所述目标固件安装包至ROM;
[0047] S030判断待升级路由器是否接收到升级指令;若是,执行步骤S100;
[0048] S100运行预设升级脚本,所述预设升级脚本启动在RAM中创建ramfs文件系统;
[0049] S200在所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;
[0050] S310擦除Flash中历史固件文件的所有数据;所述历史固件文件是对应于所述目标固件文件的历史版本文件;
[0051] S320根据所述预设路径写入所述目标固件文件至Flash;
[0052] S410在所述ramfs文件系统中输入预设命令;所述预设命令包括重启命令或复位命令或关闭看门狗命令;
[0053] 具体的,看门狗需要在规定时间内喂狗,这里所说的“规定时间”就是看门狗定时器计数溢出时间,即一旦到达计数阈值,看门狗就会产生复位。CPU必须在这个周期内对这个定时器进行清零处理,让看门狗定时器重新计数,防止看门狗产生复位。本发明输入关闭看门狗命令能够避免看门狗定时器清零,从而使得待升级路由器进行复位操作。
[0054] S420根据所述预设命令调用所述软链接执行重启操作,完成所述目标固件的升级。
[0055] 具体的,本实施例中,在烧写固件之前,首先需要根据用户的需要生成预设升级脚本,并根据预设脚本中的预设获取地址获取目标固件安装包,并将目标固件安装包储存在ROM中,这样能使得当固件版本更新的时候,待升级路由器能够运行预设升级脚本,使得待升级路由器在RAM中创建ramfs文件系统,然后在创建得到的ramfs文件系统中生成预设路径和软链接,这样,即使待升级路由器升级过程中擦写Flash时出现Flash正在运行使用的情况,而导致路由器变砖Flash被破坏的情况,但是由于RAM中的ramfs文件系统中的软链接未被破坏,因此能够在Flash被破坏的情况下,用户能够通过ramfs文件系统调用预设命令,从而重启或重置待测路由器,避免待测路由器像现有技术那样因为预设命令均储存在Flash中而导致Flash破坏时导致待升级路由器变砖。本发明不会导致待升级路由器由于烧写故障而不能使用,出现死机或宕机的状态,提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。
[0056] 优选的,上述所有方法实施例中,步骤S300之后,S400之前包括步骤:
[0057] S301判断写入的所述目标固件文件是否是完整;若是,执行步骤S302;
[0058] S302备份固件配置文件至ROM;所述固件配置文件包括所述目标固件文件和配置文件;
[0059] 具体的,本实施例中,因为ramfs文件系统驻留在RAM,在系统重新引导时会丢失所有数据,因此,需要长期保存的数据不能存储在ramfs文件系统上。因此本发明将目标固件文件在ROM进行备份保存,使得待升级路由器升级失败时,不需要再次通过预设路径获取目标固件文件,也不需要再次配置待升级路由器的配置选项,待升级路由器能够在重启后直接根据备份好的固件配置文件进行配置使用,避免用户在每次刷机后都需要重新设置路由器的密码,用户名,加密方式的配置选项,提升用户的刷机体验。
[0060] 图3是本发明一种基于openwrt的固件升级方法的另一个实施例,包括:
[0061] S10开始升级;
[0062] S11执行预设升级脚本;
[0063] S12在内存空间创建ramfs文件系统;
[0064] S13在ramfs文件系统中增加基本命令的软链接,创建一系列目录等;
[0065] S14打开Flash;
[0066] S15擦写Flash并写入对应的固件文件;
[0067] S16校验写入的文件是否损坏;
[0068] S17完成升级烧写过程;
[0069] S18备份固件配置文件;
[0070] S19在ramfs文件系统中直接输入reboot命令或者关闭喂狗;
[0071] S20设备重启成功。
[0072] 具体的,本实施例中,经过上述流程以及设计,在单分区的文件系统架构情况下,保证升级时擦写固件分区以及烧写固件文件,不会影响当前系统环境,从而保证设备可以正常安全完成升级以及重启动作。本发明利用脚本在内存新建一个小型的ramfs文件系统,并在该系统装好基本的linux命令以及文件,然后在该文件系统执行升级步骤,烧写Flash,由于该系统位于内存,任何擦写Flash动作不会影响该ramfs文件系统,从而保证整个升级过程稳定,并且可以保证设备reboot成功,不至于变砖头,无法控制,提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。与常见的直接在当前系统下升级,擦写固件分区相比,本发明在RAM新建的小型的ramfs文件系统,使得待升级路由器擦写升级更为安全可靠,避免了设备升级过程中,Flash破坏,冲突等导致的设备死机变砖头无法重启的问题,极大的提高了升级的稳定性。
[0073] 图4是本发明一种基于openwrt的固件升级路由器100的一个实施例,包括:
[0074] 运行模块110,运行预设升级脚本;
[0075] 启动创建模块120,根据所述运行模块110运行的所述预设升级脚本启动在RAM中创建ramfs文件系统;
[0076] 第一生成模块130,在所述启动创建模块120生成的所述ramfs文件系统中生成预设路径和软链接;所述预设路径为从ROM调用目标固件文件的路径;所述软链接为预设命令的链接地址;
[0077] 擦除写入模块140,擦除Flash,根据所述第一生成模块130生成的所述预设路径写入所述目标固件文件至Flash;
[0078] 调用重启模块150,在所述ramfs文件系统中调用所述第一生成模块130生成的所述软链接执行重启操作,完成所述目标固件的升级。
[0079] 具体的,本实施例中,基于openwrt框架的无线路由产品,通常情况下,固件容量相对比较小,在升级的时候,会去擦写Flash,可能会出现当前擦写的Flash或者配置文件正在使用的情况,从而导致升级的时候会出现当前运行的Flash被破坏,待升级路由器可能变砖头无法被管理和使用的的死机情况。本文主要使用脚本的方式,在当前系统中新创建一个小的ramfs文件系统,在该ramfs文件系统中,调用升级命令,烧写目标固件文件至待升级路由器,然后重启设备,完成整个升级过程。当待升级路由器运行的过程中,一旦烧写目标固件文件的时候,如果当前待升级路由器的操作系统被破坏,会导致待升级路由器由于烧写故障而不能使用,而本发明是将内存RAM划分出来,当做一块独立的分区进行使用,该ramfs文件系统是基于内存中的,与Flash无冲突,因此当待升级路由器升级时Flash烧写目标固件文件时,并不会影响到ranfs文件系统中执行脚本和命令,这样即使待升级路由器在Flash区域进行烧写目标固件文件出现故障时,本发明还能根据ramfs文件系统中的预设路径和软链接执行重启操作,恢复待升级路由器的工作状态,当待升级路由器重启或者重置或者复位成功后,还能够重新进行固件的烧写,不会导致待升级路由器由于烧写故障而不能使用,出现死机或宕机的状态,提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。
[0080] 图5是本发明一种基于openwrt的固件升级路由器100的另一个实施例,本实施例中其他部分与上一实施例相同,包括:运行模块110、启动创建模块120、第一生成模块130、擦除写入模块140、调用重启模块150;
[0081] 此外还包括:
[0082] 第二生成模块160,生成所述预设升级脚本;所述预设升级脚本包括预设获取地址,所述预设获取地址为获取目标固件安装包的地址;
[0083] 储存模块170,储存所述第二生成模块160生成的所述预设升级脚本至ROM中,并根据所述预设获取地址获取所述目标固件安装包至ROM;
[0084] 第一判断模块180,判断待升级路由器是否接收到升级指令;若是,所述运行模块110开始运行所述预设升级脚本。
[0085] 所述擦除写入模块140包括:
[0086] 擦除单元141,擦除Flash中历史固件文件的所有数据;所述历史固件文件是对应于所述目标固件文件的历史版本文件;
[0087] 写入单元142,在所述擦除单元141擦除Flash中历史固件文件的所有数据后,根据所述预设路径写入所述目标固件文件至Flash。
[0088] 所述调用重启模块150包括:
[0089] 输入单元151,在所述ramfs文件系统中输入预设命令;所述预设命令包括重启命令或复位命令或关闭看门狗命令;
[0090] 调用重启单元152,根据所述输入单元151获取的所述预设命令调用所述软链接执行重启操作,完成所述目标固件的升级。
[0091] 具体的,本实施例中,目前普通的小型路由器设备,由于固件分区小,主要采用单分区形式的文件系统,升级时,就直接擦写固件分区,把发布的新固件版本写入分区,然后重启设备,上述这些操作都直接在当前系统的环境中去执行。现有的这种直接在当前系统环境中升级的方法,可能会导致文件系统破坏的情况,从而进一步导致一些基本的命令都无法使用,如,reboot等命令无法使用,设备就无法重启,由于此时新固件已经烧写完成,当前设备的基本服务进程也在升级前已经杀掉,无法提供服务,也无法重启,从而使得该设备失去了管理,变成砖头。本发明描述的方法,在擦写固件分区之前,先创建脚本,在当前系统环境中新建一个小型的ramfs文件系统,由于这个小型的文件系统是位于RAM,所以不会和Flash有任何的冲突,即使Flash上的内容在使用,被擦写,也不会影响该小系统上执行的脚本以及命令。采用此方法可以保证升级过程更加的稳定,也能保证烧写完固件版本后,设备可以正常复位重启。路由设备在升级动作之前,先创建脚本,在脚本文件中,执行在内存中创建小型文件系统的命令,准备好升级环境,然后在该小型系统中,执行具体的烧写固件分区的动作以及备份配置,复位设备等动作,从而保证了升级过程的稳定性,避免升级变砖头。提升待升级路由器的升级安全性,减少用户由于待升级路由器死机或宕机后返厂维修或更换新的设备的费用,提升用户的使用体验。
[0092] 优选的,上述所有装置实施例中包括:
[0093] 第二判断模块185,判断所述擦除写入模块140写入的所述目标固件文件是否是完整;
[0094] 备份模块190,当所述第二判断模块185判定所述目标固件完整时,备份固件配置文件至ROM;所述固件配置文件包括所述目标固件文件和配置文件。
[0095] 具体的,本实施例中,因为ramfs文件系统驻留在RAM,在系统重新引导时会丢失所有数据,因此,需要长期保存的数据不能存储在ramfs文件系统上。因此本发明将目标固件文件在ROM进行备份保存,使得待升级路由器升级失败时,不需要再次通过预设路径获取目标固件文件,也不需要再次配置待升级路由器的配置选项,待升级路由器能够在重启后直接根据备份好的固件配置文件进行配置使用,避免用户在每次刷机后都需要重新设置路由器的密码,用户名,加密方式的配置选项,提升用户的刷机体验。
[0096] 应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

附图说明

[0020] 下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于openwrt的固件升级方法及路由器的上述特性、技术特征、优点及其实现方式予以进一步说明。
[0021] 图1是本发明一种基于openwrt的固件升级方法的一个实施例的流程图;
[0022] 图2是本发明一种基于openwrt的固件升级方法的另一个实施例的流程图;
[0023] 图3是本发明一种基于openwrt的固件升级方法的另一个实施例的流程图;
[0024] 图4是本发明一种基于openwrt的固件升级路由器的一个实施例的结构示意图;
[0025] 图5是本发明一种基于openwrt的固件升级路由器的另一个实施例的结构示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号