Generate initrd for all installed kernels

Message ID 20250828061733.3320270-1-amikan@ilbers.de
State Under Review
Headers show
Series Generate initrd for all installed kernels | expand

Commit Message

Anton Mikanovich Aug. 28, 2025, 6:17 a.m. UTC
Since commit 2f27a20f, we support multiple kernels on target.

Generate initrd for all of them instead of some random choice.

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 meta/classes/rootfs.bbclass | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Comments

Felix Moessbauer Aug. 29, 2025, 7:29 a.m. UTC | #1
On Thu, 2025-08-28 at 09:17 +0300, Anton Mikanovich wrote:
> Since commit 2f27a20f, we support multiple kernels on target.
> 
> Generate initrd for all of them instead of some random choice.

Reviewed-by: Felix Moessbauer <felix.moessbauer@siemens.com>

Felix

> 
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
>  meta/classes/rootfs.bbclass | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/meta/classes/rootfs.bbclass
> b/meta/classes/rootfs.bbclass
> index 7b7859b9..ebe3bf4a 100644
> --- a/meta/classes/rootfs.bbclass
> +++ b/meta/classes/rootfs.bbclass
> @@ -481,11 +481,13 @@ rootfs_generate_initramfs[progress] =
> "custom:rootfs_progress.InitrdProgressHand
>  rootfs_generate_initramfs() {
>      if [ -n "$(sudo find '${ROOTFSDIR}/boot' -type f -name
> 'vmlinu[xz]*')" ]; then
>          sudo -E chroot "${ROOTFSDIR}" sh -c '\
> -            mods_total="$(find /usr/lib/modules -type f -name
> '*.ko*' | wc -l)"; \
> -            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";'
> +            for kernel in /boot/vmlinu[xz]-*; do \
> +                export kernel_version=$(basename $kernel | cut -d'-'
> -f2-); \
> +                mods_total="$(find /usr/lib/modules/$kernel_version
> -type f -name '*.ko*' | wc -l)"; \
> +                echo "Total number of modules: $mods_total"; \
> +                echo "Generating initrd for kernel version:
> $kernel_version"; \
> +                update-initramfs -u -v -k "$kernel_version"; \
> +            done;'
>          if [ -n "${INITRD_DEPLOY_FILE}" ]; then
>              if [ -f "${ROOTFSDIR}/initrd.img" ]; then
>                  # debian (mkinitramfs)
> -- 
> 2.34.1

Patch

diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index 7b7859b9..ebe3bf4a 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -481,11 +481,13 @@  rootfs_generate_initramfs[progress] = "custom:rootfs_progress.InitrdProgressHand
 rootfs_generate_initramfs() {
     if [ -n "$(sudo find '${ROOTFSDIR}/boot' -type f -name 'vmlinu[xz]*')" ]; then
         sudo -E chroot "${ROOTFSDIR}" sh -c '\
-            mods_total="$(find /usr/lib/modules -type f -name '*.ko*' | wc -l)"; \
-            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";'
+            for kernel in /boot/vmlinu[xz]-*; do \
+                export kernel_version=$(basename $kernel | cut -d'-' -f2-); \
+                mods_total="$(find /usr/lib/modules/$kernel_version -type f -name '*.ko*' | wc -l)"; \
+                echo "Total number of modules: $mods_total"; \
+                echo "Generating initrd for kernel version: $kernel_version"; \
+                update-initramfs -u -v -k "$kernel_version"; \
+            done;'
         if [ -n "${INITRD_DEPLOY_FILE}" ]; then
             if [ -f "${ROOTFSDIR}/initrd.img" ]; then
                 # debian (mkinitramfs)