问题
在板子上观察到56M的ubi卷,挂载上ubifs之后,df -h显示可用空间约为50M。
如此计算开销超过了10%,那么这个开销随容量如何变化呢,是固定为10%吗还是有其他规律?
理论计算
简单查了下资料,没找到明确的计算方式。只知道ubifs分为了六个区域,那么要确认可用大小,应该先减去其余区域的占用,再确认main area本身如何计算可用空间。
这个要深入进去看源码,就比较花时间了。暂且搁置,以后有空再来填这个坑。
实际测试
测试命令
想了想,没有确认到理论计算方式的话,那就干脆直接实测一组数据好了。
板子本身nand的容量有限,且操作麻烦,我们直接在PC上模拟即可
#注意顺序,如果没有/dev/ubi0可能是modprobe顺序错了,则需要先rmmod,再重新执行
sudo modprobe nandsim first_id_byte=0xec second_id_byte=0xd3 third_id_byte=0x10 fourth_id_byte=0xa6
sudo modprobe ubi mtd=0
sudo ubimkvol /dev/ubi0 -N ubifs-vol -s 100MiB
sudo mkdir -p /mnt/ubifs
sudo mount -t ubifs /dev/ubi0_0 /mnt/ubifs
df -h | grep ubi0_0
对应卸载命令为
sudo umount /mnt/ubifs
sudo rmmod ubifs ubi nandsim
查看ubi信息的命令
ubinfo /dev/ubi0_0
测试结果
注: nandsim支持多种nand,由传入的id指定。模拟不同的nand型号,结果会有所差别。可以选择跟自己目标nand参数较为一致的设备作为模拟,更具有实际参考意义
参考资料
http://www.linux-mtd.infradead.org/faq/nand.html#L_nand_nandsim
http://www.linux-mtd.infradead.org/nand-data/nanddata.html
本文地址: https://www.cnblogs.com/zqb-all/p/11147184.html