Yocto-为WIC创建对cpio.gz图像的依赖关系



我正在创建一个小型Yocto发行版,它应该在tmpfs的RAM中工作。我以以下方式使用WIC配置:

part /boot --source bootimg-efi --sourceparams="loader=grub-efi,initrd=${PN}-${MACHINE}.cpio.gz,file=${PN}-${MACHINE}.cpio.gz" --ondisk sda --label msdos --active --align 1024
bootloader --ptable gpt --timeout=0 --append="rootfstype=tmpfs rootflags=size=2G console=ttyS0,115200 console=tty0"

我还将IMAGE_FSTYPES_append = " cpio.gz "添加到我的local.conf中,这样它就可以从我的rootfs构建cpio.gz档案。

我的问题很简单——当WIC运行时,它试图在创建rootfscpio.gz之前创建WIC文件,因此构建失败。我需要的是创建一个依赖项,它将保存WIC脚本,直到cpio.gz准备好为止。有人知道如何实现它吗?例如,可以使用WKS_FILE_DEPENDS吗?

以下是故障:

| ERROR: _exec_cmd: cp .../poky/build/tmp/deploy/images/genericx86-64/core-image-minimal-genericx86-64.cpio.gz .../poky/build/tmp/work/genericx86_64-poky-linux/core-image-minimal/1.0-r0/deploy-core-image-minimal-image-complete/core-image-minimal-genericx86-64-20191121151711/tmp.wic.k00ckxmk/hdd/boot returned '1' instead of 0
| output: cp: cannot stat '.../poky/build/tmp/deploy/images/genericx86-64/core-image-minimal-genericx86-64.cpio.gz': No such file or directory

目前,我通过在构建后手动运行wic工具来绕过这个问题。为此,我不得不在local.conf中使用IMAGE_FSTYPES_remove = " wic wic.bmap hddimg "。运行wic的命令是:

wic create ../meta-mylayer/wic/myimage.wks -e core-image-minimal

谢谢!

编辑:也许问题不在于创建所需的依赖项,而在于我创建图像的方式?我只想要一个UEFI引导、一个内核和一个带有完整rootfs的cpio.gz文件,该文件将在引导时挂载。这不是initramfs,而是我需要的一个完整的rootfs。除了有问题的依赖性之外,生成的图像正是我所需要的。

您可以通过两种方式指定与WIC的依赖关系。

  1. 使用do_image_wic:创建wic的最终任务是do_image_wic。因此,您可以将创建initrd/initramfs映像的依赖项添加到该任务中,如下所示

do_image_wic[depends] += "image-base-initramfs:do_image_complete"

你需要在你的WIC图像创建配方中指定这一点。对于这个例子,

DESCRIPTION = "My image"
inherit core-image
export IMAGE_BASENAME = "image-base"
IMAGE_FSTYPES = "wic.xz"
DEPENDS += "image-base-initramfs"
do_image_wic[depends] += "image-base-initramfs:do_image_complete"
WKS_FILES = "my.wks"

这里,CCD_ 9用于使用CCD_ 10来创建WIC。它等待initramfs完成构建。在image-base-initramfs中,您将创建initramfs映像。

此外,您还可以在使用kernel fitImage时使用INITRAMFS_IMAGE来执行此操作。

  1. 使用WKS_FILE_DEPENDS:在创建WIC映像之前,您可以将任何位烘焙配方添加到依赖项中。将image-base-initramfs添加到此变量将等待它完成initramfs映像。当在WIC创建中依赖引导加载程序完成时,我们也有WKS_FILE_DEPENDS_BOOTLOADERS

相关内容

  • 没有找到相关文章

最新更新