一、mtd-utils下载
有时下载不了的时候先判断网络是否正常。然后使用命令进行下载,可以在这个网址下载源码包自己编译,或者直接用命令下载;
1.下载源码包,直接gcc编译
http://git.infradead.org/mtd-utils.git
2. ubantu命令下载
sudo apt-get install mtd-utils
二、内核开启支持ubifs
UBI wear-leveling threshold 损耗均衡的阈值,擦写次数达到4096次时会将数据写到别的地方。
Maximum expected bad eraseblock count per 1024 eraseblocks
每1024个擦除块的最大预期坏擦除块计数。默认20.
3.制作ubi镜像
mkfs.ubifs -F -x lzo -m 2048 -e 126976 -c 149 -o ubifs.img -d /rootfs
-e 算出来是124kb -c事最大擦除块,计算方法是
对于分区是20M的时候-c的参数149。
ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ./ubinize.cfg
-s的参数可以通过这个命令查到。
ubinize.cfg文件如下
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=18919424
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
vol_size中是124k*最大可擦除块数 如124k乘149。
ubiattach -d 1 -m 1 /dev/ubi_ctrl
ubimkvol /dev/ubi1 -N app -m
mount -t ubifs ubi1_0 /opt/app
如有错误,欢迎指正。