buildroot之ubifs调试记录

PS:ubifs烧录文件系统直接重新烧录不会成功,必须先ubiformat后才能重新烧录,切记!!!

buildroot配置

[*] ubi image containing an ubifs root filesystem
	(0x20000) physical eraseblock size
	(2048) sub-page size
	[ ]   Use custom config file
	(-Q 0 -v) Additional ubinize options
-*- ubifs root filesystem
	(0x1f000) logical eraseblock size
	(0x800) minimum I/O unit size
	(140) maximum logical eraseblock count
		ubifs runtime compression (lzo)  --->
		Compression method (no compression)  --->
	(-F -v) Additional mkfs.ubifs options                 

一、ubi镜像

该镜像可以直接使用dd命令烧录,烧录时注意开头PS提示

mtdinfo /dev/mtd0
mtd0
Name:                           uboot
Type:                           nand
Eraseblock size:                131072 bytes, 128.0 KiB
Amount of eraseblocks:          8 (1048576 bytes, 1024.0 KiB)
Minimum input/output unit size: 2048 bytes
Sub-page size:                  2048 bytes
OOB size:                       128 bytes
Character device major/minor:   90:0
Bad blocks are allowed:         true
Device is writable:             true

(0x20000) physical eraseblock size
可通过mtdinfo的Eraseblock size查看  dex 131072  = hex 0x20000

(2048) sub-page size
可通过mtdinfo的Sub-page size查看

Use custom config file
[ubifs]
mode=ubi
vol_id=0             //该选项为1时设备节点为/dev/ubi0_1
vol_type=dynamic
vol_name=rootfs
vol_alignment=1
#vol_size = 15MiB    //指定跟文件系统大小 该选项和vol_flags的autoresize冲突
vol_flags=autoresize
image=BR2_ROOTFS_UBIFS_PATH

(-Q 0 -v) Additional ubinize options
-Q 0的说明:ubifs挂载时会校验image_seq,该值在制作镜像会随机生成。
如果系统已有ubifs参数的话会导致image_seq不一致导致无法挂载,指定为 0 时会自动复制为原有的image_seq或者重新随机生成。
冲突的话会报 bad image sequence number xxxxxxx in PEB xxx, expected xxxxxxxxx这类的异常。

二、ubifs文件系统

ubinfo /dev/ubi0
ubi0
Volumes count:                           1
Logical eraseblock size:                 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks:     192 (24379392 bytes, 23.2 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes                 128
Count of bad physical eraseblocks:       0
Count of reserved physical eraseblocks:  20
Current maximum erase counter value:     11
Minimum input/output unit size:          2048 bytes
Character device major/minor:            248:0
Present volumes:                         0

(0x1f000) logical eraseblock size
可通过ubinfo的Logical eraseblock size查看  dex 126976 = hex 0x1f000

(0x800) minimum I/O unit size
可通过ubinfo的Minimum input/output unit size查看  dex 2048 = hex 0x800

(140) maximum logical eraseblock count
该选项貌似不会起作用,挂载的时候会重新调整。

		ubifs runtime compression (lzo)  --->
		Compression method (no compression)  --->
压缩格式,默认即可

(-F -v) Additional mkfs.ubifs options
-F指设置修正空白区域的标志,在第一次mount的时候对空白区域进行修正,以便后续能正常使用。
关于以下信息
Total amount of logical eraseblocks:     192 (24379392 bytes, 23.2 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)

Amount of available logical eraseblocks这个值的确定:
用ubiformat格式化的时候会自动分配。此时指不为0。
当使用vol_flags=autoresizes时烧录固件后该值是0的状态,大小自动调整。
当指定vol_size大小时,该值Total amount of logical eraseblocks减去vol_size后剩余大小。

三、bootargs

mem=64M earlycon console=ttyS0,115200 init=/linuxrc ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs rw mtdparts=spi_nfc:1M(uboot),3M(kernel),28M(update),1M(config),24M(rootfs),-(data)

ubi.mtd=4可以单独使用,可以预挂载其他非根文件系统分区,如以下将data分区初始化为/dev/ubi0_0
mem=64M earlycon console=ttyS0,115200 init=/linuxrc root=/dev/mtdblock4 rootfstype=squashfs ubi.mtd=5 mtdparts=spi_nfc:1M(uboot),3M(kernel),28M(update),1M(config),24M(rootfs),-(data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值