基于嵌入式Linux的引导、升级、参数保存.doc_第1页
基于嵌入式Linux的引导、升级、参数保存.doc_第2页
基于嵌入式Linux的引导、升级、参数保存.doc_第3页
基于嵌入式Linux的引导、升级、参数保存.doc_第4页
基于嵌入式Linux的引导、升级、参数保存.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于嵌入式Linux的系统引导、升级、参数保存/恢复、参数导出/导入的设计修订记录日期修订者说 明2005-3-1叶 柯初稿完成2005-3-9叶 柯修改了分区类型,将参数区编号和内核区编号进行了交换;简化了生成配置文件中对分区的配置;改变了参数保存中文件头的格式;2005-4-16叶柯改进了区域尾结构,以适应产品发布需求1 FLASH存贮规划A、 FLASH包含的区域将FLASH划分为以下区域名称用途Loader存放Loader,用于加载Linux内核,及升级BaseInfoFLASH分区信息(Partition),以及硬件ID、MAC地址等Kernel存放Linux压缩内核,位置由Partition指定FileSystem存放文件系统映象(可能存在多个),位置由Partition指定Parameter存放应用的参数,位置由Partition指定B、 BaseInfo区格式存放在Loader所在扇区(同一个64KB)的最后。为了安全的支持分区表更新,在更新分区表时,不擦除BaseInfo结构,而在它的前面再构造一个BaseInfo,并且复制原始BaseInfo中的HW_ID和MAC地址。BaseInfo的检测程序在检测到第一个BaseInfo结构后还必须再向前检测1KB,直至没有发现新的BaseInfo时。由于每个分区表结构和BaseInfo头的长度者是64Bytes,因此在搜索BaseInfo时应以64Bytes为步长进行,以提高效率。名称偏移长度用途UUID016标识基本信息的UUIDBC74964F-C055-4085-979E-23F7DCEDAC6FCHECKSUM1616BaseInfo的MD5校验和,不包含UUID和该字段HW_ID3216硬件ID(升级文件中的ID必须与该值相同)MAC486生产时写入的MAC地址(网络序),在升级文件中时无意义PART_NUM542分区数(应对分区数进行合法性判断)PAD568保留(全0)分区表Partition名称偏移长度用途Name032分区字符名称Start324在FLASH芯片(或文件)中的偏移地址Size364分区大小(字节)Type4040:Loader1:Parameter2:Compressed Kernel3:FileSystem 04:FileSystem 1FileStart444内容的开始位置,只用于升级文件中FileSize484该区文件大小,只在升级文件中该字段有意义,表示升级文件中该区域文件的实际大小Reserved5212保留(全0)C、 Loader、Kernel、FileSystem、Parameter分区的尾部格式由于尾部结构对齐于16Bytes,对尾部的搜索应从分区尾部向前,以16Bytes为步长进行,以提高效率。名称偏移长度用途content0File Length存放分区的内容(即Loader、Kernel、FileSystem、Parameter的内容)UUID(FileLength+0xf)&0xfffffff016 bytes描述信息的UUID,16字节对齐4E49DF63-CB52-4700- B26B-02D1174EFF25Ver_str+1632 bytes版本说明(文本信息)Version+161bytes该尾部结构的格式版本,当前格式为0Reserved+173bytes保留Ver_bin+204 bytes版本号(二进制码)bit31-24:主版本号bit23-16:次版本号bit15-0: Build次数Length+244 bytes内容的真实长度(字节)Type+284 bytes0:Loader1:Parameter2:Compressed Kernel3:FileSystem 04:FileSystem 1Depend+324 bytes因Kernel和FileSystem可能存在相互依赖关系,当Type为Kernel时,该字段表示需要FileSystem的最低版本号,当Type为FileSystem时,该字段表示需要Kernel的最低版本号HW_ID+3616 bytes要求的硬件ID号CheckSum5216 bytesMD5校验和(包含该字段前和该字段后的所有内容的检验,但不包含本字段)MEMO_LEN+682bytes变长字段MEMO的长度MEMO+70*memo_len变长内容,长度由MEMO_LEN确定D、 Parameter区文件存贮规划参数区中需要存放多个配置文件,在内核引导后恢复到正确的位置每个文件都具有一个头来记录其文件名和恢复的路径等信息,见下表名称偏移长度(bytes)用途Magic04标识一个文件头的开始(0x D7B5A4F6)Length44包括Magic字段在内的内容全长PathNameLength84文件路径名称长度PathName12*PathNameLength文件路径名称Content12+ *PathNameLength文件内容CheckSum16该字段前内容MD5校验和E、 打包升级文件格式名称用途BaseInfo结构说明该文件包含的区域,必须存在于升级文件中BaseInfo可选内容,由BaseInfo的信息表示,用于更新分区表Loader可选内容,由BaseInfo的信息表示Kernel可选内容,由BaseInfo的信息表示FileSystem 可选内容,由BaseInfo的信息表示Parameter可选内容,由BaseInfo的信息表示2 loader逻辑A、 初始化硬件(由boot完成,并复制Loader到RAM);B、 搜索BaseInfo(注意可能存在多个BaseInfo区域,应选择最新的);C、 检查Kernel区和FileSystem区校验和,以及它们的依赖关系,如果错误则进入XMODEM升级;D、 跳转到Compressed Kernel区,引导Linux内核。3 升级逻辑A、 接收全部内容B、 检查各区域校验和;C、 写各区域,如果二进制版本号一致,且FLASH中的文件正确,则跳过。在写Loader区域时必须保留原BaseInfo区域;D、 完成后重启4 参数保存/恢复/导出/导入,以及BaseInfo的导出提供应用程序完成将RamDisk中的文件写入到FLASH中,以及从FLASH中恢复文件到RamDisk,格式如下: ntpara | | | | export | import | baseinfo | upgrade 参数保存步骤:A、ntpara new 擦除FLASHB、ntpara 例如:ntpara /var/pppoe,将自动保存内容到FLASH,如有多个参数需要保存则多次执行C、ntpara close 完成参数保存,写入检验和参数恢复:ntpara restore将自动将保存在FLASH中的文件恢复到保存时的路径上如果返回码为-1,则应恢复出厂设置。参数导出:ntpara export 例如:ntpara export parameter.bin参数导入:ntpara import 例如:ntpara import parameter.bin参数导入时,ntpara将判断该参数是否是该产品能使用的版本(出错则返回-2),以及检验和正确(出错则返回-3)导出BaseInfontpara baseinfo 用于恢复出厂设置或其它具有特殊需求的项目,可以通过BaseInfo文件了解产品信息,以采取相应策略。在恢复出厂设置时,需要使用该功能得到出厂MAC地址导出区域尾ntpara areatailer 用于导出指定区域的尾部结构,应用可用该方法得到版本信息5 Firmware升级Ntpara upgrade 对升级文件进行正确性检查,包括:A、 HW_ID是否与BaseInfo一致;B、 文件中的各区域校验和正确;C、 各区域具有正确的长度;D、 如果同时存在Kernel和FileSystem,它们的依赖关系正确;对比BaseInfo中的分区表各区大小和位置,如不与FLASH中的分区表一致,则构建新的分区表。对原FLASH中内容相同,且FLASH中内容正确的部份不升级更新完FLASH后立即复位6 生成配置文件;分号开始至行尾为注释TARGET;ENDIAN is BIG or SMALLENDIAN=big;可选,生成烧写FLASH的镜像文件,如果不存在则不生成IMAGEFILE=2105cn.bin;可选,生成升级的镜像文件,如果不存在则不生成,但该项目与前一项目必选其一UPGRADEFILE=2105cn.fmwFLASHSIZE=2MBASEINFO;MAC地址MAC=01:02:03:04:05HWID=2105PARTITION_0;NAME 可选项,如果不存在使用该区的名称代替PARTNAME=Loader;可选,如果不存在则为空VERSION=1.00;可选,如果不存在则为0VERBIN=0x1000000;可选,如果不存在则为0DEPEND=0;必选,可以为LOADER|KERNEL|FILESYSTEM|PARAMETERTYPE=LOADER;必选,该区在FLASH中的位置,可以为数字(当单位为字节时)或 xxxK 或 xxxM ,也可以为前一个分区的名称START=0;必选,分区的大小可,以为数字(当单位为字节时)或 xxxK 或 xxxMSIZE=64K;必选,该分区存放的文件FILE=loader.bin;用于生成变长字段STR1=Loader.imgSTR2=Copyright 2005PARTITION_1PARTNAME =Linux Kernel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论