[4/8] dracut: use fixed log level on generation for progress reporting

Message ID 20260915100125.1991311-5-felix.moessbauer@siemens.com
State Under Review
Headers show
Series [1/8] rootfs: generalize deployment of rootfs artifact | expand

Commit Message

Felix Moessbauer Sept. 15, 2026, 10:01 a.m. UTC
The log level of dracut controls which logs are generated on stdout
during initrd building. Previously, we needed debug options to interface
with the parser, but these options were not set in all config files.
As the config files are part of the rootfs, they are out of our control
anyways. By that, progress reporting was broken on configs (like the
trixie default config) were the level was set too low.

We fix this by passing the log level on dracut invocation and also count
the number of dracut modules instead of copy operations, which gives a
better progress indication.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes-recipe/initrd-dracut.bbclass | 4 ++--
 meta/lib/rootfs_progress.py               | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

Patch

diff --git a/meta/classes-recipe/initrd-dracut.bbclass b/meta/classes-recipe/initrd-dracut.bbclass
index c2018f03..cf8bf937 100644
--- a/meta/classes-recipe/initrd-dracut.bbclass
+++ b/meta/classes-recipe/initrd-dracut.bbclass
@@ -53,11 +53,11 @@  def extend_dracut_cmdline(d):
         cmdline.append(f'--add "{extra_modules}"')
     return ' '.join(cmdline)
 
-ROOTFS_INITRAMFS_GENERATOR_CMDLINE = "dracut --force --kver $kernel_version"
+ROOTFS_INITRAMFS_GENERATOR_CMDLINE = "dracut --force --kver $kernel_version -L 5"
 ROOTFS_INITRAMFS_GENERATOR_CMDLINE:append = " ${@ extend_dracut_cmdline(d)}"
 
 run_initrd_generator() {
-    mods_total="$(find ${ROOTFSDIR}/usr/lib/modules/$kernel_version -type f -name '*.ko*' | wc -l)"
+    mods_total="$(find ${ROOTFSDIR}/usr/lib/dracut/modules.d/ -maxdepth 1 -type d | wc -l)"
     echo "Total number of modules: $mods_total (dracut)"
     run_in_chroot "${ROOTFSDIR}" sh -c "${ROOTFS_INITRAMFS_GENERATOR_CMDLINE}"
 }
diff --git a/meta/lib/rootfs_progress.py b/meta/lib/rootfs_progress.py
index 58d16574..67f44ede 100644
--- a/meta/lib/rootfs_progress.py
+++ b/meta/lib/rootfs_progress.py
@@ -83,8 +83,9 @@  class InitrdProgressHandler(PkgsProgressHandler):
     def process_line(self, line):
         if (
             line.startswith("Adding module")
-            or line.startswith("dracut-install: cp")
+            or line.startswith("dracut-install: cp")  # dracut-install output (Ubuntu)
             or line.startswith("dracut-install: Failed to find module")
+            or "Including module:" in line  # dracut output (debian)
         ):
             self._pkg += 1
         elif line.startswith('(excluding'):