一种嵌入式操作系统半开放自动升级的方法技术方案

技术编号:2874447 阅读:196 留言:0更新日期:2012-04-11 18:40
一种嵌入式操作系统半开放自动升级的方法,它至少包括如下步骤:在嵌入式系统中保留一升级标识信息存储区域,为在硬盘上开设的一区域;在该区域中设置升级标识;系统每次启动时自动读取升级标识;如标识为升级系统,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,系统维持原状态。升级内容为设置在集成在本机上一存储区内的升级驱动内容或为另一个外挂的操作系统引导上的升级驱动内容。本发明专利技术基于一种半开放操作系统架构,升级程序能够自动运行,完成新硬件驱动的安装或软件的升级。采用本发明专利技术,可以利用特定工具对已有软件系统进行更新,以几乎零成本实现了系统升级,而且极大地延长了系统的生命周期。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种嵌入式操作系统的升级方法,尤其是,属于计算机
例如,以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 其中UDBLOCK扇区为第94000000(UDLBA)扇区。表2 其中从第1个字节开始的扇区为第94000001(UDLBA+1)扇区。具体实施例二系统中并没有集成过TNT2 Model 64的驱动,但是维护人员手上有新显卡的rpm包。将rpm包放到光盘上,用光盘启动PC,自动进入HPASetup.exe程序,进入升级包安装选项,输入rpm包的绝对路径,确定,退出HPASetup.exe并且重起计算机。HPASetup.exe将向从94000000开始的硬盘扇区写入以下数据,如表3表3 其中UDBLOCK扇区为第94000000(UDLBA)扇区。表4 其中从第1个字节开始的扇区为第94000001(UDLBA+1)扇区。嵌入式系统完成的工作检测第94000000扇区开始的第9个字节,如果N=0,正常启动;如果N>0,按照N的大小读取第94000001扇区开始的区域,获得rpm包的类型为显卡,地址为/mnt/cdrom/tnt2m64.rpm,其他相关字节用于校验合法性。然后记录开始升级标记(在其他硬盘保留区域),运行rpm包进行升级,如果成功完成,修改去掉升级标记并把94000000开始的第9字节置0。以上实施例仅用以说明本专利技术而非限制,尽管参照以上较佳实施例对本专利技术进行了详细说明,本领域的普通技术人员应当理解,可以对本专利技术进行修改、变形或者等同替换,而不脱离本专利技术的精神和范围,其均应涵盖在本专利技术的权利要求范围当中。权利要求1.,其特征在于它至少包括如下步骤在嵌入式系统中保留一升级标识信息存储区域,在该区域中设置升级标识;系统每次启动时自动读取升级标识;如标识为升级系统,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,系统维持原状态。2.根据权利要求1所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的指定位置为将升级内容集成在本机上一存储区内的位置或为另一个外挂的集成升级驱动内容的位置。3.根据权利要求1所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的存储区域为在硬盘上开设的一区域。4.根据权利要求3所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的区域为隐藏分区。5.根据权利要求1或2或3或4所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的设置升级标识步骤还进一步包括按照预定协议将升级标识信息存储区域写入数据后,进行合法性校验,并将校验码存储;校验码为合法的,则表示系统升级完成;校验码为非法的,则表示系统升级没有完成;系统每次启动时自动检测升级区域的校验码。6.根据权利要求1或2或3或4所述的嵌入式操作系统半开放自动升级的方法,其特征在于所述的升级标识信息存储区域记录一个或一个以上需要更新的升级驱动内容类型。7.根据权利要求1或2或3或4所述的嵌入式操作系统半开放本文档来自技高网...

【技术保护点】
一种嵌入式操作系统半开放自动升级的方法,其特征在于:它至少包括如下步骤:在嵌入式系统中保留一升级标识信息存储区域,在该区域中设置升级标识;系统每次启动时自动读取升级标识;如标识为升级系统,在指定位置获取升级内容,自动完成升级过程;如果标识为不升级,系统维持原状态。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵明陈卫华
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1