Message ID | 20250905113014.2765493-4-Quirin.Gylstorff@siemens.com |
---|---|
State | New |
Headers | show |
Series | Add support for dracut | expand |
On 05.09.25 13:27, Quirin Gylstorff wrote: > From: Quirin Gylstorff <quirin.gylstorff@siemens.com> > > This is in preparation to support additional initramfs generators > like dracut. > > Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com> > --- > meta/classes/rootfs.bbclass | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass > index 7b7859b9..d3fb44c9 100644 > --- a/meta/classes/rootfs.bbclass > +++ b/meta/classes/rootfs.bbclass > @@ -5,7 +5,16 @@ inherit deb-dl-dir > > ROOTFS_ARCH ?= "${DISTRO_ARCH}" > ROOTFS_DISTRO ?= "${DISTRO}" > + > +def initramfs_generator_cmd(d): > + return 'update-initramfs' > + > +def initramfs_generator_cmdline(d): > + return "update-initramfs -u -v -k \"$kernel_version\"" Why functions, why not strings? > + > ROOTFS_PACKAGES ?= "" > +ROOTFS_INITRAMFS_GENERATOR_CMD ?= "${@ initramfs_generator_cmd(d)}" How about deriving the initramfs_generator_cmd string from initramfs_generator_cmdline? It should be the first word of the latter. > +ROOTFS_INITRAMFS_GENERATOR_CMDLINE ?= "${@ initramfs_generator_cmdline(d)}" > ROOTFS_BASE_DISTRO ?= "${BASE_DISTRO}" > > # Features of the rootfs creation: > @@ -183,7 +192,7 @@ rootfs_disable_initrd_generation[weight] = "1" > rootfs_disable_initrd_generation() { > # fully disable initrd generation > sudo mkdir -p "${ROOTFSDIR}${ROOTFS_STUBS_DIR}" > - sudo cp -a ${ROOTFSDIR}/usr/bin/true ${ROOTFSDIR}${ROOTFS_STUBS_DIR}/update-initramfs > + sudo cp -a ${ROOTFSDIR}/usr/bin/true ${ROOTFSDIR}${ROOTFS_STUBS_DIR}/${ROOTFS_INITRAMFS_GENERATOR_CMD} > } > > ROOTFS_INSTALL_COMMAND += "rootfs_install_pkgs_update" > @@ -485,11 +494,12 @@ rootfs_generate_initramfs() { > export kernel_version=$(basename /boot/vmlinu[xz]-* | cut -d'-' -f2-); \ > echo "Total number of modules: $mods_total"; \ > echo "Generating initrd for kernel version: $kernel_version"; \ > - update-initramfs -u -v -k "$kernel_version";' > + ${ROOTFS_INITRAMFS_GENERATOR_CMDLINE};' > if [ -n "${INITRD_DEPLOY_FILE}" ]; then > if [ -f "${ROOTFSDIR}/initrd.img" ]; then > # debian (mkinitramfs) > - cp ${ROOTFSDIR}/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} > + sudo cp ${ROOTFSDIR}/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} > + sudo chown $(id -u):$(id -g) ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} This huck is also new - reason? > else > # ubuntu (dracut) > cp ${ROOTFSDIR}/boot/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} Jan
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 7b7859b9..d3fb44c9 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -5,7 +5,16 @@ inherit deb-dl-dir ROOTFS_ARCH ?= "${DISTRO_ARCH}" ROOTFS_DISTRO ?= "${DISTRO}" + +def initramfs_generator_cmd(d): + return 'update-initramfs' + +def initramfs_generator_cmdline(d): + return "update-initramfs -u -v -k \"$kernel_version\"" + ROOTFS_PACKAGES ?= "" +ROOTFS_INITRAMFS_GENERATOR_CMD ?= "${@ initramfs_generator_cmd(d)}" +ROOTFS_INITRAMFS_GENERATOR_CMDLINE ?= "${@ initramfs_generator_cmdline(d)}" ROOTFS_BASE_DISTRO ?= "${BASE_DISTRO}" # Features of the rootfs creation: @@ -183,7 +192,7 @@ rootfs_disable_initrd_generation[weight] = "1" rootfs_disable_initrd_generation() { # fully disable initrd generation sudo mkdir -p "${ROOTFSDIR}${ROOTFS_STUBS_DIR}" - sudo cp -a ${ROOTFSDIR}/usr/bin/true ${ROOTFSDIR}${ROOTFS_STUBS_DIR}/update-initramfs + sudo cp -a ${ROOTFSDIR}/usr/bin/true ${ROOTFSDIR}${ROOTFS_STUBS_DIR}/${ROOTFS_INITRAMFS_GENERATOR_CMD} } ROOTFS_INSTALL_COMMAND += "rootfs_install_pkgs_update" @@ -485,11 +494,12 @@ rootfs_generate_initramfs() { export kernel_version=$(basename /boot/vmlinu[xz]-* | cut -d'-' -f2-); \ echo "Total number of modules: $mods_total"; \ echo "Generating initrd for kernel version: $kernel_version"; \ - update-initramfs -u -v -k "$kernel_version";' + ${ROOTFS_INITRAMFS_GENERATOR_CMDLINE};' if [ -n "${INITRD_DEPLOY_FILE}" ]; then if [ -f "${ROOTFSDIR}/initrd.img" ]; then # debian (mkinitramfs) - cp ${ROOTFSDIR}/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} + sudo cp ${ROOTFSDIR}/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} + sudo chown $(id -u):$(id -g) ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} else # ubuntu (dracut) cp ${ROOTFSDIR}/boot/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE}