Yocto 从 fido 升级到 morty rootfs 是只读错误
Yocto upgrade from fido to morty rootfs is read-only error
因此,我接到了将基于 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 手册,但是有太多的东西让我不知所措。
嗯,"problem" 是因为您的图片中包含以下内容:
IMAGE_FEATURES += "read-only-rootfs"
这意味着在 运行 时间内没有任何东西可以修改 rootfs,一切都必须离线完成,即在构建有问题的 rootfs 时。
您的软件包 component
(adcl
和 cfgmgr
在您原来的问题中),都有一个 post 安装脚本,包括以下片段:
pkg_postinst_${PN} () {
if test "x$D" != "x" then
# Need to run on first boot
exit 1
fi
}
(至少类似的东西,exit 1
)。
我的示例中的条件检查 pkg_postinst
脚本在 rootfs 创建期间是否正在 运行,如果是,它以 1
作为退出状态退出。这意味着 pkg_postinst
必须 运行 存在于目标系统上。但是,由于目标系统是 read-only
,这是不可能的,构建失败。
您必须检查 pkg_postinst
脚本,并重写它们,以便它们能够 运行 在 rootfs 创建期间。
因此,我接到了将基于 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 手册,但是有太多的东西让我不知所措。
嗯,"problem" 是因为您的图片中包含以下内容:
IMAGE_FEATURES += "read-only-rootfs"
这意味着在 运行 时间内没有任何东西可以修改 rootfs,一切都必须离线完成,即在构建有问题的 rootfs 时。
您的软件包 component
(adcl
和 cfgmgr
在您原来的问题中),都有一个 post 安装脚本,包括以下片段:
pkg_postinst_${PN} () {
if test "x$D" != "x" then
# Need to run on first boot
exit 1
fi
}
(至少类似的东西,exit 1
)。
我的示例中的条件检查 pkg_postinst
脚本在 rootfs 创建期间是否正在 运行,如果是,它以 1
作为退出状态退出。这意味着 pkg_postinst
必须 运行 存在于目标系统上。但是,由于目标系统是 read-only
,这是不可能的,构建失败。
您必须检查 pkg_postinst
脚本,并重写它们,以便它们能够 运行 在 rootfs 创建期间。