@@ -4,7 +4,31 @@ LICENSE = "MIT"
INITRAMFS_SCRIPTS ?= "initramfs-framework-base initramfs-module-udev"
-PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} base-passwd"
+inherit image
+
+PACKAGE_INSTALL = " \
+ ${VIRTUAL-RUNTIME_base-utils} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd-initramfs', ' \
+ base-files \
+ coreutils \
+ e2fsprogs-mke2fs \
+ kernel-initrd-modules \
+ os-release-initrd \
+ util-linux-blkid \
+ util-linux-mount \
+ util-linux-umount \
+ ${VIRTUAL-RUNTIME_init_manager} \
+ ${VIRTUAL-RUNTIME_dev_manager} \
+ ', '${INITRAMFS_SCRIPTS}', d)} \
+ base-passwd \
+"
+
+# reduce size
+NO_RECOMMENDATIONS = "1"
+
+# don't install automatically, pick manually instead
+MACHINE_EXTRA_RDEPENDS = ""
+MACHINE_EXTRA_RRECOMMENDS = ""
# Ensure the initramfs only contains the bare minimum
IMAGE_FEATURES = ""
@@ -18,5 +42,3 @@ IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
IMAGE_NAME_SUFFIX ?= ""
IMAGE_ROOTFS_SIZE = "8192"
IMAGE_ROOTFS_EXTRA_SPACE = "0"
-
-inherit image
If "systemd-initramfs" is in DISTRO_FEATURES then convert core-image-initramfs-boot from shell scripts to systemd. The resulting initramfs is much bigger than shell script one but supports much more features like disk encryption and TPM devices. Also includes udev which can load any drivers needed to mount rootfs. Uses kernel-initrd-modules meta package to install a subset of kernel modules needed for mounting rootfs on multiple platforms. Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> --- .../images/core-image-initramfs-boot.bb | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-)