CN103123586A - 基于Linux嵌入式操作系统的升级装置及方法 - Google Patents

基于Linux嵌入式操作系统的升级装置及方法 Download PDF

Info

Publication number
CN103123586A
CN103123586A CN2011103747605A CN201110374760A CN103123586A CN 103123586 A CN103123586 A CN 103123586A CN 2011103747605 A CN2011103747605 A CN 2011103747605A CN 201110374760 A CN201110374760 A CN 201110374760A CN 103123586 A CN103123586 A CN 103123586A
Authority
CN
China
Prior art keywords
setting
operating system
aku
module
decompression
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
Application number
CN2011103747605A
Other languages
English (en)
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.)
Inventec Corp
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CN2011103747605A priority Critical patent/CN103123586A/zh
Publication of CN103123586A publication Critical patent/CN103123586A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于Linux嵌入式操作系统的升级方法及装置,首先在操作系统的升级过程中添加操作标志;然后根据操作系统升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所Fs处的阶段;以及根据所述操作标志的设定进行操作系统对应阶段的升级操作。本发明可以实现不同升级阶段意外掉电的保护,保证升级的顺利进行。

Description

基于Linux嵌入式操作系统的升级装置及方法
技术领域
本发明涉及一种升级装置及方法,尤其涉及一种基于Linux嵌入式操作系统的升级装置及方法。
背景技术
通常,一个基于Linux的嵌入式操作系统至少包含引导程序(程式)GRUB、内核镜像vmlinuz和Ramdisk镜像initrd.gz。在实际运行过程中,为了使开发的新功能得到支持,通常需要对系统进行升级操作,也就是对内核镜像、Ramdisk镜像或者更多的部分进行更新操作。系统升级通常的做法是提供一个升级包,使用该升级包中所含的新的系统镜像覆盖旧有的系统镜像,然后重新启动以完成升级操作。
此做法在一般的情况下是可行的,但是也存在其不足,比如在升级过程中如果出现意外掉电的情况,将可能导致升级过程无法正常完成,更恶劣的情况是导致系统镜像损坏而无法启动。
发明内容
本发明的目的旨在至少解决现有技术中的上述问题之一。
为此,本发明的实施例提出一种基于Linux嵌入式操作系统升级装置及方法,采用本发明进行系统升级操作可以解决过程中意外掉电,并保证升级操作顺利完成。
根据本发明的一个方面,本发明实施例提出了一种基于Linux嵌入式操作系统的升级装置,所述升级装置包括:
标志添加模块,所述标志添加模块用于在所述操作系统的升级过程中添加操作标志;
设定模块,所述设定模块用于根据操作系统升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所处的阶段;以及
升级模块,所述升级模块用于根据所述操作标志的设定进行操作系统对应阶段的升级操作。
根据本发明进一步的实施例,所述设定模块初始设定操作标志为第一状态值和在系统启动过程中自动运行升级过程,以根据第一状态值设定操作系统在启动过程中执行准备升级的操作。
根据本发明进一步的实施例,所述设定模块在操作系统对应升级包解压缩完成后设定操作标志为第二状态值,以在操作系统升级过程中利用生成的解压缩的升级包进行升级操作。
根据本发明再一步的实施例,还包括清除模块,所述清除模块用于在利用生成的解压缩的升级包完成拷贝覆盖的升级操作之后,及/或在升级包的解压缩失败或者生成的解压缩的升级包非预期文件时,清除设定的所述操作标志以及操作系统启动过程中自动运行升级过程的设定。
根据本发明的另一方面,本发明的实施例提出一种基于Linux嵌入式操作系统的升级方法,所述升级方法包括以下步骤:
在所述操作系统的升级过程中添加操作标志;
根据操作系统升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所处的阶段;以及
根据所述操作标志的设定进行操作系统对应阶段的升级操作。
根据本发明进一步的实施例,初始设定操作标志为第一状态值和在系统启动过程中自动运行升级过程,以根据第一状态值设定操作系统在启动过程中执行准备升级的操作。
根据本发明进一步的实施例,在操作系统对应升级包解压缩完成后设定操作标志为第二状态值,以在操作系统升级过程中利用生成的解压缩的升级包进行升级操作。
根据本发明再一步的实施例,还包括:
在利用生成的解压缩的升级包完成拷贝覆盖的升级操作之后,清除所述操作标志和操作系统启动过程中自动运行升级过程的设定。
根据本发明再一步的实施例,还包括:
在升级包的解压缩失败或者生成的解压缩的升级包非预期文件时,清除所述操作标志和操作系统启动过程中自动运行升级过程的设定。
通过本发明的升级装置和方法,根据添加的操作标志进行相应处理,完成后续升级操作,可以实现不同升级阶段意外掉电的保护,保证升级的顺利进行。无论是新镜像文件还是旧镜像文件,能够有至少一套镜像文件正确启动。从而避免因意外掉电将可能导致的升级过程无法正常完成,或者导致系统镜像损坏而无法启动。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的基于Linux嵌入式操作系统的升级装置结构图;
图2为本发明实施例的基于Linux嵌入式操作系统的升级方法的总体步骤流程图;
图3为本发明实施例的基于Linux嵌入式操作系统的升级方法的具体步骤流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
首先参考图1,该图示出了本发明实施例的基于Linux嵌入式操作系统的升级装置结构图。
如图所示,本发明基于Linux嵌入式操作系统的升级装置包括标志添加模块12、设定模块14和升级模块16。标志添加模块12用于在Linux嵌入式操作系统的升级过程中添加操作标志S;设定模块14用于根据操作系统升级操作所处的阶段,例如准备升级阶段、镜像文件解压缩完成阶段等等对所述操作标志进行设定,以记录升级操作所处的阶段;以及升级模块16用于根据所述操作标志的设定进行操作系统对应阶段的升级操作,从而在出现意外掉电的情况下根据该标志进行相应处理,完成后续升级操作。
在一个实施例中,设定模块14初始设定操作标志S为第一状态值s1,例如在实际实施中s1可能为“准备升级”,并设定在操作系统启动过程中自动运行升级过程,以根据第一状态值设定操作系统在启动过程中执行准备升级的操作。
运行升级过程即将操作系统对应升级包解压缩到操作系统能访问的一个位置上,生成镜像文件。如前所述,系统升级可能包括内核镜像、Ramdisk镜像或者更多的部分。
在一个实施例中,所述设定模块14在操作系统对应升级包解压缩完成后设定操作标志为第二状态值s2,例如在实际实施中s2可能为“解压完成”,以设定在操作系统升级过程中利用生成的解压缩的升级包进行升级操作。
升级模块16在镜像文件成功解压缩完成之后,则将解压缩后的新生成的解压缩的升级包拷贝覆盖到旧镜像文件中,以完成新镜像文件对旧有的镜像文件的升级操作。
在本发明实施例中,还包括清除模块18,在升级模块16利用之后,所述清除模块18用于清除之前设定的操作标志S,并清除操作系统启动过程中自动运行本升级过程的设定。
并且,在升级包的解压缩失败或者生成的解压缩的升级包非预期文件时,所述清除模块18用于清除设定的操作标志S以及操作系统启动过程中自动运行升级过程的设定。
图2为本发明实施例的基于Linux嵌入式操作系统的升级方法的总体步骤流程图。
如图所示,本发明实施例的升级方法包括以下步骤:
在所述操作系统的升级过程中添加操作标志(步骤102);
根据操作系统升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所处的阶段(步骤104);以及
根据所述操作标志的设定进行操作系统对应阶段的升级操作(步骤106)。
下面,将结合图3的具体实施例对本发明的升级方法原理给出具体描述。
图3为本发明实施例的基于Linux嵌入式操作系统的升级方法的具体步骤流程图。
在该具体实施例中,以更新内核镜像和Ramdisk镜像为例,如有其他部分可采用相同的方法进行,这里不再赘述。
本发明是在升级过程中引入一个操作标志S,以记录升级操作所处的阶段,在出现意外掉电的情况下根据该标志进行相应处理,完成后续升级操作。
因此,首先判断操作系统中是否已经添加了操作标志S(步骤202),若没有,则添加操作标志S并设定S=s1(实际实施中s1可能为“准备升级”),以及设定在系统启动过程中自动运行本升级过程(步骤204)。
然后,将应的升级包解压缩到操作系统能访问的一个位置上,生成镜像文件A’和B’(步骤206)。在该实施例中,例如A’表示新的内核镜像,B’表示新的Ramdisk镜像。
接着,判断解压缩是否成功且生成文件是否为预期文件(步骤208)。
如果解压缩失败或者生成的镜像文件A’和B’非预期文件,则清除操作标志S和系统启动过程中自动运行本升级过程的设定并退出本升级过程(步骤222);否则,修改操作系统的引导配置为从A’和B’启动,同时设定操作标志S=s2(实际实施中s2可能为“解压完成”)(步骤210)。
并用新的镜像文件A’和B’的拷贝覆盖旧有的镜像文件A和B(步骤212),这里A表示旧有的内核镜像,B表示旧有的Ramdisk镜像。
此步骤完成后,A和B的实际内容将变成A’和B’。
然后,修改系统的引导配置为从A和B启动,同时清除之前设定的操作标志S,并清除系统启动过程中自动运行本升级过程的设定(步骤214)。
最后,重启系统,完成升级操作(步骤216)。
意外掉电的保护措施如步骤218和/或220所示,如果在步骤206处出现掉电,则修改系统的引导配置为从A和B启动;如果在步骤212处出现掉电,则修改系统的引导配置为从A’和B’启动。
然后,返回至步骤202,如果在前面的操作中设定了系统启动时自动运行本升级过程,则在下次操作系统开机启动之后,根据操作标志S继续进行之后的升级步骤,即:如果S=s1,则从步骤206继续操作;如果S=s2,则从步骤212继续操作。
通过本发明的升级装置和方法,根据该标志进行相应处理,完成后续升级操作,可以实现不同升级阶段意外掉电的保护,保证升级的顺利进行。无论是新镜像文件还是旧镜像文件,能够有至少一套镜像文件正确启动。这样,从而避免因意外掉电将可能导致的升级过程无法正常完成,或者导致系统镜像损坏而无法启动。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (9)

1.一种基于Linux嵌入式操作系统的升级方法,其特征在于,所述升级方法包括以下步骤:
在所述操作系统的升级过程中添加操作标志;
根据操作系统升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所处的阶段;以及
根据所述操作标志的设定进行操作系统对应阶段的升级操作。
2.如权利要求1所述的升级方法,其特征在于,初始设定操作标志为第一状态值和在系统启动过程中自动运行升级过程,以根据第一状态值设定操作系统在启动过程中执行准备升级的操作。
3.如权利要求2所述的升级方法,其特征在于,在操作系统对应升级包解压缩完成后设定操作标志为第二状态值,以在操作系统升级过程中利用生成的解压缩的升级包进行升级操作。
4.如权利要求3所述的升级方法,其特征在于,还包括:
在利用生成的解压缩的升级包完成拷贝覆盖的升级操作之后,清除所述操作标志和操作系统启动过程中自动运行升级过程的设定。
5.如权利要求3所述的升级方法,其特征在于,还包括:
在升级包的解压缩失败或者生成的解压缩的升级包非预期文件时,清除所述操作标志和操作系统启动过程中自动运行升级过程的设定。
6.一种基于Linux嵌入式操作系统的升级装置,其特征在于,所述升级装置包括:
标志添加模块,所述标志添加模块用于在所述操作系统的升级过程中添加操作标志;
设定模块,所述设定模块用于根据操作系统升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所处的阶段;以及
升级模块,所述升级模块用于根据所述操作标志的设定进行操作系统对应阶段的升级操作。
7.如权利要求6所述的升级装置,其特征在于,所述设定模块初始设定操作标志为第一状态值和在系统启动过程中自动运行升级过程,以根据第一状态值设定操作系统在启动过程中执行准备升级的操作。
8.如权利要求7所述的升级装置,其特征在于,所述设定模块在操作系统对应升级包解压缩完成后设定操作标志为第二状态值,以在操作系统升级过程中利用生成的解压缩的升级包进行升级操作。
9.如权利要求8所述的升级装置,其特征在于,还包括清除模块,所述清除模块用于在利用生成的解压缩的升级包完成拷贝覆盖的升级操作之后,及/或在升级包的解压缩失败或者生成的解压缩的升级包非预期文件时,清除设定的所述操作标志以及操作系统启动过程中自动运行升级过程的设定。
CN2011103747605A 2011-11-17 2011-11-17 基于Linux嵌入式操作系统的升级装置及方法 Pending CN103123586A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103747605A CN103123586A (zh) 2011-11-17 2011-11-17 基于Linux嵌入式操作系统的升级装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103747605A CN103123586A (zh) 2011-11-17 2011-11-17 基于Linux嵌入式操作系统的升级装置及方法

Publications (1)

Publication Number Publication Date
CN103123586A true CN103123586A (zh) 2013-05-29

Family

ID=48454577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103747605A Pending CN103123586A (zh) 2011-11-17 2011-11-17 基于Linux嵌入式操作系统的升级装置及方法

Country Status (1)

Country Link
CN (1) CN103123586A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185706A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 系统升级方法和系统升级装置
CN109857468A (zh) * 2019-01-04 2019-06-07 烽火通信科技股份有限公司 一种在单Linux系统镜像中支持多DTB的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466047A (zh) * 2002-06-28 2004-01-07 联想(北京)有限公司 一种嵌入式操作系统半开放自动升级的方法
CN101086701A (zh) * 2006-06-07 2007-12-12 普天信息技术研究院 一种对存储卡片上操作系统进行升级的方法
CN101656949A (zh) * 2009-09-21 2010-02-24 中兴通讯股份有限公司 一种固件空中升级的方法及终端
CN102243594A (zh) * 2011-07-26 2011-11-16 重庆大唐科技股份有限公司 一种嵌入式linux系统软件安全远程升级的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466047A (zh) * 2002-06-28 2004-01-07 联想(北京)有限公司 一种嵌入式操作系统半开放自动升级的方法
CN101086701A (zh) * 2006-06-07 2007-12-12 普天信息技术研究院 一种对存储卡片上操作系统进行升级的方法
CN101656949A (zh) * 2009-09-21 2010-02-24 中兴通讯股份有限公司 一种固件空中升级的方法及终端
CN102243594A (zh) * 2011-07-26 2011-11-16 重庆大唐科技股份有限公司 一种嵌入式linux系统软件安全远程升级的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185706A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 系统升级方法和系统升级装置
CN109857468A (zh) * 2019-01-04 2019-06-07 烽火通信科技股份有限公司 一种在单Linux系统镜像中支持多DTB的方法及系统

Similar Documents

Publication Publication Date Title
CN109634645B (zh) 固件升级方法及终端
CN103176824B (zh) 一种系统升级的方法及装置
CN103136012B (zh) 计算机系统及其基本输入输出系统的更新方法
CN105094913B (zh) 系统、基带固件和系统应用升级方法及装置
WO2015176454A1 (zh) 一种软件升级方法及装置
CN102334100A (zh) 程序更新设备、程序更新方法以及信息处理设备
CN101826026A (zh) 嵌入式设备、嵌入式设备中固件在线升级的系统及方法
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
CN102799452B (zh) 系统软件升级方法和装置
CN101441576A (zh) 一种嵌入式设备软件重启的方法及设备
CN103577201A (zh) 嵌入式双系统的更新方法及系统
CN111045712A (zh) 一种具有备份功能的单系统升级方法及系统
CN104063256A (zh) 基于最小操作系统的分区及固件升级方法
CN103984585A (zh) 一种Linux内核可热插拨内核模块运行时升级方法
CN103123586A (zh) 基于Linux嵌入式操作系统的升级装置及方法
CN112860291B (zh) 固件升级方法及装置
CN109710297A (zh) 一种设备整体或分模块进行升级和回退方法
CN102331942A (zh) 一种BIOS与Linux内核自动升级的方法
CN102063319A (zh) 软件更新方法
CN104090802A (zh) 一种网络摄像机断电保护方法
CN108897565B (zh) 一种电子设备中的软件升级方法、装置及电子设备
CN106528114A (zh) 安卓固件应用、安卓固件和固件升级方法
KR101529713B1 (ko) 비정상 전원절환에 대한 안드로이드 단말의 안정성 강화 방법 및 이를 위한 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2020107469A1 (zh) 程序处理方法、设备及存储介质
KR100832269B1 (ko) 무선 통신 단말의 프로그램 갱신 방법 및 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130529