[Bug 2095518] Re: dracut-install does not install compressed wildcard blobs
You-Sheng Yang
2095518 at bugs.launchpad.net
Wed Jan 22 15:15:46 UTC 2025
Jammy doesn't seem to support per blob zst compression, but it still has
the same problem with xz compressed blobs.
** Description changed:
+ [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,
- update-initramefs gives:
+ 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
+ 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
** Also affects: dracut (Ubuntu Jammy)
Importance: Undecided
Status: New
** Also affects: dracut (Ubuntu Oracular)
Importance: Undecided
Status: New
** Also affects: dracut (Ubuntu Plucky)
Importance: Undecided
Status: New
** Also affects: dracut (Ubuntu Noble)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to dracut in Ubuntu.
Matching subscriptions: dracut
https://bugs.launchpad.net/bugs/2095518
Title:
dracut-install does not install compressed wildcard blobs
Status in dracut package in Ubuntu:
New
Status in dracut source package in Jammy:
New
Status in dracut source package in Noble:
New
Status in dracut source package in Oracular:
New
Status in dracut source package in Plucky:
New
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 foundations-bugs
mailing list