[PATCH] initramfs: Restore default "generate-initrd" logic in initramfs.bbclass

2 views
Skip to first unread message

Zhihang Wei

unread,
Dec 9, 2025, 6:50:16 AM (19 hours ago) Dec 9
to isar-...@googlegroups.com, w...@ilbers.de, quirin.g...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, christop...@siemens.com
After 78d42de "rootfs: rework no-generate-initrd rootfs feature", the logic
for adding "generate-initrd" feature was moved from image.bbclass to
rootfs.bbclass. This feature controls whether the initrd(initramfs) is
generated and deployed under build/tmp/deploy/images/. By default, this
feature is not added.

However, initramfs.bbclass also inherits rootfs.bbclass. As a result, builds
of initramfs recipes, such as isar-initramfs.bb, no longer generate or deploy
an initrd image. The test case test_var_image_initrd has failed.

This patch adds "generate-initrd" feature back to initramfs.bbclass, and
cleans up incorrect conflict resolving in c3c4e72.

Signed-off-by: Zhihang Wei <w...@ilbers.de>
---
meta/classes-recipe/image.bbclass | 3 +++
meta/classes-recipe/initramfs.bbclass | 1 +
meta/classes-recipe/rootfs.bbclass | 4 ----
3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass
index 24a23808..2c8beefa 100644
--- a/meta/classes-recipe/image.bbclass
+++ b/meta/classes-recipe/image.bbclass
@@ -48,6 +48,9 @@ python() {
d.setVar('INITRD_DEPLOY_FILE', initrd_image)
}

+# Generate and deploy debian default initrd if no custom initrd needs to be built
+ROOTFS_FEATURES += "${@ 'generate-initrd' if (d.getVar('INITRD_IMAGE') == '' and d.getVar('IMAGE_INITRD') == '') else ''}"
+
# This variable is used by wic and start_vm
KERNEL_IMAGE ?= "${IMAGE_FULLNAME}-${KERNEL_FILE}"

diff --git a/meta/classes-recipe/initramfs.bbclass b/meta/classes-recipe/initramfs.bbclass
index 85b07f28..7d4ae523 100644
--- a/meta/classes-recipe/initramfs.bbclass
+++ b/meta/classes-recipe/initramfs.bbclass
@@ -27,6 +27,7 @@ DEPENDS += "${INITRAMFS_INSTALL}"

ROOTFSDIR = "${INITRAMFS_ROOTFS}"
ROOTFS_FEATURES = "generate-manifest"
+ROOTFS_FEATURES += "generate-initrd"
ROOTFS_PACKAGES = "${INITRAMFS_GENERATOR_PKG} ${INITRAMFS_PREINSTALL} ${INITRAMFS_INSTALL}"

# validate whether there are incompatible packages in the installation list
diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass
index eb5645af..cbb658dd 100644
--- a/meta/classes-recipe/rootfs.bbclass
+++ b/meta/classes-recipe/rootfs.bbclass
@@ -23,8 +23,6 @@ ROOTFS_INITRAMFS_GENERATOR_CMD = "${@ d.getVar('ROOTFS_INITRAMFS_GENERATOR_CMDLI
ROOTFS_INITRAMFS_GENERATOR_CMDLINE = "${@ initramfs_generator_cmdline(d)}"
ROOTFS_BASE_DISTRO ?= "${BASE_DISTRO}"

-IMAGE_INITRD ?= ""
-
# Features of the rootfs creation:
# available features are:
# 'clean-package-cache' - delete package cache from rootfs
@@ -32,8 +30,6 @@ IMAGE_INITRD ?= ""
# 'export-dpkg-status' - exports /var/lib/dpkg/status file to ${ROOTFS_DPKGSTATUS_DEPLOY_DIR}
# 'clean-log-files' - delete log files that are not owned by packages
# 'populate-systemd-preset' - enable systemd units according to systemd presets
-# 'generate-initrd' - generate debian default initrd
-ROOTFS_FEATURES += "${@ 'generate-initrd' if d.getVar('IMAGE_INITRD') == '' else ''}"

ROOTFS_APT_ARGS="install --yes -o Debug::pkgProblemResolver=yes"

--
2.39.5

Reply all
Reply to author
Forward
0 new messages