linux 产品发布--根文件系统镜像制作

用命令:du  要查看的文件夹的大小   -hs    算出根文件系统的大小将近两百兆(本人自己用的)
[root@localhost opt]# du * -hs
133M    qt-embedded-arm9
244K    tslib

从上可以看出, qt 的库函数占去了绝大多数的空间,所以需要对这个库进行缩减。

文件系统:
  常用文件系统格式:
  NFS:网络文件系统   ---开发时候使用这个,方便。
  cramfs  : 只读文件系统。
  jaffs/2 : 比较适合在NorFlash上运行,最初为NorFlash介质发明
  yaffs/2 : 比较适合在NandFlash上运行,最初为NandFlash介质发明
  fat     : U盘,SD,WINdows下常用的文件系统。
  ext2/3/4: Linux专用的文件系统。一般Linux都会支持这种文件系统。


嵌入式常用:cramfs,jffs2,yaffs2。
  cramfs 文件系统制作:
  1.  下载 cramfs-1.1.tar.gz工具包
工具官网下载地址:http://nchc.dl.sourceforge.net/project/cramfs/cramfs/1.1/cramfs-1.1.tar.gz
 
  2.解压这个压缩包并且编译。

     一,进入解压后的文件夹中:输入命令 make  ,之后会生成几个文件,其中包括根文件制作工具mkcramfs
     二,将工具mkcramfs复制到/bin/ 目录下,
     三,通过上面将我们的根文件系统缩减到最小的大小,这是输入命令:mkcramfs    根文件系统    *.cramfs  ,这样我们就可以生成我们需要的根文件系统的镜像文件了 。

  3. 复制生成的cramfs文件系统文件到tftp共享目录下,一会要使用tftp服务下载这个文件。

  4. 下载cramfs到NandFlash中。
 
     1)查看内核分区信息:
             内核启动,终端会打印出类似以下这段(每个人的内核打印信息可能不一样,要根据nand 的驱动的配置)
     0x000000000000-0x000000100000 : "boot"     //0~1M 存放bootloader,也就是u-boot;  /dev/mtdblock0
     0x000000100000-0x000000600000 : "Kernel"   //1M~6M,大小5M,用来存放内核映像。    /dev/mtdblock1
     0x000000600000-0x000003600000 : "root_fs"  //6M~48M,共42M,用来存放根文件系统   /dev/mtdblock2
     0x000003600000-0x000007f00000 : "usr_fs"   //48M到最结束,,用来存放用户文件系统 /dev/mtdblock3
     
    2)通过tftp将镜像文件下载到内存中
                xyd2440 # tftp 30000000   *.cramfs

    3)擦除 nandflash 
                xyd2440 # nand erase 600000 700000   :从6m的地址开始,大小为7m

    4) 把内存中的内容写入NandFlash
   30000000:数据在内存中的起始地址; 600000:数据下载到NandFlash中的起始地址; 654000:数据大小(也     可以向上取整)                      
     xyd2440 # nand write.cramfs 30000000 600000 654000
     NAND write: device 0 offset 0x600000, size 0x654000

    5) 修改环境变量,注意root=/dev/mtdblock2  要根据自己的内核分区信息而定。
     xyd2440 #  setenv  bootargs  noinitrd  root=/dev/mtdblock2  init=/linuxrc  console=ttySAC0  rootfstype=cramfs 

  5.加载 Linux内核到nandflash中

。。。。。。。。。。。。。。。。。。。

修改u-boot默认启动命令(实际是bootcmd这个环境变量)
           /*nboot 32000000 0 100000  说明:从第0片NandFlash  100000 地址处把Linux内核映像读取出来,存放在32000000 这个地址上 */
  xyd2440 # set bootcmd 'nboot 32000000 0 100000;bootm 32000000'



6  jaffs2文件系统

  解压,编译,安装:  make   &&   make  install  


  yaffs2........ 同理。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值