CN107566169B - 一种基于openwrt的固件升级方法及路由器 - Google Patents

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

Info

Publication number
CN107566169B
CN107566169B CN201710734885.1A CN201710734885A CN107566169B CN 107566169 B CN107566169 B CN 107566169B CN 201710734885 A CN201710734885 A CN 201710734885A CN 107566169 B CN107566169 B CN 107566169B
Authority
CN
China
Prior art keywords
preset
firmware
file
upgrading
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710734885.1A
Other languages
English (en)
Other versions
CN107566169A (zh
Inventor
王成长
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huzhou Yinglie Intellectual Property Operation Co ltd
Original Assignee
Taizhou Jiji Intellectual Property Operation Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taizhou Jiji Intellectual Property Operation Co ltd filed Critical Taizhou Jiji Intellectual Property Operation Co ltd
Priority to CN201710734885.1A priority Critical patent/CN107566169B/zh
Publication of CN107566169A publication Critical patent/CN107566169A/zh
Application granted granted Critical
Publication of CN107566169B publication Critical patent/CN107566169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于openwrt的固件升级方法及路由器,其方法包括:S100运行预设升级脚本,预设升级脚本启动在RAM中创建ramfs文件系统;S200在ramfs文件系统中生成预设路径和软链接;预设路径为从ROM调用目标固件文件的路径;软链接为预设命令的链接地址;S300擦除Flash,根据预设路径写入目标固件文件至Flash;S400在ramfs文件系统中调用软链接执行重启操作,完成目标固件的升级。本发明避免了设备升级过程中,Flash破坏冲突等导致的设备死机变砖头无法重启的问题,极大的提高了升级的稳定性,使得待升级路由器擦写升级更为安全可靠。

Description

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

Claims (8)

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;所述固件配置文件包括所述目标固件文件和配置文件。
CN201710734885.1A 2017-08-24 2017-08-24 一种基于openwrt的固件升级方法及路由器 Active CN107566169B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710734885.1A CN107566169B (zh) 2017-08-24 2017-08-24 一种基于openwrt的固件升级方法及路由器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710734885.1A CN107566169B (zh) 2017-08-24 2017-08-24 一种基于openwrt的固件升级方法及路由器

Publications (2)

Publication Number Publication Date
CN107566169A CN107566169A (zh) 2018-01-09
CN107566169B true CN107566169B (zh) 2021-04-09

Family

ID=60976572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710734885.1A Active CN107566169B (zh) 2017-08-24 2017-08-24 一种基于openwrt的固件升级方法及路由器

Country Status (1)

Country Link
CN (1) CN107566169B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874434A (zh) * 2018-05-02 2018-11-23 四川斐讯信息技术有限公司 一种可穿戴设备的系统软件升级方法及可穿戴设备
CN109800012A (zh) * 2019-03-01 2019-05-24 四川长虹电器股份有限公司 一种mcu固件升级方法
CN110187899A (zh) * 2019-06-04 2019-08-30 深圳云里物里科技股份有限公司 一种固件烧写方法、装置及其相关设备
CN111930397A (zh) * 2020-07-15 2020-11-13 深圳市瑞驰信息技术有限公司 一种基于eMMC的EXT4文件系统固件升级方法
CN112069056B (zh) * 2020-07-31 2023-09-01 江苏航天龙梦信息技术有限公司 一种uefi固件富调试的方法
CN113553086A (zh) * 2021-07-27 2021-10-26 歌尔科技有限公司 配置信息存取方法、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945174A (zh) * 2012-11-08 2013-02-27 大连捷成实业发展有限公司 通过接着片外Flash实现单片机程序升级的方法
CN104102514A (zh) * 2014-07-18 2014-10-15 江苏兆伏新能源有限公司 一种固件升级方法及其装置
CN104915226A (zh) * 2015-05-21 2015-09-16 北京星网锐捷网络技术有限公司 一种网络设备软件启动方法、装置及网络设备
CN105488419A (zh) * 2015-12-09 2016-04-13 上海斐讯数据通信技术有限公司 一种固件安全升级方法及路由设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945174A (zh) * 2012-11-08 2013-02-27 大连捷成实业发展有限公司 通过接着片外Flash实现单片机程序升级的方法
CN104102514A (zh) * 2014-07-18 2014-10-15 江苏兆伏新能源有限公司 一种固件升级方法及其装置
CN104915226A (zh) * 2015-05-21 2015-09-16 北京星网锐捷网络技术有限公司 一种网络设备软件启动方法、装置及网络设备
CN105488419A (zh) * 2015-12-09 2016-04-13 上海斐讯数据通信技术有限公司 一种固件安全升级方法及路由设备

Also Published As

Publication number Publication date
CN107566169A (zh) 2018-01-09

Similar Documents

Publication Publication Date Title
CN107566169B (zh) 一种基于openwrt的固件升级方法及路由器
CN104572229B (zh) 嵌入式系统的固件升级方法以及固件升级装置
US7017004B1 (en) System and method for updating contents of a flash ROM
CN102216905B (zh) 为运行在计算系统中的应用创建应用还原点的方法和系统
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US20140325496A1 (en) Apparatus and method for firmware upgrade using usb
KR20110098567A (ko) 최소 부트 이미지의 생성 방법 및 장치
CN104573529B (zh) 一种bios固件的划分、更新方法和系统
US10579300B2 (en) Information handling system firmware persistent memory runtime reclaim
CN105138382A (zh) 一种Android系统升级的方法及终端
CN102270144A (zh) 嵌入式网络设备及其更新固件的方法
CN109271206B (zh) 一种异常现场的内存压缩和保存方法
CN106020861A (zh) 一种智能手表的fota升级方法及系统
CN105468390B (zh) Boot在线升级装置及方法
CN111045712A (zh) 一种具有备份功能的单系统升级方法及系统
CN102043662A (zh) 多操作系统的数据修改方法
CN100362470C (zh) 一种bios在线升级装置及方法
CN117687663B (zh) 基于ota的分区动态调整方法、装置、设备及存储介质
CN113220319A (zh) 一种数据更新方法、装置及车辆
CN111782236A (zh) 系统软件升级方法、装置、存储介质及一体机设备
CN102760063A (zh) 一种文件加载方法及装置
JP5157789B2 (ja) プログラム更新方法及びプログラム更新装置
JP2002175193A (ja) プログラム書き換え装置及びプログラム書き換え方法
US8108645B2 (en) Optimized memory allocation via feature extraction
CN112860287A (zh) 系统程序升级方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20201027

Address after: 318015 no.2-3167, zone a, Nonggang City, no.2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Applicant after: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Applicant before: Phicomm (Shanghai) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231205

Address after: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: 318015 no.2-3167, area a, nonggangcheng, 2388 Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Patentee before: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

TR01 Transfer of patent right