有了mkfs.ubifs和ubinize两个工具后,就可以制作UBIFS镜像了,具体步骤如下:
1. 使用mkfs.ubifs命令将某个文件夹制作为UBIFS镜像,具体命令为:
- mkfs.ubifs -r/tmp/rootfs-m 2048 -e 126976-c 992 -o ubifs.img
以上命令的含义为将/tmp/rootfs文件夹制作为UBIFS文件系统镜像,输出的镜像名为ubifs.img,-m参数指定了最小的I/O操作的大小,也就是NAND FLASH一个page的大小,-e参数指定了逻辑擦除快的大小,-c指定了最大的逻辑块号。
通过此命令制作的出的UBIFS文件系统镜像可在u-boot下使用ubi write命令烧写到NAND FLASH上。
2. 使用ubinize命令可将使用mkfs.ubifs命令制作的UBIFS文件系统镜像转换成可直接在FLASH上烧写的格式(带有UBI文件系统镜像卷标):
- ubinize -o ubi.img-m 2048 -p 128KiB-s 512 -O 2048 ubinize.cfg
ubinize.cfg为一些配置参数:
- [ubifs]
- mode=ubi
- image=ubifs.img
- vol_id=0
- vol_size=100MiB
- vol_type=dynamic
- vol_alignment=1
- vol_name=rootfs
- vol_flags=autoresize
通过此命令生成的ubi.img可直接使用NAND FLASH的烧写命令烧写到FLASH上。
once more:
为何 -e后面参数是 126976
124KB是Logical EraseBlock
128KB是Physical EraseBlock
PEB包含erase counter header(EC头) 和volume identifier header(VID头)以及LEB
对于没有subpage的NAND来说,一般EC头和VID头各占一页(如2KB)
对于有subpage(命令中的-s 512)的NAND来说,EC头和VID头都在第一页,所以LEB应该是126KB,但上面的命令还指定了-O (vid-hdr-offset),所以还是一共占了4KB
from:http://blog.youkuaiyun.com/andy205214/article/details/7390287