CN114064084A - Onu的升级管理方法、存储介质、电子装置和onu - Google Patents
Onu的升级管理方法、存储介质、电子装置和onu Download PDFInfo
- Publication number
- CN114064084A CN114064084A CN202111397033.0A CN202111397033A CN114064084A CN 114064084 A CN114064084 A CN 114064084A CN 202111397033 A CN202111397033 A CN 202111397033A CN 114064084 A CN114064084 A CN 114064084A
- Authority
- CN
- China
- Prior art keywords
- onu
- file
- olt
- value
- current
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种ONU的升级管理方法、存储介质、电子装置和ONU。所述方法包括:在光网络单元ONU进行系统软件升级前,在光线路终端OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件;在执行ONU系统软件升级操作后,如果未升级成功,则利用OLT所存储的系统文件和配置文件进行系统软件回退。
Description
技术领域
本申请实施例涉及信息处理领域,尤指一种ONU的升级管理方法、存储介质、电子装置和ONU。
背景技术
光网络单元(Optical Network Unit,ONU)的系统软件通常保存在非易失存储芯片中,例如,NAND FLASH或NOR FLASH。对ONU进行升级操作的过程,一般是先通过网络或串口将系统软件的升级文件(包含ONU的操作系统内核文件以及用户应用程序文件)拷贝到ONU的内存,接着ONU会对升级文件进行简单的完整性校验,如校验无误,最后再把新的系统软件写入FLASH。
一般而言,ONU升级时只校验升级文件的有效性和完整性,无法对软件功能进行校验。为了避免升级失败导致ONU不能正常使用,有条件的ONU往往采用双镜像的方式——即ONU中设置有两个镜像(镜像1和镜像2),对于当前运行的镜像设置有启动标识(一般是BOOT环境变量参数),假设当前运行的是镜像1,那么升级时只将升级文件写入镜像2在的分区,然后对于镜像2更新启动标志为尝试启动,以指示下次启动尝试从镜像2启动;若下次ONU从镜像2启动成功,表明镜像2中的升级文件没有问题,系统软件会对镜像2清除尝试启动标志,并设置启动标志,同时清除镜像1的启动标识,表明之后从镜像2启动。若ONU未能从镜像2启动成功,清除尝试启动标志,设备重启时,还选择镜像1。
双镜像的方法虽然通过冗余备份的方式解决了升级失败导致ONU无法启动的问题,但这种方法主要有几个缺点:
1)双镜像需要额外占用近一倍的FLASH空间,导致产品成本上升,不适用于成本压力较大的终端类设备。
2)双镜像只是一种简单的升级故障恢复机制,无法分析出升级失败的原因,也无法主动将镜像恢复到升级之前的内容——如果升级导致主备分区的镜像都损坏,那么ONU将无法正常启动,无法通过OLT进行配置管理,运营商只能入户更换设备,增加运维成本。
发明内容
为了解决上述任一技术问题,本申请实施例提供了一种ONU的升级管理方法、存储介质、电子装置和ONU。
为了达到本申请实施例目的,本申请实施例提供了一种ONU的升级管理方法,包括:
在光网络单元ONU进行系统软件升级前,在光线路终端OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件;
在执行ONU系统软件升级操作后,如果未升级成功,则利用OLT所存储的系统文件和配置文件进行系统软件回退。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文所述的方法。
一种ONU,包括上文所述的电子装置。
上述技术方案中的一个技术方案具有如下优点或有益效果:
在ONU进行系统软件升级前,在OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件,并在执行系统软件升级未成功时,利用OLT所存储的系统文件和配置文件进行系统软件回退,实现将ONU的系统软件恢复至升级前的运行版本,保证ONU的正常启动。
本申请实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。
图1为本申请实施例提供的ONU的升级管理方法的流程图;
图2为本申请实施例提供的ONU的升级保护方法的流程图;
图3为本申请实施例提供的ONU的升级恢复方法的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互任意组合。
图1为本申请实施例提供的ONU的升级管理方法的流程图。如图1所示,所述方法包括:
步骤S1、在ONU进行系统软件升级前,在光线路终端(Optical Line Terminal,OLT)保存所述ONU的当前运行版本号对应的系统文件和配置文件;
通过在OLT上保存当前运行版本号对应的系统文件和配置文件,可以克服因升级操作将上述文件被覆盖而无法执行系统软件回退的问题;同时,无需在ONU上独立设置存储空间存储上述文件,减少对ONU存储空间的占用。
步骤S2、在执行ONU系统软件升级操作后,如果未升级成功,则利用OLT所存储的系统文件和配置文件进行系统软件回退;
在执行系统软件升级未成功时,利用OLT所存储的系统文件和配置文件进行系统软件回退,可将ONU的系统软件恢复至升级前的运行版本,保证ONU的正常启动。
本申请实施例提供的方法,在ONU进行系统软件升级前,在OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件,并在执行系统软件升级未成功时,利用OLT所存储的系统文件和配置文件进行系统软件回退,实现将ONU的系统软件恢复至升级前的运行版本,保证ONU的正常启动。
下面对本申请实施例提供的方法进行说明:
在一个示例性实施例中,通过以下方式实现在OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件,包括:
当OLT获知ONU需要进行系统软件升级但本地并未保存ONU当前运行版本号的系统文件时,向ONU发起上传系统软件请求;
ONU在接收到上传系统软件请求后,从FLASH中将当前存储的系统软件以及配置文件读取至内存,然后上传至OLT;
OLT在本地保存该ONU的当前运行版本号对应的系统文件和配置文件。
利用上述交互流程,在ONU执行系统软件升级前,使OLT保存ONU当前运行版本的系统文件和配置文件。
在一个示例性实施例中,当ONU执行系统软件升级后进行重启时,如果ONU重启失败,则判断ONU未升级成功,实现方式简单。
在一个示例性实施例中,所述方法还包括:
在ONU设置尝试触发标识和加载状态标识;
所述尝试触发标识的取值用于指示ONU的启动方式是否为正常启动;
所述加载状态标识的取值用于在启动方式不是正常启动时,指示以检测方式启动或恢复方式启动;
其中,以检测方式启动过程包括执行系统软件升级;所述恢复方式启动过程包括利用OLT所存储的系统文件和配置文件进行系统软件回退。
在ONU启动时,可以根据尝试触发标识和加载状态标识的取值,来确定当前启动方式,方便控制ONU执行不同处理步骤,为升级管理提供支持。
在一个示例性实施例中,在以检测方式启动过程中,根据系统内核文件加载状态以及应用软件启动状态,更新所述加载状态标识的取值;
在以检测方式启动成功后,更新所述尝试触发标识的取值,用于指示ONU的启动方式为正常启动。
在以检测方式启动过程中,ONU可以执行系统软件升级,通过更新所述加载状态标识的取值,以指示ONU升级进度,以便在执行系统软件回退时,根据该ONU升级进度执行系统软件的回退。
在以检测方式启动成功后,表示升级成功,则通过更新尝试触发标识的取值来指示ONU在下一次启动时所使用的启动方式为正常启动。
具体的,所述根据系统内核文件加载状态以及应用软件启动状态,更新所述加载状态标识的取值,包括:
当开始加载内核文件时,更新加载状态标识的取值指示内核文件已加载,;
如果加载内核文件成功时,更新加载状态标识的取值指示应用软件处于启动状态;否则,保持加载状态标识取值为用于指示内核文件已加载的取值;
如果应用软件启动成功,则确定以检测方式启动成功;否则,保持加载状态标识取值为用于指示应用软件处于启动状态的取值。
通过对加载状态标识的取值的管理,可以指示升级失败的原因,为后续系统软件的回退提供操作依据。
在一个示例性实施例中,设置有看门狗计时器,当开始加载内核文件时,启动看门狗定时器;在判断看门狗定时器的定时时长到达时未完成应用程序启动,重启ONU。
通过设置看门狗定时器,可以防止ONU启动异常时,启动卡在某个阶段无法继续也无法退出的问题。
其中,当应用程序成功启动时,关闭看门狗定时器。
在应用软件启动成功时,表示以检测方式启动成功,因此,无需在进行定时管理,可以关闭看门狗定时器。
在一个示例性实施例中,所述加载内核文件失败或者应用程序启动失败对应的加载状态标识的取值,用于指示启动方式为以恢复方式启动。
如果加载内核文件失败或者应用程序启动失败,则表示升级失败,因此,需要在下一次启动时以恢复方式启动。
在一个示例性实施例中,在所述ONU利用预先存储的升级文件进行升级操作之前,所述方法还包括:
所述ONU记录注册OLT所需的注册信息;
所述ONU利用OLT所存储的系统文件和配置文件进行操作系统的回退,包括:
根据所述注册信息初始化无源光网络(Passive Optical Network,PON)协议栈;
根据加载状态标识的取值,从OLT下载对应的文件;
在下载完成后,更新尝试触发标识的取值,用于指示启动方式为正常启动。
其中,所述注册信息包括当前的PON模式(EPON/GPON)、认证方式(LOID认证/SN认证)等;这些信息用于在ONU升级失败进入BootLoader时初始化ONU的PON协议栈,使ONU能在OLT重新注册。
利用该注册信息初始化PON协议栈,使得ONU与OLT建立信息,由于OLT上保存有升级前的运行版本的系统文件和配置文件,因此,ONU可以从OLT获取对应的文件,实现ONU的系统软件的回退,使得ONU能在下一次启动时以正常启动方式启动,因此,将尝试触发标识指示为正常启动。
通过根据加载状态标识的取值可以确定升级失败的原因,有针对性的获取对应的文件,提高系统软件的回退的处理效率。
在一个示例性实施例中,据加载状态标识的取值,从OLT下载对应的文件,包括:
如果加载状态标识的取值状态指示内核文件已加载,则从OLT上下载该ONU对应的操作系统内核文件和用户应用程序文件。
如果加载状态标识的取值状态指示应用软件处于启动状态,则执行如下操作,包括:
判断当前文件系统分区是否正确;
如果当前文件系统分区正确,则判断当前配置文件是否正确,如果当前配置文件正确,则从OLT下载该ONU对应的用户应用程序文件;否则,从OLT下载该ONU对应的配置文件;
如果当前文件系统分区不正确,则从OLT下载该ONU对应的用户应用程序文件。
其中,所述判断当前文件系统分区是否正确,包括:
判断当前文件系统分区存放的升级文件的长度和校验和与本地记录的升级文件的长度和校验和是否均相同;
如果升级文件的长度和校验和均相同,则确定当前文件系统分区正确;否则,确定当前文件系统分区不正确;
其中,存储在ONU上的设定位置,其中该位置为文件系统分区中存储配置文件和系统软件之外的位置。
采用上述方式在本地记录升级文件的长度和校验和,可以克服因升级操作将上述信息覆盖而无法执行对比的问题。
其中,所述判断当前配置文件是否正确,包括:
判断当前配置分区存放的配置文件的长度和校验和与本地记录的配置文件的长度和校验和是否均相同;
如果配置文件的长度和校验和均相同,则确定当前文件系统分区正确;否则,确定当前文件系统分区不正确。
其中,本地记录的配置文件的长度和校验和存储在ONU上的设定位置,其中该位置为文件系统分区中存储配置文件和系统软件之外的位置。
采用上述方式在本地记录配置文件的长度和校验和,可以克服因升级操作将上述信息覆盖而无法执行对比的问题。
本申请旨在提供一种ONU升级保护的方法,能够在ONU升级失败时判断失败原因并且进行软件版本自动回退,保证ONU升级不成功时仍可以正常在网运行。在以下的实施例中,ONU在升级前已经在OLT上进行注册并且可以正常通信。
为了实现ONU的升级保护,预先在ONU的FLASH指定位置设置两个状态标识为:尝试触发try_active以及加载状态boot_state,并确定try_active、boot_state和ONU当前启动状态的对应关系如下,且ONU正常工作状态下,即ONU待升级的初始状态:try_active置位“0”,具体参见表1。
try_active | boot_state | ONU当前启动状态 |
0 | - | 正常启动 |
1 | 0 | 以检测状态启动 |
1 | 1 | 开启看门狗定时器 |
1 | >1 | 内核加载成功 |
表1
图2为本申请实施例提供的ONU的升级保护方法的流程图。如图2所示,所述方法包括:
步骤101:ONU在接收到文件升级请求时,在本地记录ONU当前的配置文件的长度和校验和,ONU当前所注册OLT的信息,所述OLT的信息至少包括:当前的PON模式(EPON/GPON)、认证方式(LOID认证/SN认证)等;这些信息用于在ONU升级失败进入BootLoader时初始化ONU的PON协议栈,使ONU能在OLT下重新注册;
在本步骤中,ONU接收到文件升级请求,则表明ONU将要对系统软件进行升级,其需要做好必要的升级准备,所述的文件升级请求的来源可以是直接作用于ONU的系统外部指令,也可以来源于OLT的指令;此处不做具体限定,但作为接收文件升级请求的主体,ONU能够识别来源,例如,通过接收文件升级请求的接口来做出判断;
步骤102:OLT在获知ONU需要进行系统软件升级时,确定ONU当前运行系统软件的版本号,并判断本地是否已经保存ONU当前运行版本号的系统软件,如果是,进入步骤106,如果否,执行步骤103;
在本步骤中,OLT获知ONU需要进行系统软件升级可以是在接收到外部触发命令,此时其向ONU发送文件升级请求;也可以是ONU在接收到来自系统外部指令所包括的文件升级请求时通知OLT;具体的方式根据实现过程与步骤101结合实现判断;
在本步骤中,OLT可以采用现有技术中已知的方式来确定ONU当前运行系统软件的版本号,典型的,通常为了实现通信,OLT会已知并在本地记录在其上所注册的ONU所运行软件的版本号;
而在某些实现场景中,当OLT本地并未存储在其上所注册的ONU当前运行的系统软件版本号时,也可以通过主动查询的方式来获取,此时,OLT可以在获知ONU将要进行升级后,向ONU发起获取当前运行的软件版本号的指令,ONU根据该指令上报当前运行的软件版本号;OLT获知ONU将要进行升级可以是外部触发也可以是ONU上报触发,此处并不限定;
在另一些实现方式中,也可以是ONU在接收到文件升级请求时主动向所注册的OLT上报当前运行的软件版本号,而不管OLT上是否实际上已经记录了该信息;
在ONU和OLT之间交互ONU当前运行系统软件的版本号时,可以是通过符合两者间通信协议的特定消息指令,也可以是OLT和ONU在交互已有信息时利用特定的字段来携带。
步骤103:OLT向ONU发起上传系统软件请求;
在本步骤中,上传系统软件请求可以通过符合两者间通信协议的特定消息指令,也可以是OLT和ONU在交互已有信息时利用特定的字段来携带。
步骤104:ONU从FLASH中将当前存储的系统软件以及配置文件读取至内存,然后上传至OLT。
在本步骤中,ONU在接收到OLT向ONU发起的上传系统软件请求后,知晓OLT将要在OLT本地备份本ONU的系统软件,向OLT上传系统软件以及配置文件,所述系统软件以及配置文件的上传可以通过协议报文来承载传输,典型的可以是OMCI消息。
步骤105:OLT在本地对应于ONU存储接收到的系统软件及配置文件。
在本步骤中,OLT接收到ONU上传的信息时,按照现有技术,可以根据其协议类型,从相应的字段中获知来自于哪个ONU,此处不赘述。
步骤106:将升级文件写入ONU的FLASH中系统文件所在的指定位置作为当前系统文件,本地记录升级文件的长度和校验和,将try_active置位“1”,boot_state置位“0”,以指示ONU下次以检测状态启动;
在本步骤中,对于ONU的升级可以通过执行专门的升级脚本的方式,所述的升级文件通过校验后写入FLASH的指定位置,通过覆盖原有系统文件的方式更新当前的系统文件;在升级文件写入过程中还可以按照现有技术进行设备信息比对(例如,设备类型、批次号、软件版本号等)、完整性校验、MD5码校验等操作,此处不赘述。
由此,通过上述101-106,已经为ONU的系统软件升级做好了准备。
步骤107:触发ONU重新启动;
ONU能否成功启动是判断对ONU进行软件升级是否成功的判据;在本步骤中,对于ONU的启动触发操作可以按照现有技术中的任何方式进行,例如,操作人员判断升级文件已经写入完成而形成的外部触发,或者ONU自身判断到升级文件已经写入完成而形成的自身触发,ONU判断自身升级失败后所执行的触发操作,还包括ONU需要重新启动的其他触发条件生成时,此处不对触发方式做出具体限定,只是如果是升级后的重新启动则需要在升级文件写入完成且try_active置位“1”完成之后;
步骤108:判断try_active和boot_state的置位值,如果try_active置位为“0”,按照正常模式进行启动,本申请不涉及,如果try_active置位“1”,boot_state置位“0”,则表明以检测状态启动,执行步骤109,如果try_active置位“1”,boot_state置位“>0”,进入恢复模式,具体的恢复模式的运行方法参见图2所示在后续进行详细介绍;
在本步骤中,通过try_active和boot_state的置位值来判断启动方式,不仅实现了检测方式、恢复模式还兼容了正常启动模式,如果非升级后的ONU重新启动,此时try_active置位为“0”,将不会进入由于升级而进行的检测阶段,也不会进入由于升级失败而进入的恢复模式;
步骤109:将boot_state置位“1”;
步骤110:启动看门狗定时器;所述看门狗定时器的定时时长由本领域普通技术人员根据ONU在正常启动阶段预估的最长启动时长确定,典型的可以是:60s;
此步骤中,设置看门狗定时器的目的是:防止ONU启动异常时,启动卡在某个阶段无法继续也无法退出的问题;
步骤111:加载操作系统内核文件,并判断操作系统内核文件是否加载成功,如果是,执行步骤112;如果否,执行步骤115;
在本步骤中,由bootloader加载操作系统内核文件并判断是否加载成功;
步骤112:将boot_state置位“2”;此时,try_active置位不发生变化。仍然为“1”;
步骤113:依次启动用户应用程序,并判断所有用户应用程序是否启动成功,如果是,执行步骤114,否则,执行步骤115;
在本步骤中,每一个用户应用程序启动后,都会将启动的进程名称添加到启动应用started_app变量中,利用预先设定的应用程序启动脚本将可以判断是否所有的用户应用程序均已启动;所述应用程序启动脚本知晓需要启动成功的所有应用程序;更进一步地,在所有的用户应用程序启动完成后,启动脚本还对所有的已启动的进程状态进行检查,例如进程是否正常存在、CPU利用率是否正常等,只有当所有的应用程序均已启动且启动进程状态均正常时判断所有用户应用程序启动成功;
步骤114:关闭看门狗定时器,并将try_active置位“0”,boot_state置位“0”;以标识对于ONU的升级已经成功,下次可以以正常模式启动。
步骤115:判断看门狗定时器定时时长是否到达,如果是,表明本阶段启动存在问题,返回执行步骤107,否则,执行步骤115;
在本步骤中,当看门狗时器定时时长到达时,无论是由于内核未加载成功还是用户应用程序未启动成功都会重新回到触发ONU重启,而由此时的boot_state置位“1”或者“2”来触发ONU重启进入恢复模式。
对于上述过程做出补充说明:
(1)上述中所指的ONU都是单独的ONU个体,OLT可以对在其上所注册的ONU根据标识进行识别;
(2)try_active和boot_state的置位均由bootloader和启动脚本完成;
(3)在上述步骤所提及:ONU在本地记录ONU当前的配置文件的长度和校验和、ONU在本地记录升级文件的长度和校验和,此处的本地,指的是在ONU上的设定位置,但该位置不是文件系统分区中存储配置文件和系统软件的位置。
图3为本申请实施例提供的ONU的升级恢复方法的流程图。如图3所示,所述方法包括:
当ONU被触发重启时,如果判断try_active置位“1”,且boot_state置位>0(即:1或者2)时,表明ONU升级失败需要进入恢复模式,其中,如果boot_state置位“1”,表明是内核加载失败,boot_state置位“2”,表明是用户应用程序启动失败。所述的恢复模式的执行过程包括:
步骤201:ONU获取本地所记录的注册OLT的信息,所述OLT的信息至少包括:PON模式(EPON/GPON)、认证方式(LOID认证/SN认证等;
所述的OLT信息在ONU升级前已经在本地记录,在上述的步骤101已经说明;
步骤202:ONU根据所获取的OLT信息初始化PON协议栈,以便于后续在OLT的注册和数据传输;
步骤203:判断boot_state置位值,如果boot_state置位“1”,表明是内核加载失败,通常情况下由于升级时写flash失败导致;执行步骤204;如果boot_state置位“2”,表明是用户应用程序启动失败,此时需要由bootloader分析具体原因,执行步骤205:
步骤204:从OLT上下载该ONU对应的操作系统内核文件和用户应用程序文件,然后执行步骤210;
步骤205:判断当前文件系统分区是否正常,如果是,执行步骤207,否则,执行步骤206;
在本步骤中,判断当前文件系统分区是否正常是根据当前文件系统分区存放的升级文件的长度和校验和与本地记录的升级文件的长度和校验和是否均相同来确定,如果不相同,则表明文件系统分区不正确,这通常是由于升级时写flash失败导致;
步骤206:从OLT上下载该ONU对应的配置文件,然后执行步骤210;
步骤207:判断当前配置分区是否正确,如果是,表明当前加载的应用程序本身存在问题,需要进行版本回退,执行步骤209,否则,执行步骤208;
在本步骤中,判断当前配置分区是否正确是根据当前配置分区存放的配置文件的长度和校验和与本地记录的配置文件的长度和校验和是否均相同来确定,如果不相同,则表明当前配置分区不正确;
步骤208:从OLT上下载该ONU对应的配置文件,然后执行步骤210;
步骤209:从OLT上下载该ONU对应的用户应用程序文件,然后执行步骤210;
步骤210:将try_active置位“1”,以及将boot_state置位“0”,以在触发ONU重新启动时以检测状态启动。
由此可见,在上述的恢复模式实现过程中,可以根据ONU本地的try_active和boot_state的当前置位值判断升级失败的原因,并从OLT上下载相应的文件对ONU由于升级而产生的问题进行恢复。此处说明一点,是在上述实施例中,当对ONU的文件进行恢复后需要再以检测状态启动,以保证整个系统的可靠性,这是一种较优的实现方式,可以进一步提高系统的可靠性;而在其他的实施例,也可以在自动恢复后,将try_active置位“0”,以在触发ONU重新启动时直接以正常模式启动。
综上所述,本申请实施例提供的方法为单镜像的嵌入式设备提供了一种升级保护和恢复机制,避免设备因各类异常状况(如升级时断电)而导致的升级失败及设备无法启动的问题。相比传统的双镜像保护机制,可以减少了FLASH的使用量,对于价格敏感的终端类嵌入式产品,可以有效地降低成本,提升产品竞争力。
本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文任一项中所述的方法。
本申请实施例提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文任一项中所述的方法。
一种ONU,包括上文所述的电子装置。
该电子装置可以独立设置在ONU中,或者,与ONU中处理器集成在一起。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (17)
1.一种ONU的升级管理方法,其特征在于,包括:
在光网络单元ONU进行系统软件升级前,在光线路终端OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件;
在执行ONU系统软件升级操作后,如果未升级成功,则利用OLT所存储的系统文件和配置文件进行系统软件回退。
2.根据权利要求1所述的方法,其特征在于,通过以下方式实现在OLT保存所述ONU的当前运行版本号对应的系统文件和配置文件,包括:
当OLT获知ONU需要进行系统软件升级但本地并未保存ONU当前运行版本号的系统文件时,向ONU发起上传系统软件请求;
ONU在接收到上传系统软件请求后,从FLASH中将当前存储的系统软件以及配置文件读取至内存,然后上传至OLT;
OLT在本地保存该ONU的当前运行版本号对应的系统文件和配置文件。
3.根据权利要求1所述的方法,其特征在于,通过如下方式判断ONU未升级成功,包括:
当ONU执行系统软件升级后进行重启时,ONU重启失败。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在ONU设置尝试触发标识和加载状态标识;
所述尝试触发标识的取值用于指示ONU的启动方式是否为正常启动;
所述加载状态标识的取值用于在启动方式不是正常启动时,指示以检测方式启动或恢复方式启动;
其中,以检测方式启动过程包括执行系统软件升级;所述恢复方式启动过程包括利用OLT所存储的系统文件和配置文件进行系统软件回退。
5.根据权利要求4所述的方法,其特征在于:
在以检测方式启动过程中,根据系统内核文件加载状态以及应用软件启动状态,更新所述加载状态标识的取值;
在以检测方式启动成功后,更新所述尝试触发标识的取值,用于指示ONU的启动方式为正常启动。
6.根据权利要求5所述的方法,其特征在于,所述根据系统内核文件加载状态以及应用软件启动状态,更新所述加载状态标识的取值,包括:
当开始加载内核文件时,更新加载状态标识的取值指示内核文件已加载,;
如果加载内核文件成功时,更新加载状态标识的取值指示应用软件处于启动状态;否则,保持加载状态标识取值为用于指示内核文件已加载的取值;
如果应用软件启动成功,则确定以检测方式启动成功;否则,保持加载状态标识取值为用于指示应用软件处于启动状态的取值。
7.根据权利要求6所述的方法,其特征在于:
设置有看门狗计时器,当开始加载内核文件时,启动看门狗定时器;在判断看门狗定时器的定时时长到达时未完成应用程序启动,重启ONU。
8.根据权利要求7所述的方法,其特征在于:
当应用程序成功启动时,关闭看门狗定时器。
9.根据权利要求6所述的方法,其特征在于:
所述加载内核文件失败或者应用程序启动失败对应的加载状态标识的取值,用于指示启动方式为以恢复方式启动。
10.根据权利要求9所述的方法,其特征在于:
在所述ONU利用预先存储的升级文件进行升级操作之前,所述方法还包括:
所述ONU记录注册OLT所需的注册信息;
所述ONU利用OLT所存储的系统文件和配置文件进行操作系统的回退,包括:
根据所述注册信息初始化无源光网络PON协议栈;
根据加载状态标识的取值,从OLT下载对应的文件;
在下载完成后,更新尝试触发标识的取值,用于指示启动方式为正常启动。
11.根据权利要求10所述的方法,其特征在于,所述根据加载状态标识的取值,从OLT下载对应的文件,包括:
如果加载状态标识的取值状态指示内核文件已加载,则从OLT上下载该ONU对应的操作系统内核文件和用户应用程序文件。
12.根据权利要求10所述的方法,其特征在于,所述根据加载状态标识的取值,从OLT下载对应的文件,包括:
如果加载状态标识的取值状态指示应用软件处于启动状态,则判断当前文件系统分区是否正确;
如果当前文件系统分区正确,则判断当前配置文件是否正确,如果当前配置文件正确,则从OLT下载该ONU对应的用户应用程序文件;否则,从OLT下载该ONU对应的配置文件;
如果当前文件系统分区不正确,则从OLT下载该ONU对应的用户应用程序文件。
13.根据权利要求11所述的方法,其特征在于,所述判断当前文件系统分区是否正确,包括:
判断当前文件系统分区存放的升级文件的长度和校验和与本地记录的升级文件的长度和校验和是否均相同;
如果升级文件的长度和校验和均相同,则确定当前文件系统分区正确;否则,确定当前文件系统分区不正确;
其中,本地记录的升级文件的长度和校验和存储在ONU上的设定位置,其中该位置为文件系统分区中存储配置文件和系统软件之外的位置。
14.根据权利要求11所述的方法,其特征在于,所述判断当前配置文件是否正确,包括:
判断当前配置分区存放的配置文件的长度和校验和与本地记录的配置文件的长度和校验和是否均相同;
如果配置文件的长度和校验和均相同,则确定当前文件系统分区正确;否则,确定当前文件系统分区不正确;
其中,本地记录的配置文件的长度和校验和存储在ONU上的设定位置,其中该位置为文件系统分区中存储配置文件和系统软件之外的位置。
15.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至14任一项中所述的方法。
16.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至14任一项中所述的方法。
17.一种ONU,其特征在于,包括上文所述的电子装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111397033.0A CN114064084A (zh) | 2021-11-23 | 2021-11-23 | Onu的升级管理方法、存储介质、电子装置和onu |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111397033.0A CN114064084A (zh) | 2021-11-23 | 2021-11-23 | Onu的升级管理方法、存储介质、电子装置和onu |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064084A true CN114064084A (zh) | 2022-02-18 |
Family
ID=80275743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111397033.0A Pending CN114064084A (zh) | 2021-11-23 | 2021-11-23 | Onu的升级管理方法、存储介质、电子装置和onu |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064084A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780019A (zh) * | 2022-03-22 | 2022-07-22 | 江苏泽景汽车电子股份有限公司 | 电子设备的管理方法、装置、电子设备及存储介质 |
CN116932010A (zh) * | 2023-09-14 | 2023-10-24 | 首都信息科技发展有限公司 | 系统固件升级方法、装置及服务器 |
-
2021
- 2021-11-23 CN CN202111397033.0A patent/CN114064084A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780019A (zh) * | 2022-03-22 | 2022-07-22 | 江苏泽景汽车电子股份有限公司 | 电子设备的管理方法、装置、电子设备及存储介质 |
CN116932010A (zh) * | 2023-09-14 | 2023-10-24 | 首都信息科技发展有限公司 | 系统固件升级方法、装置及服务器 |
CN116932010B (zh) * | 2023-09-14 | 2024-01-19 | 首都信息科技发展有限公司 | 系统固件升级方法、装置及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106020865B (zh) | 一种系统升级方法和装置 | |
CN101436138B (zh) | 一种用于软件升级且动态回滚的控制装置以及控制方法 | |
TWI384367B (zh) | 韌體更新系統及方法 | |
US20110283274A1 (en) | Firmware image update and management | |
US8972591B2 (en) | Method for downloading software | |
US7512749B2 (en) | Safe software revision for embedded systems | |
CN114064084A (zh) | Onu的升级管理方法、存储介质、电子装置和onu | |
CN110083374B (zh) | 一种升级回滚方法、系统及终端设备 | |
CN107493290B (zh) | Android智能电视系统软件进行OTA升级的方法 | |
CN110333891A (zh) | 基于物联网的增强型ota升级的方法 | |
CN108345464A (zh) | 一种安卓系统的启动方法及安卓车机 | |
CN110647333A (zh) | 固件升级方法及配置成对其中的固件进行升级的设备 | |
WO2017198156A1 (zh) | 业务部署方法、装置和系统 | |
CN111506326A (zh) | 终端设备的升级方法、装置、设备及存储介质 | |
CN111651304B (zh) | 基于双芯智能电表的软件恢复方法、装置和计算机设备 | |
CN113641390B (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN116795408A (zh) | Ecu的软件升级方法、系统及车辆 | |
CN112214353A (zh) | 固件恢复方法、装置、计算机设备和存储介质 | |
CN117130672A (zh) | 服务器启动流程控制方法、系统、终端及存储介质 | |
CN116301995A (zh) | 基于bootloader架构的固件升级方法 | |
CN116382745A (zh) | 一种固件加载升级的方法和装置 | |
CN112908390B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN115827069A (zh) | 服务器主板的启动控制方法、系统及装置 | |
CN113407217B (zh) | 芯片程序升级方法、通信设备及计算机可读存储介质 | |
WO2024113995A1 (zh) | 一种bmc异构升级方法、系统、设备及可读存储介质 |
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 |