参考文档:


Error: max_leb_cnt too low 错误

这个错误是在生成ubifs文件时,由于mkfs.ubifs指令的参数设置的默认大小,小于生成的文件系统大小导致的。

我们的bsp有默认的max-leb-cnt大小配置,位于:meta-phytec/conf/machine/include/ 中的inc文件中,如:

# Use the expected value of the ubifs filesystem's volume name in the kernel
UBI_VOLNAME = "root"
# The biggest NANDs on current modules are 1GB. With current partition layout,
# this sums up to 7943 LEBs available for the ubifs
MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 8083"
UBINIZE_ARGS = "-m 2048 -p 128KiB -s 2048 -O 2048"

MKUBIFS_ARGS 这个参数设置了mkfs.ubifs 指令执行时的参数。

参数意思建议
-mflash芯片上最小的操作块大小不推荐修改
-e逻辑擦除块大小不推荐修改
-c最大的逻辑擦除块数量

如果使用的nand比较小,则可以使用小点儿的值

http://www.linux-mtd.infradead.org/faq/ubifs.html#L_max_leb_cnt

如上面的例子中,最大为978MB:

如果生成的文件系统大于这个值,则会报这个错误,那么有两个方法解决:

  1. 如果必须要使用nand,则可以考虑剪裁一下文件系统,如:
    1. yocto查询各类信息方法指南中的各个包大小查询
    2. 在yocto中怎样为系统安装/删除软件
  2. 如果可以使用emmc,或者sd卡,则可以修改local.conf中的IMAGE_FSTYPES参数,去掉ubifs:
    1. # You can disable and enable FSTYPES as you wish. e.g. 'ext4'.
      # This variable is ordering dependend.
      IMAGE_FSTYPES = "tar.gz wic"


  • No labels