一种嵌入式网络设备免拆机盖固件升级方法和系统转让专利

申请号 : CN202111648632.5

文献号 : CN114006901B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 麻长葆赵伟陈小军黄章良

申请人 : 广州鲁邦通物联网科技股份有限公司

摘要 :

本发明属于通讯技术领域,公开了一种嵌入式网络设备免拆机盖固件升级方法,所述方法包括如下步骤:步骤1:启动Boot loader,进入刷机模式;步骤2:通过网卡获取网络刷机代理固件,所述网络刷机代理固件预存于外设的第一服务器中;步骤3:将网络刷机代理固件存入内存中并运行,得到在内存中运行的网络刷机代理系统;步骤4:在网络刷机代理系统上运行刷机脚本;步骤5:通过网卡从外设的第二服务器中获取系统固件;步骤6:将系统固件写入经过格式化的flash存储器中,运行flash存储器中的系统固件完成升级,该方法在Boot loader正常工作的情况下仅通过网口就可以升级固件,而不需要拆机壳。同时,本发明还公开了实施该方法的系统。

权利要求 :

1.一种嵌入式网络设备免拆机盖固件升级方法,其特征在于,所述方法包括如下步骤:步骤1:启动Boot loader,进入刷机模式;

步骤2:通过网卡获取网络刷机代理固件,所述网络刷机代理固件预存于外设的第一服务器中;

步骤3:将网络刷机代理固件存入内存中并运行,得到在内存中运行的网络刷机代理系统;所述刷机代理固件由Bootlaoder获取并存放于内存上,并最后由Bootlaoder引导运行;

步骤4:在网络刷机代理系统上运行刷机脚本,所述刷机脚本从外设的第二服务器获取;

步骤5:通过网卡从外设的第二服务器中获取系统固件;

步骤6:将系统固件写入经过格式化的flash存储器中,固件写入完成后自动复位网络刷机代理系统,运行flash存储器中的系统固件完成升级;

所述第一服务器为TFTP服务器,所述第二服务器为FTP服务器;

在网络刷机代理系统中启动FTP客户端,通过FTP客户端从FTP服务器获取刷机脚本和系统固件。

2.根据权利要求1所述的嵌入式网络设备免拆机盖固件升级方法,其特征在于,所述步骤1具体为:

启动Boot loader,根据用户操作进入刷机模式或正常启动嵌入式网络设备的系统。

3.根据权利要求1所述的嵌入式网络设备免拆机盖固件升级方法,其特征在于,所述步骤5中还包括:根据分区信息对flash存储器进行格式化和分区;所述步骤6中,系统固件写入到指定的分区内;

所述分区信息纪录在刷机脚本中。

4.根据权利要求1所述的嵌入式网络设备免拆机盖固件升级方法,其特征在于,所述步骤1和步骤4运行之后还进行网卡初始化操作。

5.一种嵌入式网络设备免拆机盖固件升级系统,其特征在于,包括第一服务器、第二服务器,所述第一服务器中存储有网络刷机代理固件,所述第二服务器存储有系统固件;

当嵌入式网络设备需要进行固件升级时,基于如权利要求1‑4任一所述的方法从第一服务器获取网络刷机代理固件、运行刷机脚本,在运行刷机脚本时,从第二服务器获取系统固件,并采用该系统固件进行固件升级,所述第一服务器为TFTP服务器,所述第二服务器为FTP服务器。

说明书 :

一种嵌入式网络设备免拆机盖固件升级方法和系统

技术领域

[0001] 本发明属于通信技术领域,更具体而言,涉及一种嵌入式网络设备免拆机盖固件升级方法和系统。

背景技术

[0002] 嵌入式网络设备当需要固件更新时,常规的操作是通过设备的WEB页面升级固件或者通过SSH登陆再命令行升级固件。但在某些异常情况下如WEB程序异常或者SSH无法登
陆甚至FLASH中的固件损坏无法启动,常规的升级方法已不再适用。
[0003] 一般来说FLASH里的Boot loader由于有写保护措施一般不会被损坏而均能正常工作。一些高级点的系统可以通过切换CPU的BOOT模式选择从其它存储介质(如U盘、SD卡)
启动再去升级固件或者在Boot loader下通过其它存储介质升级固件,但前提是设备需要
支持BOOT模式选择开关和相应的存储介质接口。而很多低成本的嵌入式网络设备并不支持
或暴露此类BOOT模式选择,或者不支持此类外部接口,甚至都没有外出的控制台,如IPC、无
线路由器、CPE和一些工业网关设备。现有的相关返修刷机方法有:
[0004] 1、支持在板编程器烧写FLASH,而编程器接口通常并不外漏于机壳。
[0005] 2、不支持在板编程器烧写FLASH,则需要焊下FLASH,先使用离线烧录器烧写,再重新贴装。
[0006] 上述两种升级固件方法费时费力,而且都不免需要拆除机壳才能操作。

发明内容

[0007] 本发明的主要目的在于提供一种嵌入式网络设备免拆机盖固件升级方法,该方法在Boot loader正常工作的情况下仅通过网口就可以升级固件,而不需要拆机壳。
[0008] 同时,本发明还公开了实施该方法的系统。
[0009] 根据本发明的第一方面,提供了一种嵌入式网络设备免拆机盖固件升级方法,所述方法包括如下步骤:
[0010] 步骤1:启动Boot loader,进入刷机模式;
[0011] 步骤2:通过网卡获取网络刷机代理固件,所述网络刷机代理固件预存于外设的第一服务器中;
[0012] 步骤3:将网络刷机代理固件存入内存中并运行,得到在内存中运行的网络刷机代理系统;
[0013] 步骤4:在网络刷机代理系统上运行刷机脚本,所述刷机脚本从外设的第二服务器获取;
[0014] 步骤5:通过网卡从外设的第二服务器中获取系统固件;
[0015] 步骤6:将系统固件写入经过格式化的flash存储器中,固件写入完成后自动复位网络刷机代理系统,运行flash存储器中的系统固件完成升级。
[0016] 在上述的嵌入式网络设备免拆机盖固件升级方法中,所述步骤1具体为:
[0017] 启动Boot loader,根据用户操作进入刷机模式或正常启动嵌入式网络设备的系统。
[0018] 在上述的嵌入式网络设备免拆机盖固件升级方法中,所述第一服务器为TFTP服务器,所述第二服务器为FTP服务器;
[0019] 在网络刷机代理系统中启动FTP客户端,通过FTP客户端从FTP服务器获取刷机脚本和系统固件。
[0020] 在上述的嵌入式网络设备免拆机盖固件升级方法中,所述步骤5中还包括:根据分区信息对flash存储器进行格式化和分区;所述步骤6中,系统固件写入到指定的分区内;
[0021] 所述分区信息纪录在刷机脚本中。
[0022] 在上述的嵌入式网络设备免拆机盖固件升级方法中,所述步骤1和步骤4运行之后还进行网卡初始化操作。
[0023] 同时,本发明还公开了一种嵌入式网络设备免拆机盖固件升级系统,包括第一服务器、第二服务器,所述第一服务器中存储有网络刷机代理固件,所述第二服务器存储有系
统固件;
[0024] 当嵌入式网络设备需要进行固件升级时,基于如上任一所述的方法从第一服务器获取网络刷机代理固件、运行刷机脚本,在运行刷机脚本时,从第二服务器获取系统固件,
并采用该系统固件进行固件升级。
[0025] 在上述的嵌入式网络设备免拆机盖固件升级系统中,所述第一服务器为TFTP服务器,所述第二服务器为FTP服务器。
[0026] 本发明上述技术方案中的一个技术方案至少具有如下优点或有益效果之一:
[0027] 在本发明中,获取网络刷机代理固件并存入内存中,通过运行该固件可得到刷机脚本,对刷机脚本运行可得到系统固件,通过将系统固件烧录进入flash存储器,固件写入
完成后自动复位网络刷机代理系统,运行flash存储器中的系统固件即可实现系统固件升
级。
[0028] 本发明的方法只需要网卡正常、能够启动Boot loader即可。
[0029] 本发明的方法和系统是在非正常的状态下如系统固件受损、WEB程序异常或者SSH无法登陆等情况下的可实施的,其可以实现免拆机升级系统固件的目的。

附图说明

[0030] 下面结合附图和实施例对本发明进一步地说明;
[0031] 图1是本发明的实施例1的流程图;
[0032] 图2是本发明的实施例2的结构框图。

具体实施方式

[0033] 下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0034] 实施例1
[0035] 参考图1,一种嵌入式网络设备免拆机盖固件升级方法,该嵌入式网络设备具有网卡,运行linux系统,所述方法包括如下步骤:
[0036] 步骤1:启动Boot loader,进入刷机模式;
[0037] 在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash存储器全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Boot loader以
及操作系统或者程序代码,或者直接当硬盘使用。
[0038] 在linux系统前都需要启动Boot loader,一般来说,系统固件损坏的概率会远远大于Boot loader的损坏概率,所以本发明的方法是基于Boot loader能够运行的前提而提
出的。
[0039] Boot loader启动后,如果用户长按某一按键如启动键3s,进入到刷机模式,如果用户不作任何操作,将会运行linux系统,正常启动。
[0040] 步骤2:初始化网卡,通过网卡获取网络刷机代理固件,所述网络刷机代理固件预存于外设的第一服务器中;第一服务器优选为TFTP服务器,其和设备之间基于简单文件传
输协议进行通信。
[0041] 在本实施例中,第一服务器优选为TFTP服务器的原因在于:FTP服务器需要TCP,而TFTP只需UDP。UDP 简单且易于实现,而TCP在非任务环境的Bootloader中实现的工作量大。
[0042] 在刷机模式之下,网卡初始化之后,就会从第一服务器中获取网络刷机代理固件,并写到内存的指定地址;
[0043] 通常不同的CPU(厂家不同或者CPU架构不同)Bootloader是无法到完全统一的。第一服务器中获取网络刷机代理固件后写到内存上的特定地址是由特定硬件平台的
Bootloader中指定的。也就是说在这个阶段Bootloader进入刷机模式后Bootloader知道它
需要从TFTP服务器中获取哪个名字的刷机代理固件,也知道获取到的刷机代理固件存在内
存的那个地址上。一般来说刷机代理固件的版本和名称与物联网设备的名称和型号相匹
配,在向第一服务器获取刷机代理固件之前会传入物联网设备的名称和型号,以寻求与之
匹配的固件。
[0044] 步骤3:将网络刷机代理固件存入内存中并运行网络刷机代理固件;网络刷机代理固件运行后会在内存中运行一个网络刷机代理系统,该代理系统具有必要的工具去运行相
应的脚本、以及向flash中写入固件的必要的信息和工具。
[0045] 刷机代理固件只需由Bootlaoder获取并存放于内存上,并最后由Bootlaoder引导运行。
[0046] 步骤4:在网络刷机代理系统上运行刷机脚本,初始化网卡,建立FTP客户端,FTP客户端和第二服务器建立基于文件传输协议的通信连接;
[0047] 所述刷机脚本自网络刷机代理固件启动后产生,所述刷机脚本中纪录有系统固件的存储地址;
[0048] 步骤5:通过网卡从外设的第二服务器中获取系统固件;
[0049] 网络刷机代理系统开始运行后,其会从第二服务器上去下载刷机脚本,刷机脚本sysupdate.sh会根据具体设备的实际情况去下载待刷机固件的各个分区的内容文件即系
统固件到内存文件系统的/tmp目录,然后再烧写到对应分区。
[0050] 烧写到对应分区的前提是对flash存储器进行格式化和分区,而格式化和分区是根据分区信息来进行的,分区信息是存储在物联网设备的内存中的,并不会在刷机过程中
丢失。
[0051] 该分区信息用于对flash存储器进行格式化和分区。
[0052] 本发明中不管是第一服务器的刷机代理固件还是刷机脚本抑或系统固件,其存储的IP地址都会预先的写入物联网设备的内存中,并不会因为刷机过程而丢失。
[0053] 在不断的升级更新过程中,管理人员可以对第一服务器和第二服务器中的相关固件和脚本进行相应的升级。
[0054] 关于本发明如何从第一服务器和第二服务器中若干脚本、固件中去区分适用于本设备的固件、脚本,实现方式有很多,比如针对固件脚本的命名与本设备的名称型号进行对
应,或者设置专门的文件夹针对特定的设备进行脚本、固件的存储,这样在可准确获取所需
固件和脚本。
[0055] 步骤6:将系统固件写入经过格式化的flash存储器中,固件写入完成后自动复位网络刷机代理系统,运行flash存储器中的系统固件完成升级。
[0056] 本发明的优势在于:本发明的方法只需要网卡正常、能够启动Boot loader即可完成系统升级,可在非正常的状态下如系统固件受损、WEB程序异常或者SSH无法登陆等情况
下实施,其可以实现免拆机升级系统固件的目的。
[0057] 实施例2
[0058] 参考图2,一种嵌入式网络设备免拆机盖固件升级系统,包括第一服务器1、第二服务器2,所述第一服务器中存储有网络刷机代理固件,所述第二服务器存储有系统固件;嵌
入式网络设备3需要能够启动Boot loader,并且需要能够接入网络的网卡4。
[0059] 当嵌入式网络设备需要进行固件升级时,基于如实施例1所述的方法从第一服务器获取网络刷机代理固件、运行刷机脚本,在运行刷机脚本时,从第二服务器获取系统固
件,并采用该系统固件进行固件升级,其中,所述第一服务器为TFTP服务器,所述第二服务
器为FTP服务器。
[0060] 尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变
型,本发明的范围由权利要求及其等同物限定。