(10)申请公布号 CN 102012825 A
(43)申请公布日 2011.04.13C N  102012825 A
*CN102012825A*
(21)申请号 201010546902.7
(22)申请日 2010.11.16
G06F 9/445(2006.01)
(71)申请人卓越信通电子(北京)有限公司
地址100094 北京市海淀区后厂村路55号
卓越科技楼
(72)发明人杨国文  王毅  王飞舟
(54)发明名称
一种在线替换嵌入式linux 系统内核的方法
(57)摘要
本发明是关于嵌入式linux 软件中在运行时
替换linux 系统内核的方法,这种方法比较简单,
可以畸形linux 嵌入式系统中内核部分的自行升
级。解决系统内核升级复杂性,及需要专业人员的
售后成本,减轻了用户购置额外设备的负担,提高
了用户的产品体验。(51)Int.Cl.
(19)中华人民共和国国家知识产权局(12)发明专利申请
权利要求书 1 页  说明书 2 页  附图 2 页
1.本发明是关于嵌入式linux软件中在运行时替换linux系统内核的方法。其特征在于,嵌入式设备在运行过程中可以根据管理员指令或者自动升级内核,整个替换过程涉及内核、文件系统、启动三部分。红帽linux系统下载iso
2.根据权利要求1所述的方法,其特征在于,嵌入式系统的升级,用户无需至设备现场。
3.根据权利要求1所述的方法,其特征在于,替换linux内核,在嵌入式硬件设计中除了主系统的存储设备芯片,无需其它的存储备份芯片。
一种在线替换嵌入式linux系统内核的方法
技术领域
[0001] 本发明是关于嵌入式linux软件中在运行时替换linux系统内核的方法。涉及的技术领域包括各种运行嵌入式linux操作系统的智能电子设备。
背景技术
[0002] 嵌入式软件运行在各种智能的电子设备和产品中,而嵌入式linux是嵌入式软件中的一个很大的分支。由于软件的可根据后续维护进行功能和性能性的提升,以及用户的需求的高度变化性,嵌入式linux软件的升级渐渐成了一个必需的功能。目前的嵌入式linux智能系统,大多数储存在Flash等储存单元中,嵌入式linux内核会将这些Flash存储单元按照其物理地址或偏移块地址划分成一个个分片,内核和文件系统及其它二进制文件分别存储在这些分片中。在嵌入式linux软件的升级中,一般是通过主机系统(比如windows系列的工作站)和嵌入式智能电子设备进行连接,采用主机的升级程序和电子设备配合进行升级,在嵌入式系统和主机系统之间的连接通常采用智能电子设备厂家定制的特别的数据线。在用flash芯片作为存储单元的嵌入式linux系统中,由于内核的高复杂性,通常做法是将内核最小化设计后固化在存储器中,以提供软件系统最基本的服务,对普通的用户不可见;用户一般进行的升级只是升级一些除了内核外的其它数据。如果需要对内核进行彻底升级,通常需要将嵌入式设备返回原厂或通过培训过的技术人员提供专门服务进行升级,给企业带来售后维护的较大的负担,同时给用户体验带来很差的滞后性。
发明内容
[0003] 为了解决此问题,本发明提供一种方法,可以在嵌入式系统运行时通过比较简单的方式,来解决linux嵌入式系统中内核部分的自行升级问题。解决升级复杂性,节约企业的售后成本,减轻了用户购置额外设备的负担,同时提高了用户的产品体验。[0004] 本发明所采用的具体的技术方案如下:
[0005] 首先,需要提供一种支持微处理器启动时初始化硬件资源的程序,此程序同时提供如下功能和限制条件:此程序在linux内核启动前运行;支持linux内核文件系统的读写特性;此程序在flash上对上述文件系统进行分区的读写和创建;支持ram空间向flash地址的直接烧写功能。
[0006] 其次,linux内核能共同支持上述启动程序所创建的分区。
[0007] 最后,嵌入式系统中需要有足够的flash空间运行在上述文件系统类型下,提供内核文件读写和掉电、重新启动保存。
[0008] 本发明的执行流程如图2所示。
[0009] 本发明的好处是,在线运行的嵌入式系统在不需要额外的物理flash芯片,能进行平滑的进行内核更新。减少维护成本和设备成本,给用户带来更好的用户体验。
附图说明
[0010] 下面结合附图和实施例对本发明进一步说明。
[0011] 图1是flash存储器的分区图。
[0012] 图2是内核在线升级流程图
具体实施方式
[0013] 为使本发明要解决的技术问题、技术方案和优点更清楚,下面结合附图和具体实施案例进行描述。
[0014] 首先,在启动代码的内存设备技术中加入共同的文件系统格式的支持。这通常由嵌入式智能电子设备在出厂时根据当前设备的要求,由研发人员默认指定。
[0015] 第二,通过启动代码的命令,管理flash磁盘分区,划分出和内核可共同访问的足够用来升级的可读写分区和系统启动所需的其它的分区。如图1所示。在分区的最后,划分一个活动分区,以被升级内核时使用。这些划分的分区在试验环境中调试好后,可以直接固定在启动代码中。划分好的分区结构如图1所示。
[0016] 第三,在嵌入式设备运行时,通过网络或者电子设备厂家提供的专有数据线,将内核文件下载在启动代码和linux系统共同识别的可读写的分区的根目录下。并向flash 中写入一个启动代码可识别的标识位。如图2所示。
[0017] 第四,重新启动系统后,启动代码判断该标识位,启动内核升级,具体如下:[0018] 更改活动分区到linux系统运行时,写入新的内核的分区。
[0019] 到在此分区中存放的新内核,并将它烧写到以前的内核启动的地址中。[0020] 烧写完成后,启动新的内核。
[0021] 第五,新的内核在装载文件系统启动完成后,判断当前的内核版本和之间所写的标志位,如果符合,删除内核临时文件。至此,在线升级内核功能完成。
[0022] 上述流程如图2所示。
图1