1. mkfs.ubifs
mkfs.ubifs生成的image可以用来在linux kernnel里面更新ubi volume。
其使用方法如下:
mkfs.ubifs -r root-tree -F -m 4096 -e 258048 -c 362 -o ti.ubifs
-r 后面跟文件系统的tree
-F --space-fixup, 如果要基于ti.ubifs来制作使用u-boot来烧写的ubi.img,这个flag一定要选啊
-m min i/o size
-e logical 擦除块的大小
-c 逻辑擦除块的数目
-o 目标生成文件
下面是使用ti.ubifs更新ubi vlomue的例子:
flash_eraseall /dev/mt7
ubiattach /dev/ubi_ctrl -m 7
ubimkvol /dev/ubi0 -N rootfs -s 85MiB
ubiupdatevol /dev/ubi0_0 ti.ubifs
mount /dev/ubi0_0 /mnt/ubi0
就可以看到ubifs的内容了
2. ubinize
ubinize用来制作u-boot下烧写用的ubifs的image。
其使用方法如下:
ubinize -o ubi.img -m 4096 -p 256KiB -s 1024 ubinize.cfg
-o 后跟目标image文件名,这个ubi.img可以在u-boot里面进行烧写
-m minimum io size
-p 物理擦除块的大小
-s subpage的大小
ubinize.cfg 是生成ubi.img的配置文件,内容如下。
#cat ubinize.cfg
[ubifs]
mode=ubi
image=ti.ubifs
vol_id=0
vol_size=80MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
其中
"image=ti.ubifs"指明使用上文所述的ti.ubifs作为输入。
"vol_name=rootfs"指明volume的name.
"vol_size=80MiB"指明fs的总大小。
下面是u-boot烧写ubi.img的方法
当前是写48MB, 需要根据实际调整.
U-Bo