Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547805
  • 博文数量: 105
  • 博客积分: 3274
  • 博客等级: 中校
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 12:14
文章分类

全部博文(105)

文章存档

2011年(1)

2010年(104)

分类: 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里面保存数据了。

阅读(1479) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-15 14:38:54

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com