linux3.10选用ubifs作为根文件系统

1、内核选项支持,

驱动选项如下:

	Device Drivers --->
			< * > Memory Technology Device (MTD) Support --->
						.........
						< * > Enable UBI - Unsorted block images --->			

文件系统选项如下:

	File systems ---->
			...........
			[ * ]  Miscellaneous filesystems --->
					.........
					< * > UBIFS file system support
2、制作根文件系统

制作ubifs根文件系统需要有mkfs.ubifs命令,联网直接安装 mtd-utils 即可。

第一步,执行:

  mkfs.ubifs -F -r yourrootfs -m 2048 -e 126976 -c 2047 -o ubifs.img
参数意义:
-F : --space-fixup ,
-q :
-r : --root=DIR 根文件系统,输入文件。
-m : --min-io-size=SIZE, 最小的输入输出大小,一般是Page size。
-e : --leb-size=SIZE 逻辑擦除块的大小,
-c : --max-leb-cnt=SIZE 最大的可擦除逻辑块的数量
-o : --out-put=FILE 输出文件

第二步,执行:

   ubinize -o ubi.img -m 2048 -p 128KiB ubinize.cfg
参数意义:
-o : --output, 输出文件
-m : --min-io-size= 最小的输入输出单元大小
-p : --peb-size 物理上flash的最小擦除块的大小
最后跟上配置文件 ubinize.cfg
文件内容如下:

[ubifs]
mode=ubi					
image=ubifs.img
vol_id=0
vol_size=200MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

mode=ubi ,制作的该分区为Ubifs
image=ubifs.img, 输入文件是ubifs.img,即上一步的输出文件
vol_id=0, 该分区的id
vol_size ,该分区的大小
vol_name,该分区的名字,和内核的内部的参数一致
vol_flags=autoresize,自动确定大小

最后生成的 ubi.img 即直接可以烧录的根文件系统。

3、修改内核参数

添加内核参数如下:

“noinitrd ubi.mtd=2 root=ubi0:rootfs rootwait rootfstype=ubifs ”
或者
“noinitrd ubi.mtd=2 root=ubi0:rootfs rootwait rootfstype=ubifs rootflags=sync”

命令行参数如果没有rootflags=sync,可能会容易造成意外断电文件丢失的情况,添加rootflags=sync 告诉内核以同步的方式挂载根文件系统。不过会稍影响文件系统的性能。

总结:

ubifs根文件系统启动速度跟Flash大小无关,启动-F参数,即第一次启动的时候会修复空白空间,会稍微耗时一点,之后的启动不在耗时。yaffs2文件系统的挂载时间跟Flash的大小成线性关系,即Flash越大挂载时间越长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值