由于项目开发中要使用到ubifs文件系统,现对开发中的技术经验作一个总结。
ubifs是新一代的flash文件系统,其设计以及性能都优越于YAFFS2,特别是工作在大页MLC NAND FLASH上面,同时读写速度也比
yaffs2高出很多,ubifs文件系统的写入速度约为1.66M/s,读出速度约为2.27M/s.同时 ubhifs系统的高压缩率也为生产安装提高效率。
如alpha600文件系统的yaffs2镜像为440M,而ubifs镜像只有206M.
测试ubifs写入速度命令:
time dd if=/dev/zero of=/tmp/ubifs1/zero100M bs=1M count=100;time sync
测试ubifs读出速度命令:
time cp ubifs1/zero100M /dev/null;time sync
从以上的测试结论得出,ubifs优秀的读写速度,在系统启动,文件存储时间大大减少,ubifs在alpha600上应用时,开机时间由原来的
30多秒下降到20S,当然非法关机对ubifs来说,其启动时间也不会增加。。好了,现在言归正转,该说我们如何使用ubifs文件系统了。
具体步骤如下
1.配置ubi and ubifs ()
配置内核支持UBIFS
Device Drivers --->Memory Technology Device (MTD) support --->UBI - Unsorted block images --->Enable UBI
配置mtd支持UBI接口
File systems --->Miscellaneous filesystems --->UBIFS file system support
2.manual attach/detach ubi to mtd (手动设置/取消 ubi和mtd分区的关联)
./ubiattach /dev/ubi_ctrl -m mtdnumber
./ubidetaach /dev/ubi_ctrl -m mtdnumber
3.manual create ubi volume (设定volume 大小(不是固定值,可以用工具改变)及名称 )
./ubimkvol /dev/ubi_device_number -s size -N name
like:
./ubimkvol /dev/ubi0 -s 300MiB -N ubifs1
4.mount ubifs volume (挂分区)
mount -t ubifs ubi0:ubifs1 /tmp/ubifs1
5.ubi node and ubi_ctrl node (查看ubi和ubi_ctrl主节点信息)
#cat /sys/class/misc/ubi_ctrl/dev
10:63
加入/dev下没有ubi_ctrl,则我们可以sudo mknod ubi_ctrl c 10 63创建一个端点
#./ubiattach /dev/ubi_ctrl -m 6
#cat /sys/class/ubi/ubi0/dev
252:0
当我们attach ubi0 to mtd6后,如果/dev下没有ubi0,则创建一个,sudo mknod ubi0 c 252 0
6 .使用mkfs.ubifs命令制作出ubifs格式的镜像:
$./mkfs.ubifs -r mx31-rootfs-alpha1.0.6-20090520/ -m 2048 -e 126976 -c 7979 -o rootfs-ubi.img
参数说明:-r 文件系统目录;
-m NandFlash的页大小;
-e 逻辑操作块的大小;
-c 最大逻辑操作的块数;
-o 使用在目标镜像文件
使用ubinize命令生产实际可用空间的ubi格式镜像,这样才可以通过ubiformat命令在板子上写入该文件系统镜像:
$./ubinize -o rootfs.img -m 2048 -p 128KiB ubinize-rootfs.cfg
参数说明:-o 最终生成的ubi格式镜像;
-m 页大小;
-p 物理块大小 ;
ubinize-rootfs.cfg是配置文件配置文件内容如下:
[ubifs]
mode=ubi
image=rootfs-ubi.img
vol_id=0
vol_size=950MiB
vol_type=dynamic
vol_name=rootfs
vol_alignment=1
vol_flag=autoresize
说明:
image=rootfs-ubi.img:由mkfs.ubifs生成的镜像
vol_size=950MiB:写入镜像可使用的分区总共大小
vol_name=rootfs:挂载时使用的名称(rootfs请不要修改,因为在redboot的启动参数里写定了是这个启动信息)
所需要的工具,看附件源代码
阅读(2411) | 评论(0) | 转发(0) |