首页 > 解决方案 > 在 wic 图像中包含 tar.bz 图像

问题描述

我希望 tar.bz 映像包含在 wic 映像中,这是一个安装程序 wic 映像

我有:

IMAGE_FSTYPES += "tar.bz2"
do_image_wic[depends] += "${IMAGE_BASENAME}:do_image_tar"
IMAGE_BOOT_FILES += "${IMAGE_BASENAME}-${MACHINE}.tar.bz2;upgrade.bz2"

所以首先制作 tar.bz,但是......它没有在制作 wic 图像时部署,它位于:

build_output/work/device-type-linux/yocto-image-release/1.0-r0/deploy-yocto-image-release-image-complete/yocto-image-release-device-type-20190611214913.rootfs.tar.bz2

它不会出现在部署目录中,直到图像 yocto-image-release:do_deploy 之后,这自然发生在 wic 构建之后(现在失败)。

有没有一种安全的方法可以访问 wic 成像器?我猜工作共享不会有任何好处https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#structure-build-work-shared

拥有一个取决于 yocto-image-release.bb:do_deploy 的新 installer.bb 是更好的方法,以便它可以找到碎片然后制作自己的 wic?

标签: yoctobitbakeopenembedded

解决方案


一种解决方案似乎涉及BBCLASSEXTEND这样我可以构建bitbake yocto-image-releasebitbake yocto-image-installer修改配方(或父类)以包括:

BBCLASSEXTEND += "installer"
DEPENDS_installer += "${BPN}"

并在installer.bbclass

CLASSOVERRIDE = "installer"

然后我可以用 _installer 后缀覆盖值,尽管可能需要做很多工作来中和本机配方的大部分配置和方法,因为(目前)我想要构建的只是一个带有系统自己内核的 wic。

毫无疑问,以后它将拥有自己的内核配置和 initramfs,因为安装程序是专门的。

这看起来不错,因为有各种图像(-dev、-debug 等)可能都需要安装程序。但我还是想知道-installer这两个是不是太紧了


推荐阅读