我在 Ubuntu 18.04 上使用 Yocto 和 Meta-Tegra 的 Warrior Branch,以便尝试集成用于 Linux 固件更新的 RAUC 开源项目。
我了解到,如果 U-Boot 正在写入的 EXT4 文件系统具有metadata_csum 属性,则 U-Boot 在写入 EXT4 分区(以更新 U-Boot Env)时会出现问题。如果启用该属性且 U-Boot 根本无法写入根文件系统,则 Linux 无法挂载根文件系统。
以下是一些相关帖子:
我通过在 Ubuntu 上安装 Yocto 生成的 SDCARD 镜像并运行以下命令来禁用metadata_csum来证明了这种情况:
sudo tune2fs -O ^metadata_csum /dev/sdb1
tune2fs 1.44.1 (24-Mar-2018)
Disabling checksums could take some time.
Proceed anyway (or wait 5 seconds to proceed) ? (y,N) y
运行该命令后 - U-Boot 可以从 U-Boot 空间随意读取/写入,并且 Linux 可以挂载根文件系统。
我正在尝试弄清楚如何在使用 Yocto 创建镜像时在 Ubuntu 上禁用 Tune2fs 的校验和。在哪里/如何添加它,以便图像在 Yocto 创建图像时禁用校验和?
最佳答案
我简单地浏览了一下meta-tegra,我认为它使用通过image_class.bcclass 创建的ext4 根文件系统镜像。您可以通过 EXTRA_IMAGECMD 将参数添加到 mkfs.ext4。应该可以在禁用metadata_csum的情况下创建文件系统,而不是稍后将其关闭。
尝试
EXTRA_IMAGECMD_append = " -O ^metadata_csum"
在你的 local.conf 中
关于linux - Yocto 自定义层在 mkfs.ext4 之后在 do_rootfs 上运行 Tune2fs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57255930/