对内核添加cramfs支持

       Cramfs(Compressed ROM File System)是Linux的创始人 Linus Torvalds参与开发的一种只读的压缩文件系统,它也基于MTD驱动程序。在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。

Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时 解压缩到RAM中。

另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。Cramfs映像通常是放在Flash中,但是也能放在别的文件系统里,使用loopback设备可以把它安装别的文件系统里。

由于以上特性,Cramfs在嵌入式系统中应用广泛。但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。


1.对内核添加cramfs支持

 File systems  --->
      Miscellaneous filesystems  --->
           <*> Compressed ROM file system support (cramfs)

2 制作映像文件

[guanlei@centos6 fl2440]$ mkcramfs rootfs rootfs.cramfs
Directory data: 9004 bytes
Everything: 2592 kilobytes
Super block: 76 bytes
CRC: fb95101a
warning: gids truncated to 8 bits (this may be a security concern)
[guanlei@centos6 fl2440]$ du -sh rootfs.cramfs 
2.6M    rootfs.cramfs

[ s3c2440@guanlei ]# set bcramfs 'tftp 30800000 rootfs.cramfs;nand erase f00000 600000;nand write 30800000 f00000 600000'

[ s3c2440@guanl ]# set bootargs 'noinitrd root=/dev/mtdblock3 rootfstype=cramfs init=/linuxrc console=ttyS0,115200'

[ s3c2440@guanlei ]# set bootcmd_cramfs 'nand read 30008000 100000 400000;bootm 30008000'

[ s3c2440@guanlei ]# set bootcmd 'run bootcmd_cramfs'

[ s3c2440@guanlei ]# save

Saving Environment to NAND...


3 把自己制作的文件系统和移植的内核烧录到开发板上就可以了

run bkr
run bcramfs
boot


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值