我想在 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 一样简单