CN103123586A - 基于Linux嵌入式操作***的升级装置及方法 - Google Patents
基于Linux嵌入式操作***的升级装置及方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Linux嵌入式操作***的升级方法及装置,首先在操作***的升级过程中添加操作标志;然后根据操作***升级操作所处的阶段对所述操作标志进行设定,以记录升级操作所Fs处的阶段;以及根据所述操作标志的设定进行操作***对应阶段的升级操作。本发明可以实现不同升级阶段意外掉电的保护,保证升级的顺利进行。
Description
技术领域
本发明涉及一种升级装置及方法,尤其涉及一种基于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所述的升级装置,其特征在于,还包括清除模块,所述清除模块用于在利用生成的解压缩的升级包完成拷贝覆盖的升级操作之后,及/或在升级包的解压缩失败或者生成的解压缩的升级包非预期文件时,清除设定的所述操作标志以及操作***启动过程中自动运行升级过程的设定。
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 (3)
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的方法及*** |
WO2024119787A1 (zh) * | 2022-12-06 | 2024-06-13 | 苏州元脑智能科技有限公司 | Amd服务器***安装断电处理方法、装置、设备及介质 |
Citations (4)
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***软件安全远程升级的方法 |
-
2011
- 2011-11-17 CN CN2011103747605A patent/CN103123586A/zh active Pending
Patent Citations (4)
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 (3)
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的方法及*** |
WO2024119787A1 (zh) * | 2022-12-06 | 2024-06-13 | 苏州元脑智能科技有限公司 | Amd服务器***安装断电处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634645B (zh) | 固件升级方法及终端 | |
CN103176824B (zh) | 一种***升级的方法及装置 | |
CN103136012B (zh) | 计算机***及其基本输入输出***的更新方法 | |
WO2015176454A1 (zh) | 一种软件升级方法及装置 | |
CN102334100A (zh) | 程序更新设备、程序更新方法以及信息处理设备 | |
CN105094913A (zh) | ***、基带固件和***应用升级方法及装置 | |
CN103513993A (zh) | 固件更新***及方法 | |
CN105573864A (zh) | 终端***恢复方法及其*** | |
CN102521289B (zh) | 一种文件同步方法、装置及*** | |
CN101826026A (zh) | 嵌入式设备、嵌入式设备中固件在线升级的***及方法 | |
CN101441576A (zh) | 一种嵌入式设备软件重启的方法及设备 | |
CN102799452B (zh) | ***软件升级方法和装置 | |
CN103577201A (zh) | 嵌入式双***的更新方法及*** | |
CN103123586A (zh) | 基于Linux嵌入式操作***的升级装置及方法 | |
CN104063256A (zh) | 基于最小操作***的分区及固件升级方法 | |
CN103984585A (zh) | 一种Linux内核可热插拨内核模块运行时升级方法 | |
CN106775874B (zh) | 终端设备的***升级方法 | |
CN114461257B (zh) | 操作***数据配置方法、设备、存储介质及程序产品 | |
CN103995717A (zh) | 一种嵌入式设备软件升级的方法 | |
CN109710297A (zh) | 一种设备整体或分模块进行升级和回退方法 | |
CN102446101A (zh) | 固件强制升级的***及其固件的强制升级方法 | |
CN102063319A (zh) | 软件更新方法 | |
CN104090802A (zh) | 一种网络摄像机断电保护方法 | |
JP6073710B2 (ja) | 情報処理装置、起動障害からの自動復旧方法、及び起動障害からの自動復旧プログラム | |
CN108897565B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130529 |