`update-kernel`: `iwlwifi` firmware files don't get included by default
When doing an update-kernel
, firmware files (NOT kernel modules) for iwlwifi
are missing in the generated initramfs. These files have an extension of .ucode.zst
and are included in linux-firmware-other
. This means that, by default, alpine diskless installs will not be able to access wifi on many intel cards.
The problem seems to be caused that firmware files (in /lib/firmware
) are never extracted in update-kernel
, so they are never found.
We analyze the files needed for each module using modprobe
, but that lists files that uncompressed and they are not found, since they are actually still compressed (.zst
).
Hence a solution would be to uncompress the firmware files right after uncompressing the kernel modules here: https://gitlab.alpinelinux.org/alpine/alpine-conf/-/blob/master/update-kernel.in?ref_type=heads#L282-286
An interesting problem is that quite a lot of the files in the firmware files are actually symbolic links, so what will need to be done for them is to rename them (remove the .zst
extension) and then update the path of the file they point to by also removing the .zst
extension. I'm not that familiar with shell scripts to do this part.