ubi文件系统的 制作 + 挂载

ubi文件系统的 制作 + 挂载

1 ubi文件系统的制作

1.1 测试项目的文件目录结构如下

image

其中diag.img和diag.ubifs是生成的产物。

ubinize.cfg的内容如下

[ubifs]
mode=ubi
image=diag.ubifs
vol_id=0
vol_size=9216KiB
vol_type=dynamic
vol_name=diag
vol_alignment=1
vol_flags=autoresize

ubi_source_dir是待制作的ubi 镜像的原始文件。

 

1.2 使用如下命令制作出diag.ubifs

mkfs.ubifs –F -q -r ubi_source_dir -m 2048 -e 126976 -c 71 -o diag.ubifs

我们使用的nand flash是 page size: 2k     block size: 64 page

block_size: 2k * 1024 * 64 = 131,072‬

-F: 使能“white-space-fixup”,如果是通过u-boot烧写需要使能此功能

-r: 待制作的文件系统目录

-m: 最小输入输出大小,一般为page_size, 当前spinand的page_size为2048byte

-e: LEB size 逻辑可擦除块大小,block_size - (2*page_size) = 128k - 4k = 126976       2 * 1024 * 62 = 126976‬   62个page size

-c: 文件系统所占用的最大block数,一般小于等于(block_count - 1)。

目前有如下两种方式,我已经验证的是方式一,所以这里写-c 71

方式一:131072 * (71 + 1) = 9,437,184

方式二:LEB = 9216 * 1024 / 126976 - 4 = 70.322

1.3 使用如下命令制作出最终可以烧录的diag.img

ubinize -o diag.img -m 2048 -p 128KiB ubinize.cfg

-p: block size

-m: spi nand flash的最小读写单元,一般为page_size

-o:输出的diag.img文件

ubinize.cfg: 为ubinize所需的配置文件,内容如上