[Bug 2095518] Re: dracut-install does not install compressed wildcard blobs

Dave Jones 2095518 at bugs.launchpad.net
Mon Feb 3 15:11:08 UTC 2025


I suspect this is one for @bdrung particularly to review, but I'll offer
some general observations:

My first question is: is dracut the right place to solve this? If
modinfo is reporting files that don't exist, and the kernel packaging is
the thing that's creating compressed modules in the first place, is kmod
a more appropriate place to fix this?

Assuming dracut *is* the right place fix this: Are .xz and .zst the only
possible extensions that dracut will have to handle? This is probably
more relevant for the upstream PR, but are other compression formats
possible (.gz, .bz2, and so on)? To avoid ballooning the number of file
existence checks potentially needed, should this be configurable by
platform to limit the checks to compression regimes they select?

Finally, as the intention appears to be to SRU this to earlier releases,
the SRU template [1] will need to be followed. However, it's probably
premature to go through this until a fix has landed in development.

[1]: https://canonical-sru-docs.readthedocs-
hosted.com/en/latest/reference/bug-template/#reference-sru-bug-template

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2095518

Title:
  dracut-install does not install compressed wildcard blobs

Status in dracut package in Ubuntu:
  In Progress
Status in dracut source package in Jammy:
  In Progress
Status in dracut source package in Noble:
  In Progress
Status in dracut source package in Oracular:
  In Progress
Status in dracut source package in Plucky:
  In Progress

Bug description:
  [Describe the bug]

  Take kernel module intel-ish-ipc for example, it has two firmware
  declarations:

  ```
  $ modinfo intel-ish-ipc | grep ^firmware
  firmware: intel/ish/ish_*.bin
  firmware: intel/ish/ish_lnlm.bin
  ```

  And with additional custom ISH firmware installed from [bug
  2094768](https://bugs.launchpad.net/bugs/2094768), update-initramefs
  gives:

  ```
  $ update-initramefs -v -u -k $(uname -r)
  ...
  dracut-install: Missing firmware intel/ish/ish_*.bin for kernel module intel_ish_ipc
  dracut-install: mkdir '/var/tmp/mkinitramfs_9uk7FI/lib/firmware/intel/ish'
  dracut-install: cp '/lib/firmware/intel/ish/ish_lnlm_39ceeaf8_58.7724.2.bin.zst' '/var/tmp/mkinitramfs_9uk7FI/lib/firmware/intel/ish/ish_lnlm_39ceeaf8_58.7724.2.bin.zst'
  dracut-install: ln -s 'ish_lnlm_39ceeaf8_58.7724.2.bin.zst' '/var/tmp/mkinitramfs_9uk7FI/lib/firmware/intel/ish/ish_lnlm.bin.zst'
  ...
  ```

  In source code for `/usr/lib/dracut/dracut-install`, that is, source
  package dracut, file `src/install/dracut-install.c`, function
  `install_firmware`, it tries to invoke `glob()` with full path
  expanded from "intel/ish/ish_*.bin", but while all the binaries were
  compressed, this matches no file and none of the custom ISH firmware
  blobs will be installed.

  [Distribution used]

  Ubuntu

  [Dracut version]

  This was first found in Ubuntu/Noble, which has 060, but from the git
  history and the differences, this should be reproducible with all
  versions of dracut.

  [Init system]

  Systemd.

  [To Reproduce]

  1. touch `/lib/firmware/intel/ish/ish_foo.bin.zst`
  2. `update-initramefs -v -u -k $(uname -r)`, and check if above file was added.

  [Expected behavior]

  Any file under `/lib/firmware/intel/ish` matches
  `intel/ish/ish_*.bin`, compressed (.zst, .xz) or uncompressed (.bin),
  should be added into the newly created initramefs.

  [Additional context]

  Upstream bug: https://github.com/dracut-ng/dracut-ng/issues/1150

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dracut/+bug/2095518/+subscriptions




More information about the Ubuntu-sponsors mailing list