CN1266595C - 一种嵌入式操作***半开放自动升级的方法 - Google Patents
一种嵌入式操作***半开放自动升级的方法 Download PDFInfo
- Publication number
- CN1266595C CN1266595C CN 02123452 CN02123452A CN1266595C CN 1266595 C CN1266595 C CN 1266595C CN 02123452 CN02123452 CN 02123452 CN 02123452 A CN02123452 A CN 02123452A CN 1266595 C CN1266595 C CN 1266595C
- Authority
- CN
- China
- Prior art keywords
- upgrading
- upgrade
- embedded
- semi
- update
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种嵌入式操作***半开放自动升级的方法,它包括如下步骤:在嵌入式***中保留一升级标识信息存储区域,在该区域中设置升级标识,在待更新的***启动前,按照预定协议向升级标识信息存储区域写入数据;***每次启动时自动读取升级标识;如标识为升级***,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,***维持原状态。本发明基于一种半开放操作***架构,升级程序能够自动运行,完成新硬件驱动的安装或软件的升级。采用本发明,可以利用特定工具对已有软件***进行更新,以几乎零成本实现了***升级,而且极大地延长了***的生命周期。
Description
技术领域
本发明涉及一种嵌入式操作***的升级方法,尤其是一种嵌入式操作***半开放自动升级的方法,属于计算机技术领域。
背景技术
随着各种消费电子产品的不断开发,大量的消费电子采用嵌入式***,因此嵌入式***得到了广泛的应用。嵌入式***是指那些为特定功能设计的具有小的尺寸、低的功耗、专用、特定设计的操作***。为了保证***的稳定性、可靠性,一般的嵌入式***都是封闭的***,即用户不能自己安装软件和驱动,这虽然防止了***软件被破坏,但同时也增加了***升级的困难度。一般嵌入式***要软件升级或更换硬件,都必须重新建立新的***软件,重新对***进行软件写入。
例如,以X86嵌入式***实现PC家电化的应用中,其实现的硬件平台完全是普通PC的硬件,这样面临的一个问题是,PC硬件的更新非常频繁,例如:声卡、显卡。如果每更新一个硬件,嵌入式***就重新生成一次,会浪费大量的时间和成本,所以采用只更新驱动的方式。
发明内容
本发明的目的在于提供一种嵌入式操作***半开放自动升级的方法,它基于一种半开放操作***架构,能够自动运行升级程序,完成新硬件驱动的安装或软件的升级。
本发明的目的是这样实现的:一种嵌入式操作***半开放自动升级的方法,它包括如下步骤:在嵌入式***中保留一升级标识信息存储区域,在该区域中设置升级标识;在待更新的***启动前,按照预定协议向升级标识信息存储区域写入数据;***每次启动时自动读取升级标识;如标识为升级***,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,***维持原状态。
指定位置为将升级内容集成在本机上一存储区内的位置或为另一个外挂的集成升级驱动内容的位置。
所述的区域为隐藏分区;所述的设置升级标识步骤还进一步包括按照预定协议将升级标识信息存储区域写入数据后,进行合法性校验,并将校验码存储;校验码为合法的,则表示***升级完成;校验码为非法的,则表示***升级没有完成;***每次启动时自动检测升级区域的校验码。
另外,升级标识信息存储区域记录一个或一个以上需要更新的升级驱动内容类型。
所述的升级标识信息存储区域还记录本次升级写入有效数据的扇区数量,用于升级程序正确读取升级数据。
所述的向硬盘写入升级信息步骤包括进行循环冗余校验(CRC),并记录其校验码,对升级数据的正确性和完整性进行确认。
根据上述技术方案分析可知,本发明的方法主要是为那种需要经常更新硬件的嵌入式***设计的,在通常情况下,嵌入式***都是针对一套固定硬件平台的软件***,一旦对硬件更新,只有重新建立新的***软件,对于用户来说,***是不可升级的。采用这种方案,可以利用特定工具对已有软件***进行更新,以几乎零成本实现了***升级,而且极大地延长了***的生命周期。
附图说明
图1为本发明写入部分的程序流程图.
图2为本发明自动升级方法流程图。
图3为本发明隐藏分区的结构示意图。
图4为本发明标识区的具体结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步地详细说明。
本发明为一种嵌入式操作***半开放自动升级的方法,其中“半开放”的含义是指嵌入式操作***以简单协议来获取信息,决定是否需要进行软件升级或更换硬件,也就是说,***并不是完全封闭的,由此带来的安全性问题可以采用一些有效的安全机制进行弥补。这种开放实际上是一种内部的开放。基本内容为:在嵌入式***中保留了一小块区域用于记录升级信息。当需要进行软件升级或者更换硬件时,启动工具软件,按预定协议向升级信息记录区写入必要数据,这中间需要合法性校验。然后退出并进入嵌入式***。嵌入式***每次检测升级区域的校验码,如果需要升级,就由嵌入式***自动完成所有升级过程,这里采用的安全机制是,如果升级失败了,将回到未升级前的状态。
为单功能***保留了一个“后门”,即***每次启动时自动到硬盘的指定位置读取升级标识,这个过程并不会给***带来什么负担。开启后门的唯一钥匙是我们另外开发的一个引导程序:HPASetup.exe。在硬盘上开辟一隐藏分区,HPASetup.exe可以打开隐藏分区。隐藏分区的结构如图3,其中的标识区就是所设定的升级标识。标识区的具体结构见图4,其数据结构是这样的:假设升级标识区的LBA寻址方式地址为UDLBA,UDLBA根据不同的硬盘获得的值不一样。从UDLBA开始,第一个扇区记录扇区的配置信息。该扇区前8个字节为该扇区的标识,第9个字节记录需要更新的硬件驱动的总个数,如果是一个大于0的数N,表示需要更新N个硬件的驱动,例如0:升级包、1:显卡、2:声卡、3:鼠标、4:显示器。如果是0,表示不进行驱动更新(通常情况下该值为0)。第10个字节记录本次升级共向多少扇区写入了有效数据。每次向硬盘写入升级信息均需要进行CRC校验,扇区的最后8个字节用来记录校验码。该扇区的其他字节为保留区域。
升级标识区就是嵌入式***从外界获取数据的媒介,它存在于隐藏分区中,不会被一般的***和常用磁盘工具识别。一个实际更新驱动的例子:***中原来显卡的驱动是针对Sis6323的,现在显卡换成了TNT2 Model 64。
具体实施例一:原来的***中已经集成了TNT2 Model 64的驱动。用光盘启动PC,自动进入HPASetup.exe程序,进入更换硬件菜单选项,选择更换显卡驱动,选择TNT2 Model 64,确定,重启机器。HPASetup.exe将向从94000000开始的硬盘扇区写入了如表1至表2的结构:
表1:
字节1-8 | 第9字节 | 第10字节 | 字节505-512 | |
UDBLOCK | 1 | 2 | 保留 | 校验码 |
其中:UDBLOCK扇区为第94000000(UDLBA)扇区。
表2:
第1个字节 | 第2个字节 | 字节3-256 | 第257字节 | 第258字节 | 字节259-512 |
1 | 21 | /driver/1/tnt2m64.rpm | 0 | 0 | 0 |
其中:从第1个字节开始的扇区为第94000001(UDLBA+1)扇区。
具体实施例二:***中并没有集成过TNT2 Model 64的驱动,但是维护人员手上有新显卡的rpm包。将rpm包放到光盘上,用光盘启动PC,自动进入HPASetup.exe程序,进入升级包安装选项,输入rpm包的绝对路径,确定,退出HPASetup.exe并且重起计算机。HPASetup.exe将向从94000000开始的硬盘扇区写入以下数据,如表3:
表3:
字节1-8 | 第9字节 | 第10字节 | 字节505-512 | |
UDBLOCK | 1 | 2 | 保留 | 校验码 |
其中:UDBLOCK扇区为第94000000(UDLBA)扇区。
表4:
第1个字节 | 第2个字节 | 字节3-256 | 第257字节 | 第258字节 | 字节259-512 |
1 | 24 | /mnt/cdrom/tnt2m64.rpm | 0 | 0 | 0 |
其中:从第1个字节开始的扇区为第94000001(UDLBA+1)扇区。
嵌入式***完成的工作:检测第94000000扇区开始的第9个字节,如果N=0,正常启动;如果N>0,按照N的大小读取第94000001扇区开始的区域,获得rpm包的类型为显卡,地址为/mnt/cdrom/tnt2m64.rpm,其他相关字节用于校验合法性。然后记录开始升级标记(在其他硬盘保留区域),运行rpm包进行升级,如果成功完成,修改去掉升级标记并把从第94000000扇区开始的第9字节置0。
以上实施例仅用以说明本发明而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明进行修改、变形或者等同替换,而不脱离本发明的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1、一种嵌入式操作***半开放自动升级的方法,其特征在于:它包括如下步骤:在嵌入式***中保留一升级标识信息存储区域,在该区域中设置升级标识,在待更新的***启动前,按照预定协议向升级标识信息存储区域写入数据;***每次启动时自动读取升级标识;如标识为升级***,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,***维持原状态。
2、根据权利要求1所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的指定位置为将升级内容集成在本机上一存储区内的位置或为另一个外挂的集成升级驱动内容的位置。
3、根据权利要求1所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的存储区域为在硬盘上开设的一区域。
4、根据权利要求3所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的区域为隐藏分区。
5、根据权利要求4所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的设置升级标识步骤还进一步包括按照预定协议将升级标识信息存储区域写入数据后,进行合法性校验,并将校验码存储;校验码为合法的,则表示***升级完成;校验码为非法的,则表示***升级没有完成;***每次启动时自动检测升级区域的校验码。
6、根据权利要求3所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的升级标识信息存储区域记录一个或一个以上需要更新的升级驱动内容类型。
7、根据权利要求3所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的升级标识信息存储区域还记录本次升级写入有效数据的扇区数量,用于升级程序正确读取升级数据。
8、根据权利要求5或6或7所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的向硬盘写入升级信息步骤包括进行循环冗余校验,并记录其校验码,用于对升级数据的正确性和完整性进行确认。
9、根据权利要求8所述的嵌入式操作***半开放自动升级的方法,其特征在于:所述的向硬盘写入升级信息包括升级标识或写扇区数量或装载升级内容或记录校验码或其组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02123452 CN1266595C (zh) | 2002-06-28 | 2002-06-28 | 一种嵌入式操作***半开放自动升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02123452 CN1266595C (zh) | 2002-06-28 | 2002-06-28 | 一种嵌入式操作***半开放自动升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1466047A CN1466047A (zh) | 2004-01-07 |
CN1266595C true CN1266595C (zh) | 2006-07-26 |
Family
ID=34142330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02123452 Expired - Lifetime CN1266595C (zh) | 2002-06-28 | 2002-06-28 | 一种嵌入式操作***半开放自动升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1266595C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100351786C (zh) * | 2004-03-17 | 2007-11-28 | 联想(北京)有限公司 | 计算机帮助***和实现方法 |
DE102004055993A1 (de) * | 2004-11-19 | 2006-05-24 | Vega Grieshaber Kg | Systemanordnung und Verfahren in einem prozessverarbeitenden System zum Erkennen von nicht übereinstimmender Funktionalität zwischen einer Gerätesoftware und einem zugeordneten Gerätetreiber |
TWI275019B (en) | 2004-12-09 | 2007-03-01 | Lite On Technology Corp | Embedded system and related method capable of automatically updating system software |
CN100375959C (zh) * | 2004-12-28 | 2008-03-19 | 光宝科技股份有限公司 | 可自动更新嵌入式***的***软件的装置及方法 |
US20060282821A1 (en) * | 2005-06-10 | 2006-12-14 | Renno Erik K | Efficient subprogram return in microprocessors |
CN100375026C (zh) * | 2005-09-13 | 2008-03-12 | 联想(北京)有限公司 | 快速存储设备软件的安装/更新方法 |
JP2007213494A (ja) * | 2006-02-13 | 2007-08-23 | Ntt Docomo Inc | 更新起動装置及び更新起動制御方法 |
CN100465893C (zh) * | 2006-08-29 | 2009-03-04 | 华南理工大学 | 一种嵌入式操作***驱动程序动态升级方法 |
CN100452724C (zh) * | 2006-10-19 | 2009-01-14 | 杭州华三通信技术有限公司 | 自动选择升级时间的方法及装置 |
CN103123586A (zh) * | 2011-11-17 | 2013-05-29 | 英业达股份有限公司 | 基于Linux嵌入式操作***的升级装置及方法 |
CN103246536B (zh) * | 2013-04-28 | 2016-01-06 | 常州南京大学高新技术研究院 | 物联定位***的固件无线升级方法 |
US10026064B2 (en) * | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
CN106126297A (zh) * | 2016-06-30 | 2016-11-16 | 西安诺瓦电子科技有限公司 | 基于Android操作***的***升级方法 |
CN110427200B (zh) * | 2019-07-17 | 2023-06-30 | 陕西千山航空电子有限责任公司 | 一种软件在线更新方法 |
-
2002
- 2002-06-28 CN CN 02123452 patent/CN1266595C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1466047A (zh) | 2004-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1266595C (zh) | 一种嵌入式操作***半开放自动升级的方法 | |
US7299463B2 (en) | Method for atomically updating a plurality of files | |
US7366887B2 (en) | System and method for loading programs from HDD independent of operating system | |
US6480932B1 (en) | Computer system having a host computer coupled to a disk drive with a drive-selected-application partition for storing data for execution by the host computer in response to drive-determined conditions | |
EP1739535B1 (en) | File system storing transaction records in flash-like media | |
EP1739575B1 (en) | File system having inverted hierarchical structure | |
CA2549694C (en) | File system having deferred verification of data integrity | |
US8667029B2 (en) | Optimized startup verification of file system integrity | |
US20030069999A1 (en) | Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems | |
CN1506813A (zh) | 从海量存储设备中可靠和安全地更新和恢复固件 | |
US20030221093A1 (en) | System for displaying information on system start-up | |
CN1577252A (zh) | 一种自动安装设备驱动程序的方法及设备 | |
CN1818824A (zh) | 一种可靠性高的个人计算机及操作*** | |
CN1122215C (zh) | 驱动程序的安装方法 | |
CN100336036C (zh) | 多种操作***引导加载方法 | |
CN1610894A (zh) | 用于修改版本标识寄存器的内容的方法和装置 | |
CN1684039A (zh) | 一种通过磁盘主引导记录实现网络功能的方法 | |
US20060085565A1 (en) | Method of configuring device property of storage device for a windows operating system | |
CN1719412A (zh) | 更新部分基本输入输出***的方法 | |
CN1235147C (zh) | 应用装置的装置信息管理***及方法 | |
CN1177810A (zh) | 分区的硬盘驱动器和硬盘驱动器的分区方法 | |
KR101032143B1 (ko) | 노래반주기용 하드 디스크 드라이브의 오류정정코드의 에러 복구방법 | |
CN116909635A (zh) | 基于fbinst的mbr引导+GUID分区表的混合分区表实现BIOS+UEFI启动方法 | |
CN1326134A (zh) | 一种自定义扇区的方法 | |
JP2001100945A (ja) | Raid制御方法およびコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20060726 |
|
CX01 | Expiry of patent term |