1. CRAMFS文件系统配置
Cramfs是Linux的创始人 Linus Torvalds参与开发的一种只读的压缩文件系统。它也基于MTD驱动程序。
在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。由于以上特性,Cramfs在嵌入式系统中应用广泛。
但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。可以使用Cramfs + yaffs2/ubiffs的双文件系统结构,系统的基本文件系统使用Cramfs,另外启动时mount一个yaffs2/buiffs作为用户数据存储的地方。
a) 内核配置
# make menuconfig //默认的MINI2440配置已经打开了CRAMFS的支持
File systems --->
[*] Miscellaneous filesystems --->
<*> Compressed ROM file system support (cramfs)
b) 编译内核
# make uImage
将生成的内核下载到开发板中运行,使用以下命令可以查看内核支持的文件系统类型,可看到现在内核已经可以支持CRAMFS文件系统了。
# cat /proc/filesystems
2. CRAMFS文件系统映像制作
a) 下载CRAMFS制作工具
下载地址:http://sourceforge.net/projects/cramfs/
( http://pan.baidu.com/s/1bnpg0Ar )
b) 解压并生成CRAMFS制作工具
# tar -xvf /media/sf_ShareDIR/MICRO2440/source/cramfs-1.1.tar.gz -C ./
# cd ./cramfs-1.1/
# make
# cp ./cramfsck ./mkcramfs /usr/bin
c) 生成CRAMFS镜像
# mkcramfs NFS fs_micro2440.cramfs
d) 使用mount命令挂载CRAMFS
# mount -o loop -t cramfs ./fs_micro2440.cramfs /mnt
输入此命令后回车,就一直卡住了,只能CTRL+C中断。在宿主机的LINUX中使用该命令可以正常挂载,因此可以清楚文件系统是正确的。在目录板上将镜像烧写到NAND中,再挂载又可以,如下一步所述。
e) 将CRAMFS下载到NAND中,并设为根文件系统启动
将文件系统下载到mtd2分区(存放KERNEL的分区,因为目前是用TFTP下载内核到RAM中运行的,为了方便测试,使用mtd2分区即可)。
# /mtd_tools/flash_eraseall /dev/mtd2
# /mtd_tools/nandwrite -a -p /dev/mtd2 ./fs_micro2440.cramfs
# mount -o loop -t cramfs /dev/mtdblock2 /mnt //挂载到mnt目录成功
进入U-BOOT设置LINUX启动参数,设置CRAMFS为根文件系统。
# setenv bootargs noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 rootfstype=cramfs
由于rootfs为只读分区,不能存储用户数据,因此挂载mtd3分区为yaffs2,用户数据可以放在这里。
# mount -t yaffs2 /dev/mtdblock3 /mnt
上一篇:module方式调试驱动(Micro2440 + linux 2.6.39)
下一篇:JFFS2文件系统搭建与配置(Micro2440 + linux 2.6.39)
推荐阅读最新更新时间:2024-10-25 12:47
设计资源 培训 开发板 精华推荐
- LTM8057MPY 8V 反激式转换器的典型应用电路
- 加热台量产计划-450W加热台扩展隔热板
- OP249FZ 同相放大器配置失调调整的典型应用电路
- MTRCKTSPS5643L,带 Qorivva MPC5643L MCU 的三相 PMSM 电机控制开发套件
- 停车场管理系统
- 具有 2mm + 2mm 电感器的 LT8410 16V 输出升压转换器的典型应用电路
- LT5558 的典型应用 - 600MHz 至 1100MHz 高线性度直接正交调制器
- AM1G-1215DH30Z ±15V 1 瓦 DC-DC 转换器的典型应用
- 使用 Analog Devices 的 LT1108CS8 的参考设计
- LTC2274CUJ 演示板,16 位,105Msps 串行 ADC,1MHz