Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yocto从fido升级到morty rootfs是只读错误_Yocto - Fatal编程技术网

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

Yocto从fido升级到morty rootfs是只读错误,yocto,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-im

因此,我的任务是将基于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手册,但是有太多的东西让我不知所措。

嗯,“问题”源于这样一个事实,即您的图像中有以下内容:

IMAGE_FEATURES += "read-only-rootfs"
这意味着在运行时,任何东西都不能修改rootfs,一切都必须离线完成,也就是说,在构建有问题的rootfs时

您的软件包
组件
adcl
cfgmgr
在您的原始问题中),都有一个安装后脚本,包括以下代码片段:

pkg_postinst_${PN} () {
  if test "x$D" != "x" then
     # Need to run on first boot
     exit 1
  fi
}
(至少与此类似,即退出1)

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


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

您知道fido和morty版本之间是否发生了值得检查的事情吗?像这样:不,我不记得了。您可能需要向我们展示
pkg\u postinst
脚本,以便跟踪导致此问题的原因。好吧,
[“x$D”!=“x”]&&exit 1
正是我所说的测试。允许您删除测试的简单更改是确保所有路径都以
$D/
作为前缀,例如
/download
,否则将引用您的生成机器。根据一些电子邮件,即使是
setcap
也应该能够在
do\u install
pkg\u postinst
期间运行。显然,您不能检查eg
/proc/swap
。。。希望这能给你一些提示。下一次,在你得到答案后,请不要通过重命名和删除东西来更改问题。@Anders好吧,很抱歉,我只是想删除组件名称,因为这些名称可能会被视为安全风险,在这个问题上并不重要。