[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