Yocto从fido升级到morty rootfs是只读错误

时间:2017-06-09 06:58:21

标签: yocto

所以,我被赋予了将基于yocto的系统从fido升级到morty的任务。我对yocto的经验很少,我一直在努力解决这个问题并试图理解它近一个星期了。我已经设法修复了一些问题,但现在我在尝试构建映像时遇到了问题:

ERROR: basic-image-1.0-r0 do_rootfs: The following packages could not be configured offline and rootfs is read-only: ['component']
ERROR: basic-image-1.0-r0 do_rootfs: Function failed: do_rootfs

如果我禁用组件,基本图像构建得很好,并且它们都可以自行构建,即bb组件

我甚至不知道从哪里开始寻找解决方案。因此,如果您知道可能导致此问题的原因或从何处开始寻找解决方案,我们将不胜感激。 当然,我一直在浏览yocto手册,但有很多东西让我不知所措。

1 个答案:

答案 0 :(得分:3)

嗯,"问题"源于您的图像中包含以下内容:

IMAGE_FEATURES += "read-only-rootfs"

这意味着在运行时没有任何东西可以修改rootfs,所有内容都必须离线完成,即在构建有问题的rootfs时。

您的原始问题component(原始问题中的adclcfgmgr)包含以下代码段的安装后脚本:

pkg_postinst_${PN} () {
  if test "x$D" != "x" then
     # Need to run on first boot
     exit 1
  fi
}

(至少类似的东西,exit 1)。

我的示例中的条件检查在创建rootfs期间是否正在运行pkg_postinst脚本,如果是,则以1退出退出状态。这意味着pkg_postinst必须在目标系统上运行。但是,由于目标系统是read-only,这将是不可能的,并且构建失败。

您必须检查pkg_postinst脚本并重写它们,以便在rootfs创建期间能够运行它们。