Yocto initramfs 在刷机过程中 rootfs 中没有足够的空间

Yocto initramfs 在刷机过程中 rootfs 中没有足够的空间

我一直在尝试使用 Yocto 为 imx6ull 构建 Linux 映像。我已成功构建旧版本并使用 mfgtool 刷新了主板。使用 Linux Gatesgarth 分支时,我在使用 mfgtool 时遇到了问题,因此我尝试切换到 uuu。

uuu 脚本的第一部分如下;

uuu_version 1.2.39

# This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ
SDP: boot -f u-boot.imx

FB: ucmd setenv fastboot_buffer ${loadaddr}
FB: download -f zImage
FB: ucmd setenv fastboot_buffer ${fdt_addr}
FB: download -f imx6ull-14x14-evk-gpmi-weim-imx6ull14x14evk.dtb
FB: ucmd setenv fastboot_buffer ${initrd_addr}
FB: download -f fsl-image-mfgtool-initramfs-imx6ull14x14evk.cpio.gz.u-boot
FB: ucmd setenv bootargs ${bootargs} ${mtdparts}
FB: acmd ${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr}

FBK: ucmd cat /proc/mtd
FBK: ucmd cat /proc/mtd | while read dev size erase name; do mtd=${dev:3}; mtd=${mtd%:}; name=${name%\"}; name=${name#\"}; echo export $name=$mtd >> /tmp/mtd.sh; done; 

此时设备出现“设备上没有剩余空间”错误。

run shell cmd: cat /proc/mtd | while read dev size erasesize name; do mtd=${dev:3}; mtd=${mtd%:}; name=${name%\"}; name=${name#\"}; echo export $name=$mtd >> /tmp/mtd.sh; done;
sh: line 0: echo: write error: No space left on device

我正在使用具有 512mb nand 闪存的裸机映像进行测试,但似乎 rootfs 分区已满。

1:243>Start Cmd:FBK: ucmd echo "`df -h`"
Filesystem      Size  Used Avail Use% Mounted on
rootfs           31M   31M     0 100% /
none             31M     0   31M   0% /dev

我尝试使用IMAGE_OVERHEAD_FACTOR = "1.5"local.conf 增加分区的大小,但错误仍然存​​在。

我怎样才能增加 initramfs 中 rootfs 分区的大小,或者什么可能是导致问题的原因?

答案1

在内核菜单配置中将 cma 大小设置为 0 解决了这个问题。配置行是CONFIG_CMA_SIZE_MBYTES=0

相关内容