CN105094927B - 一种设备固件升级方法和装置 - Google Patents
一种设备固件升级方法和装置 Download PDFInfo
- Publication number
- CN105094927B CN105094927B CN201510544026.7A CN201510544026A CN105094927B CN 105094927 B CN105094927 B CN 105094927B CN 201510544026 A CN201510544026 A CN 201510544026A CN 105094927 B CN105094927 B CN 105094927B
- Authority
- CN
- China
- Prior art keywords
- firmware
- equipment
- boot partition
- boot
- subregion
- 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
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种设备固件升级方法和装置,所述方法包括:当获取到设备的启动指令时,从设备的多个引导分区中确定正常的引导分区;通过运行确定的引导分区判断设备的固件是否需要升级;如果是,下载固件的镜像文件,使用下载的镜像文件对设备的固件升级。本发明提供的设备固件升级方法和装置,可以缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种设备固件升级方法和装置。
背景技术
固件(firmware)是指运行于移动终端或者嵌入式设备等设备中底层的软件,用于提供移动终端或者嵌入式系统的硬件和启动后运行的应用程序/操作系统等软件之间的接口。在设备的提供厂商发现设备由于固件的漏洞在运行过程中容易出现重启、死机等问题时,设备的提供厂商会对设备中存储的固件进行升级来解决设备在运行过程中出现的问题。
在对固件进行升级时,一般设备的提供厂商会向设备推送固件升级信息,由用户确定是否对设备的固件进行升级,在用户确定对固件进行升级时,设备通过网络下载固件的升级文件,然后重新启动,对固件进行升级,并在固件升级后正常启动设备,使固件升级后的设备可以为用户使用。
在对设备的固件进行升级的过程中,如果由于异常情况断电关机(例如:设备电量不足导致断电关机),此次固件升级失败,导致设备中的固件不完整,当该设备再次启动时,由于其固件不完整而不能正常引导设备中的应用程序/操作系统等软件启动,导致设备不能正常使用。这种情况下,用户只能将设备返回厂商进行维修,影响用户的正常使用,降低了用户对设备的使用体验度。
发明内容
本发明的目的在于提供一种设备固件升级方法和装置,缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
第一方面,本发明实施例提供了一种设备固件升级方法,所述方法包括:
当获取到设备的启动指令时,从所述设备的多个引导分区中确定正常的引导分区;
通过运行确定的所述引导分区判断所述设备的固件是否需要升级;
如果是,下载所述固件的镜像文件,使用下载的所述镜像文件对所述设备的固件升级。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,使用下载的所述镜像文件对所述设备的固件升级包括:
从所述多个引导分区中选取除正在运行的所述引导分区以外的引导分区;
使用所述镜像文件逐一对选取的所述引导分区升级;
当所述选取的所述引导分区均升级完毕时,使用所述镜像文件对所述正在运行的所述引导分区升级;
当所述正在运行的所述引导分区升级完毕时,使用所述镜像文件中的内核分区文件和根文件系统分区文件,分别对所述固件中的内核分区和根文件系统分区升级。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,通过运行确定的所述引导分区判断所述设备的固件是否需要升级包括:
通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
判断所述启动标识的数量是否达到预设的启动标识阈值;
如果是,确定所述设备的固件需要升级;
如果否,通过运行确定的所述引导分区向启动标识分区中写入一个启动标识,以及启动所述固件的内核和根文件系统;
当所述内核或所述根文件系统启动失败时,重启所述设备。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,通过正在运行的所述引导分区启动所述固件的内核和根文件系统的顺序为先启动所述内核,当所述内核启动成功时,再启动所述根文件系统;
相应地,所述方法还包括:当所述根文件系统启动成功时,擦除当前所述启动标识分区的最后一个启动标识。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述内核对应的分区为一个,所述根文件系统对应的分区为一个。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,从所述设备的多个引导分区中确定正常的引导分区包括:
从所述设备的多个引导分区中读取一个引导分区的数据,对读取的所述引导分区的数据进行校验;
当读取的所述引导分区的数据校验正确时,确定数据校验正确的所述引导分区为正常的引导分区。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,下载所述固件的镜像文件,包括:
判断预设时长内是否开始通过网络下载所述固件的镜像文件;
如果是,保存下载得到的所述固件的镜像文件;
如果否,则启动所述设备。
第二方面,本发明实施例提供了一种设备固件升级装置,所述装置包括:
正常引导分区确定模块,用于当获取到设备的启动指令时,从所述设备的多个引导分区中确定正常的引导分区;
固件升级判断模块,用于通过运行确定的所述引导分区判断所述设备的固件是否需要升级;
固件升级模块,用于所述固件升级判断模块的判断结果为是时,下载所述固件的镜像文件,使用下载的所述镜像文件对所述设备的固件升级。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述固件升级模块包括:
未运行引导分区获取单元,用于从所述多个引导分区中选取除正在运行的所述引导分区以外的引导分区;
未运行引导分区升级单元,用于使用所述镜像文件逐一对选取的所述引导分区升级;
运行引导分区升级单元,用于当所述选取的所述引导分区均升级完毕时,使用所述镜像文件对所述正在运行的所述引导分区升级;
内核根文件系统升级单元,用于当所述正在运行的所述引导分区升级完毕时,使用所述镜像文件中的内核分区文件和根文件系统分区文件,分别对所述固件中的内核分区和根文件系统分区升级。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述固件升级判断模块包括:
启动标识数量确定单元,用于通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
启动标识数量判断单元,用于判断所述启动标识的数量是否达到预设的启动标识阈值;
升级确定单元,用于所述启动标识数量判断单元的判断结果为是时,确定所述设备的固件需要升级;
启动单元,用于所述启动标识数量判断单元的判断结果为否时,通过运行确定的所述引导分区向启动标识分区中写入一个启动标识,以及启动所述固件的内核和根文件系统;
设备重启单元,用于当所述内核或所述根文件系统启动失败时,重启所述设备。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述装置还包括:启动标识清除单元,用于当所述根文件系统启动成功时,擦除当前所述启动标识分区的最后一个启动标识。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述内核对应的分区为一个,所述根文件系统对应的分区为一个。
结合第二方面,本发明实施例提供了第二方面的第五种可能的实施方式,其中,所述正常引导分区确定模块包括:
引导分区数据校验单元,用于从所述设备的多个引导分区中读取一个引导分区的数据,对读取的所述引导分区的数据进行校验;
正确引导分区确定单元,用于当读取的所述引导分区的数据校验正确时,确定数据校验正确的所述引导分区为正常的引导分区。
结合第二方面,本发明实施例提供了第二方面的第六种可能的实施方式,其中,固件升级模块,包括:
镜像文件下载判断单元,用于判断预设时长内是否开始通过网络下载所述固件的镜像文件;
镜像文件保存单元,用于所述镜像文件下载判断单元的判断结果为是时,保存下载得到的所述固件的镜像文件;
设备启动单元,用于所述镜像文件下载判断单元的判断结果为否时,启动所述设备。
本发明实施例提供的一种设备固件升级方法和装置,当获取到设备的启动指令时,运行设备的多个引导分区中确定正常的引导分区,然后通过运行确定的引导分区判断设备的固件是否需要升级,在确定设备的固件需要升级时,就可以下载固件的镜像文件对设备的固件进行升级;即使在对设备的固件进行升级的过程中,由于异常情况断电关机而导致设备的固件升级失败的情况下,只要设备的固件中设置的多个引导分区中有一个可以正常使用,就可以引导设备进行固件的升级,完成固件的升级操作,而完整的固件就可以正常引导设备中的应用程序/操作系统等软件启动,使用户可以正常使用设备,而无需将设备返回厂商进行维修,从而缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种设备固件升级方法所涉及的一种实施系统的结构示意图;
图2示出了本发明实施例1所提供的一种设备固件升级方法流程图;
图3示出了本发明实施例2所提供的一种设备固件升级方法的具体流程图;
图4示出了本发明实施例3所提供的一种设备固件升级装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关的文件系统中,在对设备的固件进行升级的过程中,如果由于异常情况断电关机(例如:设备电量不足导致断电关机),此次固件升级失败,导致设备中的固件不完整,当该设备再次启动时,由于其固件不完整而不能正常引导设备中的应用程序/操作系统等软件启动,导致设备不能正常使用。这种情况下,用户只能将设备返回厂商进行维修,影响用户的正常使用,降低了用户对设备的使用体验度。基于此,本发明实施例提供了一种设备固件升级方法和装置。
参见图1,其示出了本发明实施例提供的设备固件升级方法所涉及的一种实施系统的结构示意图,该系统包括:设备10和运行在设备10中的固件11;固件11包括多个引导分区12、一个内核分区13和一个根文件系统分区14;
其中,设备10在启动时,会从设备的多个引导分区12中确定正常的引导分区12,然后运行确定的引导分区12,并由运行的引导分区12读取内核分区13的数据来启动设备的内核,如果设备的内核可以正常启动,那么就通过内核读取并挂载根文件系统分区14中的数据,启动设备的根文件系统分区14,如果设备的根文件系统14可以正常启动,那么就通过根文件系统14启动设备的操作系统,从而完成设备的启动,但在设备没有正常关机或者在固件升级时因异常情况导致固件升级终止的情况下,那么在进行设备的开机操作后,与正常启动一样,设备会从设备的多个引导分区12中确定正常的引导分区12,然后运行确定的引导分区12,并由运行的引导分区12读取内核分区13的数据来启动设备的内核,但由于设备固件升级失败或者设备没有正常关机时,都有可能造成内核的损坏,那么此时设备中损坏的内核或者根文件系统是不能被使用而启动操作系统的,那么此时运行的引导分区12就会读取网络配置,通过网络获取固件的镜像文件,对设备的固件进行升级操作,在升级完成后就可以保证固件11中的多个引导分区12、内核分区13和根文件系统分区14都是完整正常且可以正常使用的,从而可以对设备的系统进行引导和启动。
设备10,可以是现有的任何在启动时需要固件引导并启动所安装的操作系统的移动终端或者嵌入式设备,这里不再一一赘述。
实施例1
参见图2,本实施例提供一种设备固件升级方法,该方法包括如下步骤:
步骤200、当获取到设备的启动指令时,从设备的多个引导分区中确定正常的引导分区。
设备的启动指令,用于使设备开机并引导设备的系统启动;可以是设备在关机状态下,用户通过设备的开关按键向设备发出的指令,也可以是设备在升级之后,为了启用新升级的固件或者操作系统,设备在升级完毕之后会执行一个启动指令,自行重新启动,从而在启动设备时加载升级后的固件或者操作系统,使用户可以使用新升级的固件和操作系统。
引导分区,就是设备中固件的一部分,在设备启动后,最先启动的固件部分,作用与计算机中的BIOS(基本输入输出系统,Basic Input Output System)类似,用于对设备的硬件进行初始化、为设备的操作系统提供底层的硬件接口、和从内核分区中读取内核数据并引导内核启动。
在移动终端或者嵌入式设备中,引导分区一般采用U-Boot(通用引导装载器,Universal Boot Loader)分区,来引导并启动移动终端或者嵌入式设备,当然,在移动终端或者嵌入式设备中也可以采用如ARMboot等可以实现U-Boot相同功能的其他引导分区,这里不再一一赘述。
设备在启动后,会对预设的多个引导分区中的每个引导分区逐一进行校验,当确定多个引导分区中的任一引导分区校验成功时,就可以确定该校验成功的引导分区为正常的引导分区,从而运行该正常的引导分区。
就是说,设备预先设置有至少两个引导分区,这些引导分区的数据相同而且起的作用也是相同的,在设备启动后,会先校验多个引导分区中的第一引导分区,当第一引导分区校验成功时,就运行第一引导分区,而不会继续对后面的多个引导分区进行校验,当第一引导分区校验不成功时,设备就会继续校验第二引导分区的数据,当第二引导分区校验成功时,就运行第二引导分区,也不会继续对后面的多个引导分区进行校验,当第二引导分区校验不成功时,设备就会继续校验后面的引导分区,直到校验出数据正确的引导分区后,运行该校验正确的引导分区。
步骤202、通过运行确定的引导分区判断设备的固件是否需要升级。
固件是指运行于设备中底层的软件,用于提供移动终端或者嵌入式系统的硬件和启动后运行的应用程序/操作系统等软件之间的接口。
通常情况下,固件会存储于移动终端或者嵌入式系统中的电可擦除只读存储器(Electrically Erasable Programmable ROM,EEPROM)或闪存(FLASH)芯片中。
设备中的固件,除了包括引导分区之外,还包括内核分区和根文件系统分区。
内核分区,可以向设备中的操作系统提供基本的功能,是操作系统工作的基础,包括一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的功能模块(如时钟管理、进程调度等)以及关键性数据结构,在启动系统时需要由引导分区进行启动并常驻内存向操作系统提供相应的功能。
根文件系统分区,是安装在设备中的操作系统的运行基础,根文件系统分区中的根文件系统(比如设备中Bin目录下的文件)在设备的内核挂载后由内核第一个挂载,用于对操作系统中的其他文件和服务进行启动和挂载。
步骤204、如果是,下载固件的镜像文件,使用下载的镜像文件对设备的固件升级。
从步骤200和步骤202的对固件中引导分区、内核分区和根文件系统分区的描述可以看出,引导分区中的数据正确,就可以启动内核分区中的数据,而内核分区中的数据正确可以正常启动时,就可以挂载根文件系统分区中的文件,而根文件系统启动后,就可以对设备中的操作系统中的文件和服务进行启动和挂载,从而完成设备的启动操作。但是当内核分区和根文件系统分区中的数据和文件有损坏时,设备的固件就不能对设备中的操作系统中的文件和服务进行启动和挂载,就不能完成系统的启动,那么在这种情况下就需要下载固件的镜像文件。
综上所述,本实施例提供的设备固件升级方法,当获取到设备的启动指令时,运行设备的多个引导分区中确定正常的引导分区,然后通过运行确定的引导分区判断设备的固件是否需要升级,在确定设备的固件需要升级时,就可以下载固件的镜像文件对设备的固件进行升级;即使在对设备的固件进行升级的过程中,由于异常情况断电关机而导致设备的固件升级失败的情况下,只要设备的固件中设置的多个引导分区中有一个可以正常使用,就可以引导设备进行固件的升级,完成固件的升级操作,而完整的固件就可以正常引导设备中的应用程序/操作系统等软件启动,使用户可以正常使用设备,而无需将设备返回厂商进行维修,从而缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
相对于现有技术的固件中只设置有一个引导分区且不能对引导分区进行升级的情况,在本实施例中提出的设备的固件,由于设置有多个引导分区,所以使用下载的镜像文件对设备的固件升级步骤包括以下步骤(1)至(4):
(1)从多个引导分区中选取除正在运行的引导分区以外的引导分区;
(2)使用镜像文件逐一对选取的引导分区升级;
(3)当选取的引导分区均升级完毕时,使用镜像文件对正在运行的引导分区升级;
(4)当正在运行的引导分区升级完毕时,使用镜像文件中的内核分区文件和根文件系统分区文件,分别对固件中的内核分区和根文件系统分区升级。
在上述的步骤(2)中,在对多个引导分区中的任一未使用的引导分区进行升级时,先擦除该引导分区中的引导分区数据,然后将获取到的镜像文件中的引导分区文件写入已擦除数据的引导分区中,从而完成该引导分区的升级,然后擦除另外一个未使用的引导分区的数据,对其他的未使用的引导分区进行升级,直到所有的未使用的引导分区升级完毕。
由于被确定正常的引导分区的数据在启动时已经被读取到设备的内存中,所以在对未使用的多个引导分区升级完毕后,就可以对正常使用的引导分区的数据进行升级而不会影响被确定正常的引导分区的正常使用。
使用镜像文件分别对固件中的内核分区和根文件系统分区进行升级时,与对引导分区的数据进行升级的过程类似,也是先擦除内核分区或者根文件系统分区中的数据,然后将获取到的镜像文件中的内核分区文件或者根文件系统分区文件分被写入内核分区和根文件系统分区中,从而完成内核分区和根文件系统分区的升级。
通过以上的描述,先对未使用的引导分区进行升级,并在对未使用的引导分区升级完毕后,升级当前使用的引导分区,可以保证在对引导分区升级的过程中出现升级终断的情况时,也可以保证设备固件中有可以使用的引导分区,从而在重新启动设备时,可以通过设备固件中可以使用的引导分区,对设备固件进行升级操作,确保了设备可以完成升级并被正常使用。
由于当内核分区和根文件系统分区中的数据和文件有损坏时,设备的固件就不能对设备中的操作系统中的文件和服务进行启动和挂载,就不能完成系统的启动,那么在这种情况下就需要对设备的固件进行升级,所以通过运行确定的引导分区判断设备的固件是否需要升级步骤包括以下步骤(1)至步骤(5):
(1)通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
(2)判断启动标识的数量是否达到预设的启动标识阈值;
(3)如果是,确定设备的固件需要升级;
(4)如果否,通过运行确定的引导分区向启动标识分区中写入一个启动标识,以及启动固件的内核和根文件系统;
(5)当内核或根文件系统启动失败时,重启设备。
在上述步骤(5)中,当内核启动成功时,再启动根文件系统;当根文件系统启动成功时,擦除当前启动标识分区的最后一个启动标识。
启动标识,是预设的固定信息,可以是0x5A或者0xA5等一个字节大小的十六进制数字,按照启动顺序写入到启动标识分区中,设备在每次启动时,运行的引导分区都会先读取启动标识分区中记录的启动标识。由于每个启动标识只占用一个字节,那么运行的引导分区通过从引导分区中获取的字节大小,就可以确定读入的启动标识的数量。
当然,启动标识也可以采用其他的比如二进制或者十进制的数字等其他的表现形式,这里不再一一赘述。
通过以上的描述可以看出,通过对启动标识的数量进行判断,就可以确定设备的固件是否需要升级,具有操作简单方便且容易实施的特点。
由于通过设置多个引导分区就保证了设备可以正常使用,所以本实施例中的设备的固件中就无需像某些具有双系统的设备固件一样,固件中分别包括两个内核分区和两个根文件系统分区。而只需要在设备的固件中分别设置一个内核分区和一个根文件系统分区。由于本实施例的固件中分别只设置有一个内核分区和一个根文件系统分区,具有节省了存储空间和降低了固件的开发成本的特点。
相关技术中设备在启动时需要对固件中的引导分区、内核分区和根文件系统分区都进行校验,所以启动的时间较长,所以从设备的多个引导分区中确定正常的引导分区步骤包括以下步骤(1)至步骤(2):
(1)从设备的多个引导分区中读取一个引导分区的数据,对读取的引导分区的数据进行校验;
(2)当读取的引导分区的数据校验正确时,确定数据校验正确的引导分区为正常的引导分区。
在对引导分区的数据进行校验时,对引导分区的数据进行哈希运算,得到引导分区的数据的哈希值,然后与写入引导分区时计算得到的引导分区数据的哈希值进行比对,当比对的结果显示二者一致时,说明读取的引导分区的数据校验正确,该引导分区是确定正常的引导分区;当比对的结果显示二者不一致时,说明读取的引导分区的数据校验不正确,需要对另外的引导分区的数据进行校验,直到确定出正常的引导分区。
当然,也可以采用其他的校验方式对引导分区的数据进行校验,这里不再一一赘述。
通过以上的描述可以看出,通过校验数据的方式确定哪个引导分区正常,然后通过正常的引导分区启动系统,以快捷可靠的方式来对系统进行启动,而无需对内核和根文件系统进行进一步的校验,从而减少了系统校验的时间,使设备在正常情况下,可以快速启动。
在从网路上下载固件的镜像文件时,可能由于网络忙,导致长时间下载不到固件的镜像文件的情况的出现,所以下载固件的镜像文件步骤包括以下步骤(1)至步骤(3):
(1)判断预设时长内是否开始通过网络下载固件的镜像文件;
(2)如果是,保存下载得到的固件的镜像文件;
(3)如果否,则启动设备。
在步骤(3)中启动设备是指启动存储在固件的内核分区中的内核。
固件中还包括配置分区,配置分区中包括网络配置信息,网络配置信息包括但不限于:存储有固件的镜像文件的服务器的ip地址和设备的ip地址。
设备接收固件的镜像文件的过程包括:设备会读取配置分区中的网络配置信息,获取存储有固件的镜像文件的服务器的ip地址,并通过存储有固件的镜像文件的服务器的地址向该服务器发起访问,向存储有固件的镜像文件的服务器发起携带有设备ip地址的连接请求,存储有固件的镜像文件的服务器在接收到连接请求后就会与连接请求中记录的ip地址建立连接通道,并通过建立的连接通道向设备发送固件的镜像文件。
所以在预设时长内设备向存储有固件的镜像文件的服务器发起连接请求,并开始接收固件的镜像文件,说明预设时长内开始通过网络下载固件的镜像文件,否则说明预设时长内未开始通过网络下载固件的镜像文件。从而对预设时长内是否开始通过网络下载固件的镜像文件进行判断,得到判断结果,并根据判断结果进行相应的操作。
通过设置预设时长对是否开始通过网络下载固件镜像文件进行判断,能够缩短设备固件升级的时间,进一步减少设备用户等待设备固件升级的时间,使得用户可以尽快使用到升级完毕的设备。
实施例2
图3是设备固件升级方法的具体流程图,以设备固件中包括两个引导分区为例对系统启动的流程进行说明,设备固件升级方法包括以下步骤:
步骤300、读取第一引导分区的数据并进行校验;
步骤302、判断读取的第一引导分区的数据是否正确,如果是则执行步骤308,如果否则执行步骤304;
步骤304、读取第二引导分区的数据并进行校验;
步骤306、判断读取的第二引导分区的数据是否正确,如果是,则执行步骤308;如果否,则提示用户引导分区不可用后重新启动设备并返回步骤300。
步骤308、启动校验正确的引导分区;
步骤310、通过启动的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
步骤312、判断统计的启动标识数量是否达到设定的阈值;如果是,则执行步骤314;如果否,则执行步骤328;
步骤314、读取配置分区中的网络相关配置,从网络获取设备固件的升级镜像文件;
步骤316、判断预设时长内是否开始从网络获取设备固件的升级镜像文件;如果是,则执行步骤318;如果否,则执行步骤330;
步骤318、下载设备固件的固件镜像文件;
步骤320、当设备固件的固件镜像文件下载完毕后,通过固件镜像文件中的引导分区文件对设备固件中未使用的引导分区进行升级操作;
步骤322、当对设备固件中未使用的引导分区升级完毕后,对当前使用的引导分区进行升级;
步骤324、当对当前使用的引导分区升级完毕后,通过固件镜像文件中的内核文件和根文件系统文件分别对设备固件中的内核和根文件系统进行升级;
步骤326、当对设备固件中的内核和根文件系统升级完毕后,执行步骤330;
步骤328、通过当前运行的引导分区向启动标识分区中写入一个启动标识;
步骤330、读取内核分区中的内核文件,并启动内核;
步骤332、判断内核启动是否成功,如果是,则执行步骤334;如果否,则重新启动并返回步骤300;
步骤334、读取根文件系统分区中的根文件系统文件,并启动根文件系统;
步骤336、判断根文件系统启动是否成功,如果是,则执行步骤338;如果否,则重新启动并返回步骤300;
步骤338、清除启动标识分区中写入的最后一个启动标识。
上述方法是对下面所描述的设备的固件进行升级。
设备的固件包括:一个bootloader分区,1个以上引导分区(U-Boot分区),1个以上启动标识分区,1个以上配置分区,其它还有内核分区(kernel分区)和根文件系统分区(rootfs分区)等,每个分区按物理块为单位存储。
bootloader一般是简化版本的U-Boot,负责校验并加载正确的U-Boot,功能比较简单,无需升级。
U-Boot分区负责检测启动标识分区,当检测到连续启动标识超出规定数量(如10次)时停止启动系统,并启动网络升级服务程序,当超出一定时间(如5分钟)仍未开始升级时再次尝试启动系统。
每次U-Boot启动系统(加载kernel)前都启用看门狗并追加启动标识,系统启动后由网络升级服务或相关应用判定正常后再关闭或接管喂狗及清除最后一个启动标识。
若需要升级U-Boot,则必须保证有2个以上的U-Boot分区(当使用NAND Flash时为避免出现坏块,最好使用3个以上的u-boot分区),升级时一个接一个的升级,而不要一同升级(多个分区一同擦除一起写),避免断电后没有正确U-Boot分区可用;若无需升级U-Boot,也可以仅使用一个可用U-Boot分区。
使用NAND Flash时,每个U-Boot分区应使用固定存储位置,而不是跳过坏块,以避免新坏块的影响bootloader校验及升级的复杂度。
设备中各分区的升级方法:读分区升级数据到内存、擦除整个分区、写数据到整个分区。
可选地,在对设备中的固件进行升级时,还可以每次仅升级U-Boot分区二(就是流程中的第二引导分区),bootloader分区只要通过校验判定该分区正常时即使用此分区,否则使用U-Boot分区一(就是流程中的第一引导分区),如此仍然可以达到既能够多数情况下使用新分区又可以兼顾到升级失败造成的风险。
综上所述,本实施例提供的设备固件升级方法,当获取到设备的启动指令时,运行设备的多个引导分区中确定正常的引导分区,然后通过运行确定的引导分区判断设备的固件是否需要升级,在确定设备的固件需要升级时,就可以下载固件的镜像文件对设备的固件进行升级;即使在对设备的固件进行升级的过程中,由于异常情况断电关机而导致设备的固件升级失败的情况下,只要设备的固件中设置的多个引导分区中有一个可以正常使用,就可以引导设备进行固件的升级,完成固件的升级操作,而完整的固件就可以正常引导设备中的应用程序/操作系统等软件启动,使用户可以正常使用设备,而无需将设备返回厂商进行维修,从而缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
实施例3
参见图4,本实施例提出一种设备固件升级装置,用于执行上述实施例中描述的设备固件升级方法,该装置包括:正常引导分区确定模块400、固件升级判断模块402和固件升级模块404。
其中,正常引导分区确定模块400,用于当获取到设备的启动指令时,从设备的多个引导分区中确定正常的引导分区;固件升级判断模块402,与正常引导分区确定模块400连接,用于通过运行确定的引导分区判断设备的固件是否需要升级;固件升级模块404,与固件升级判断模块402连接,用于固件升级判断模块的判断结果为是时,下载固件的镜像文件,使用下载的镜像文件对设备的固件升级。
相对于现有技术的固件中只设置有一个引导分区且不能对引导分区进行升级的情况,固件升级模块404通过设置的未运行引导分区获取单元、未运行引导分区升级单元、运行引导分区升级单元和内核根文件系统升级单元对固件中的多个引导分区进行升级,固件升级模块404具体包括:
未运行引导分区获取单元,用于从多个引导分区中选取除正在运行的引导分区以外的引导分区;
未运行引导分区升级单元,用于使用镜像文件逐一对选取的引导分区升级;
运行引导分区升级单元,用于当选取的引导分区均升级完毕时,使用镜像文件对正在运行的引导分区升级;
内核根文件系统升级单元,用于当正在运行的引导分区升级完毕时,使用镜像文件中的内核分区文件和根文件系统分区文件,分别对固件中的内核分区和根文件系统分区升级。
通过以上的描述,先对未使用的引导分区进行升级,并在对未使用的引导分区升级完毕后,升级当前使用的引导分区,可以保证在对引导分区升级的过程中出现升级终断的情况时,也可以保证设备固件中有可以使用的引导分区,从而在重新启动设备时,可以通过设备固件中可以使用的引导分区,对设备固件进行升级操作,确保了设备可以完成升级并被正常使用。
由于当内核分区和根文件系统分区中的数据和文件有损坏时,设备的固件就不能对设备中的操作系统中的文件和服务进行启动和挂载,就不能完成系统的启动,那么在这种情况下,固件升级判断模块402通过设置的启动标识数量确定单元、启动标识数量判断单元、升级确定单元、启动单元和设备重启单元对设备的固件进行升级,固件升级判断模块402具体包括:
启动标识数量确定单元,用于通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
启动标识数量判断单元,用于判断启动标识的数量是否达到预设的启动标识阈值;
升级确定单元,用于启动标识数量判断单元的判断结果为是时,确定设备的固件需要升级;
启动单元,用于启动标识数量判断单元的判断结果为否时,通过运行确定的引导分区向启动标识分区中写入一个启动标识,以及启动固件的内核和根文件系统;
设备重启单元,用于当内核或根文件系统启动失败时,重启设备;
启动标识清除单元,用于当根文件系统启动成功时,擦除当前启动标识分区的最后一个启动标识。
通过以上的描述可以看出,通过对启动标识的数量进行判断,就可以确定设备的固件是否需要升级,具有操作简单方便且容易实施的特点。
由于通过设置多个引导分区就保证了设备可以正常使用,所以本实施例中的设备的固件中就无需像某些具有双系统的设备固件一样,固件中分别包括两个内核分区和两个根文件系统分区。而只需要在设备的固件中分别设置一个内核分区和一个根文件系统分区。由于本实施例的固件中分别只设置有一个内核分区和一个根文件系统分区,具有节省了存储空间和降低了固件的开发成本的特点。
相关技术中设备在启动时需要对固件中的引导分区、内核分区和根文件系统分区都进行校验,所以启动的时间较长,所以正常引导分区确定模块400通过设置的引导分区数据校验单元和正确引导分区确定单元来缩短固件的校验时间,正常引导分区确定模块400具体包括:
引导分区数据校验单元,用于从设备的多个引导分区中读取一个引导分区的数据,对读取的引导分区的数据进行校验;
正确引导分区确定单元,用于当读取的引导分区的数据校验正确时,确定数据校验正确的引导分区为正常的引导分区。
通过以上的描述可以看出,通过校验数据的方式确定哪个引导分区正常,然后通过正常的引导分区启动系统,以快捷可靠的方式来对系统进行启动,而无需对内核和根文件系统进行进一步的校验,从而减少了系统校验的时间,使设备在正常情况下,可以快速启动。
在从网路上下载固件的镜像文件时,可能由于网络忙,导致长时间下载不到固件的镜像文件的情况的出现,所以固件升级模块404,通过设置的镜像文件下载判断单元、镜像文件保存单元和设备启动单元来缩短设备的启动时间,固件升级模块404具体包括:
镜像文件下载判断单元,用于判断预设时长内是否开始通过网络下载固件的镜像文件;
镜像文件保存单元,用于镜像文件下载判断单元的判断结果为是时,保存下载得到的固件的镜像文件;
设备启动单元,用于镜像文件下载判断单元的判断结果为否时,启动设备。
通过设置预设时长对是否开始通过网络下载固件镜像文件进行判断,能够缩短设备固件升级的时间,进一步减少设备用户等待设备固件升级的时间,使得用户可以尽快使用到升级完毕的设备。
综上所述,本实施例提供的设备固件升级装置,当获取到设备的启动指令时,运行设备的多个引导分区中确定正常的引导分区,然后通过运行确定的引导分区判断设备的固件是否需要升级,在确定设备的固件需要升级时,就可以下载固件的镜像文件对设备的固件进行升级;即使在对设备的固件进行升级的过程中,由于异常情况断电关机而导致设备的固件升级失败的情况下,只要设备的固件中设置的多个引导分区中有一个可以正常使用,就可以引导设备进行固件的升级,完成固件的升级操作,而完整的固件就可以正常引导设备中的应用程序/操作系统等软件启动,使用户可以正常使用设备,而无需将设备返回厂商进行维修,从而缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
本发明实施例所提供的设备固件升级方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种设备固件升级方法,其特征在于,所述方法包括:
当获取到设备的启动指令时,从所述设备的多个引导分区中确定正常的引导分区;
通过运行确定的所述引导分区判断所述设备的固件是否需要升级;
如果是,下载所述固件的镜像文件,使用下载的所述镜像文件对所述设备的固件升级;
其中,通过运行确定的所述引导分区判断所述设备的固件是否需要升级,包括:
通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
判断所述启动标识的数量是否达到预设的启动标识阈值;
如果是,确定所述设备的固件需要升级;
如果否,通过运行确定的所述引导分区向启动标识分区中写入一个启动标识,以及启动所述固件的内核和根文件系统;
当所述内核或所述根文件系统启动失败时,重启所述设备。
2.根据权利要求1所述的方法,其特征在于,使用下载的所述镜像文件对所述设备的固件升级包括:
从所述多个引导分区中选取除正在运行的所述引导分区以外的引导分区;
使用所述镜像文件逐一对选取的所述引导分区升级;
当所述选取的所述引导分区均升级完毕时,使用所述镜像文件对所述正在运行的所述引导分区升级;
当所述正在运行的所述引导分区升级完毕时,使用所述镜像文件中的内核分区文件和根文件系统分区文件,分别对所述固件中的内核分区和根文件系统分区升级。
3.根据权利要求1所述的方法,其特征在于,通过正在运行的所述引导分区启动所述固件的内核和根文件系统的顺序为先启动所述内核,当所述内核启动成功时,再启动所述根文件系统;
相应地,所述方法还包括:当所述根文件系统启动成功时,擦除当前所述启动标识分区的最后一个启动标识。
4.根据权利要求3所述的方法,其特征在于,所述内核对应的分区为一个,所述根文件系统对应的分区为一个。
5.根据权利要求1所述的方法,其特征在于,从所述设备的多个引导分区中确定正常的引导分区包括:
从所述设备的多个引导分区中读取一个引导分区的数据,对读取的所述引导分区的数据进行校验;
当读取的所述引导分区的数据校验正确时,确定数据校验正确的所述引导分区为正常的引导分区。
6.根据权利要求1所述的方法,其特征在于,下载所述固件的镜像文件,包括:
判断预设时长内是否开始通过网络下载所述固件的镜像文件;
如果是,保存下载得到的所述固件的镜像文件;
如果否,则启动所述设备。
7.一种设备固件升级装置,其特征在于,所述装置包括:
正常引导分区确定模块,用于当获取到设备的启动指令时,从所述设备的多个引导分区中确定正常的引导分区;
固件升级判断模块,用于通过运行确定的所述引导分区判断所述设备的固件是否需要升级;
固件升级模块,用于所述固件升级判断模块的判断结果为是时,下载所述固件的镜像文件,使用下载的所述镜像文件对所述设备的固件升级;
所述固件升级判断模块包括:
启动标识数量确定单元,用于通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
启动标识数量判断单元,用于判断所述启动标识的数量是否达到预设的启动标识阈值;
升级确定单元,用于所述启动标识数量判断单元的判断结果为是时,确定所述设备的固件需要升级;
启动单元,用于所述启动标识数量判断单元的判断结果为否时,通过运行确定的所述引导分区向启动标识分区中写入一个启动标识,以及启动所述固件的内核和根文件系统;
设备重启单元,用于当所述内核或所述根文件系统启动失败时,重启所述设备。
8.根据权利要求7所述的装置,其特征在于,所述固件升级模块包括:
未运行引导分区获取单元,用于从所述多个引导分区中选取除正在运行的所述引导分区以外的引导分区;
未运行引导分区升级单元,用于使用所述镜像文件逐一对选取的所述引导分区升级;
运行引导分区升级单元,用于当所述选取的所述引导分区均升级完毕时,使用所述镜像文件对所述正在运行的所述引导分区升级;
内核根文件系统升级单元,用于当所述正在运行的所述引导分区升级完毕时,使用所述镜像文件中的内核分区文件和根文件系统分区文件,分别对所述固件中的内核分区和根文件系统分区升级。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:启动标识清除单元,用于当所述根文件系统启动成功时,擦除当前所述启动标识分区的最后一个启动标识。
10.根据权利要求9所述的装置,其特征在于,所述内核对应的分区为一个,所述根文件系统对应的分区为一个。
11.根据权利要求7所述的装置,其特征在于,所述正常引导分区确定模块包括:
引导分区数据校验单元,用于从所述设备的多个引导分区中读取一个引导分区的数据,对读取的所述引导分区的数据进行校验;
正确引导分区确定单元,用于当读取的所述引导分区的数据校验正确时,确定数据校验正确的所述引导分区为正常的引导分区。
12.根据权利要求7所述的装置,其特征在于,固件升级模块,包括:
镜像文件下载判断单元,用于判断预设时长内是否开始通过网络下载所述固件的镜像文件;
镜像文件保存单元,用于所述镜像文件下载判断单元的判断结果为是时,保存下载得到的所述固件的镜像文件;
设备启动单元,用于所述镜像文件下载判断单元的判断结果为否时,启动所述设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510544026.7A CN105094927B (zh) | 2015-08-28 | 2015-08-28 | 一种设备固件升级方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510544026.7A CN105094927B (zh) | 2015-08-28 | 2015-08-28 | 一种设备固件升级方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094927A CN105094927A (zh) | 2015-11-25 |
CN105094927B true CN105094927B (zh) | 2018-06-12 |
Family
ID=54575437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510544026.7A Active CN105094927B (zh) | 2015-08-28 | 2015-08-28 | 一种设备固件升级方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094927B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020875B (zh) * | 2016-05-16 | 2020-09-04 | 北京奇虎科技有限公司 | 嵌入式终端的固件更新管理方法和装置 |
CN106201608A (zh) * | 2016-07-01 | 2016-12-07 | 南京百敖软件有限公司 | 计算机uefi固件更新方法 |
CN108108193A (zh) * | 2016-11-24 | 2018-06-01 | 厦门脉视数字技术有限公司 | 一种安全易用的固件升级方法及系统 |
CN107247642B (zh) * | 2017-06-27 | 2020-12-25 | 青岛智动精工电子有限公司 | 用于系统开机时确定可执行映像文件的方法及装置 |
CN107577563A (zh) * | 2017-09-26 | 2018-01-12 | 晶晨半导体(上海)股份有限公司 | 一种系统升级异常断电的保护方法及终端设备 |
CN108121554A (zh) * | 2017-12-20 | 2018-06-05 | 浙江亿邦通信科技股份有限公司 | 一种户外嵌入式设备系统的升级方法及升级系统 |
CN109032846A (zh) * | 2018-08-08 | 2018-12-18 | 京信通信系统(中国)有限公司 | 设备远程备份升级方法、装置、计算机存储介质及设备 |
CN109240720B (zh) * | 2018-08-23 | 2021-11-26 | 瑞芯微电子股份有限公司 | 一种安卓系统的固件升级方法及一种存储设备 |
CN109471650B (zh) * | 2018-11-29 | 2021-12-28 | 华青融天(北京)软件股份有限公司 | 一种升级异常确定方法、装置和计算机设备 |
CN111158728B (zh) * | 2019-12-31 | 2024-02-02 | 深圳市潮流网络技术有限公司 | 固件升级方法、固件启动方法及装置 |
CN113064608A (zh) * | 2020-01-02 | 2021-07-02 | 广东博智林机器人有限公司 | 一种ota升级方法、装置、设备和介质 |
CN112363749A (zh) * | 2020-09-04 | 2021-02-12 | 中核武汉核电运行技术股份有限公司 | 一种mips架构系统的安全启动和升级方法 |
CN114730266A (zh) * | 2020-09-30 | 2022-07-08 | 深圳市大疆创新科技有限公司 | 一种激光雷达的固件升级方法、测距装置和存储介质 |
CN114185491B (zh) * | 2021-12-13 | 2024-01-19 | 惠州Tcl移动通信有限公司 | 一种分区文件的下载方法、装置、存储介质及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090023863A (ko) * | 2007-09-03 | 2009-03-06 | 엘지이노텍 주식회사 | 펌웨어 업데이트 시스템 및 방법 |
CN102073517A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种嵌入式系统的升级、备份方法和装置 |
CN102289397A (zh) * | 2011-09-13 | 2011-12-21 | 全星科技(珠海)有限公司 | 一种机顶盒的嵌入式系统自动恢复方法及装置 |
CN102467397A (zh) * | 2010-11-17 | 2012-05-23 | 中兴通讯股份有限公司 | 嵌入式系统的引导方法及装置 |
CN102830986A (zh) * | 2011-06-17 | 2012-12-19 | 中兴通讯股份有限公司 | 一种在双boot程序环境下启动系统的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189336A1 (en) * | 2012-12-28 | 2014-07-03 | Miguel Ballesteros | Methods and apparatus to support authenticated variables |
-
2015
- 2015-08-28 CN CN201510544026.7A patent/CN105094927B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090023863A (ko) * | 2007-09-03 | 2009-03-06 | 엘지이노텍 주식회사 | 펌웨어 업데이트 시스템 및 방법 |
CN102073517A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种嵌入式系统的升级、备份方法和装置 |
CN102467397A (zh) * | 2010-11-17 | 2012-05-23 | 中兴通讯股份有限公司 | 嵌入式系统的引导方法及装置 |
CN102830986A (zh) * | 2011-06-17 | 2012-12-19 | 中兴通讯股份有限公司 | 一种在双boot程序环境下启动系统的方法和装置 |
CN102289397A (zh) * | 2011-09-13 | 2011-12-21 | 全星科技(珠海)有限公司 | 一种机顶盒的嵌入式系统自动恢复方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105094927A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094927B (zh) | 一种设备固件升级方法和装置 | |
US8751783B2 (en) | Booting computing devices with EFI aware operating systems | |
CN102023908A (zh) | 一种引导程序备份方法及装置 | |
CN105760200A (zh) | 终端设备及其系统升级方法 | |
CN109960523B (zh) | 一种嵌入式设备的固件升级方法及装置 | |
CN109587331B (zh) | 云手机故障自动修复的方法与系统 | |
CN103150231A (zh) | 计算机开机的方法与计算机系统 | |
CN102479121A (zh) | 独立磁盘冗余阵列实现及测试方法 | |
CN112612524A (zh) | Linux系统启动的方法、装置、设备及存储介质 | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
CN103514065A (zh) | 具自动检测和恢复功能的电子装置及方法 | |
CN105677409B (zh) | 一种系统升级方法及装置 | |
CN108733517A (zh) | Ssd固件升级保护方法及装置 | |
CN111338698A (zh) | 一种bios准确引导服务器启动的方法及系统 | |
CN103455750B (zh) | 一种嵌入式设备的高安验证方法及装置 | |
CN109582332B (zh) | 互联网摄像机的系统升级方法及装置 | |
CN108170456B (zh) | 电子设备的固件升级方法及装置 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
CN114138527A (zh) | 一种提高服务器性能的方法、装置及介质 | |
CN113190256A (zh) | 一种升级方法、装置及设备 | |
CN110928726A (zh) | 一种基于看门狗及pxe的嵌入式系统自恢复方法及系统 | |
CN101193356A (zh) | 便携式信息终端机的固件升级方法 | |
CN108052337A (zh) | 一种eMMC量产工具的固件升级方法及装置 | |
CN105278993A (zh) | 一种基于Linux系统的驱动模块升级方法及装置 | |
CN111190627A (zh) | 系统升级方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20220726 Granted publication date: 20180612 |
|
PP01 | Preservation of patent right |