分类: LINUX
2010-09-14 20:21:04
以前的根文件是厂家自带的,用的是ramdisk。ramdisk是在启动时把一部分内存虚拟成磁盘,它有2个缺点:
(1)同时占用ram和flash;
(2)掉电不能保存数据。
于是想重新制作根文件系统,研究之后,初步打算使用cramfs+yaffs2的文件系统。
cramfs用来作根文件系统,充分利用系统资源,yaffs2用来存储一些配置参数。
cramfs优点:
(1)压缩比高
(2)占用内存少
缺点:只读。
于是加上yaffs2文件系统
优点:
(1)能更好的支持nand flash,延长nand flash寿命;
(2)资源占用少
(3)可读写
缺点:
(1)不提供日志机能,稳定性不如jffs
(2)不支持压缩,更适合存储容量大的系统
采用cramfs与yaffs2可以充分利用2者的优点,达到互补的效果。
制作cramfs文件系统时,碰到一个主要问题就是cramfs是一个只读的文件系统,而在启动的过程中,我需要创建目录和文件,怎么办呢?
先不管,直接利用原理的根文件,只是简单的把它制作成了cramfs文件。
果然,启动过程中提示read only,不能创建文件。
上网查找,发现别人都利用到了tmpfs,把一些需要写的目录都挂载成tmpfs。
于是更改,然后成功启动。
接下来就是制作yaffs2文件系统,基本上没有遇到障碍。
以下是我的MTD分区
# cat /proc/mtd
dev: size erasesize name
mtd0: 00400000 00020000 "u-boot"
mtd1: 00400000 00020000 "kernel-1"
mtd2: 00400000 00020000 "kernel-2"
mtd3: 00800000 00020000 "rootfs-1"
mtd4: 00800000 00020000 "rootfs-2"
mtd5: 00400000 00020000 "usr-config"
mtd6: 0e000000 00020000 "nandflash-store"
再rcS里添加了一句:
/bin/mount -t yaffs2 /dev/mtdblock5 /mnt/usr
然后就可以在/mnt/usr里面保存数据了。
chinaunix网友2010-09-15 14:38:54
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com