3

我想在 rootfs 中安装一个 initramfs /boot(与 wic 引导分区不同)。

在 rootfs/boot中,有一个内核映像,并安装了一个 fit 映像。

我没有将initramfs捆绑在内核中,而是放在fit image中,但是这个fit image是没有initramfs的。

我需要将 initramfs/boot放在 rootfs 上,但我没有找到正在安装这些的东西,或者是否有合法的方法可以在那里安装其他东西,或者我是否需要修补一些东西?

我希望有类似的东西IMAGE_BOOT_FILES,我可以从中指定额外的文件DEPLOY_DIR_IMAGE

作为一个额外的细节,我希望安装的 initramfs 不是使用 INITRAMFS_IMAGE 向内核配方声明的(用于包含适合图像的),而是可以单独构建的备用 initramfs。

但是我在指定依赖项时遇到了麻烦,所以这个额外的 initramfs 是单独构建的。

我尝试使用以下方法指定此 initramfs 配方的名称:

  • DISTRO_EXTRA_RDEPENDS
  • EXTRA_IMAGEDEPENDS
  • 包裹

编辑:部分答案似乎是 initramfs 是一个图像,因此它安装的任何东西(使用暂存)都将是其本身。

显然我需要遵循内核配方计划,这是依赖于 imitramfs 的不同配方,并且它已经产生了它的工件然后窃取它们


简单的答案是在顶级 yocto-image-base.bb 配方中使用类似的东西

ROOTFS_POSTPROCESS_COMMAND_append += "install_initramfs;"
install_initramfs() {
    cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.cpio.gz ${IMAGE_ROOTFS}/boot/
    ln -sf ${INITRAMFS_IMAGE}-${MACHINE}.cpio.gz ${IMAGE_ROOTFS}/boot/initramfs.gz
}

但我宁愿inherit staging用类似的东西重新添加到 initramfs bb 中:

addtask populate_sysroot after do_build before do_complete

重新引入图像配方的能力,以促进更高级别的 sysroot${DEPLOY_IMAGE_DIR}

将 initramfs 放入父 sysroot 中应该与 wic 放入 /boot 一样简单

4

0 回答 0