For anyone who comes across this issue and wants a relatively easy workaround: 1. Create a new directory, like `/usr/local/lib/firmware` for example 2. Add this path to the firmware loader: `echo -n /usr/local/lib/firmware > /sys/module/firmware_class/parameters/path` 3. The kernel will now search `/usr/local/lib/firmware` for the relevant firmware files before searching other locations. To make it even easier, I created a script called `/usr/local/lib/firmware/local-firmware.sh` which does step 2, then I created `/etc/modprobe.d/iwlwifi.conf` and added the following line: `install iwlwifi /usr/local/lib/firmware/local-firmware.sh && /sbin/modprobe --ignore-install iwlwifi` What this does is tell modprobe that in order to install the iwlwifi module, run the `local-firmware.sh` script first, then run `/sbin/modprobe --ignore-install iwlwifi` (we need `--ignore-install` to ignore the `install` line we just added, otherwise it will run itself which runs itself, etc. forever). This way, attempting to load the iwlwifi module will automatically add `/usr/local/lib/firmware` to our firmware path first. You can do the same thing with any other kernel module (or any other command). Caveats: 1. The shell script you write runs automatically as root without confirmation whenever the system tries to load the module, so make sure it's somewhere that only root can access/edit/run it. 2. This only works if the module, script, and firmware are all accessible; if you're trying to do this with a kernel module which loads in the initrd phase it may be significantly more complex to implement as you'll need to copy the firmware and the script to the initrd for it to work. -- You received this bug notification because you are subscribed to linux in Ubuntu. Matching subscriptions: Bgg, Bmail, Nb https://bugs.launchpad.net/bugs/2150769 Title: pc-kernel snaps are missing some intel firmware but it also cannot be installed by users manually Status in canonical-kernel-snaps: Confirmed Status in boot-managed-by-snapd package in Ubuntu: New Status in linux package in Ubuntu: Invalid Status in linux-firmware-intel-wireless package in Ubuntu: Invalid Bug description: I described in detail here, in case I miss anything in this description: https://discourse.ubuntu.com/t/the-pc-kernel-snap- on-26-04-prevents-users-from-installing-additional-firmware/81404 This bug report is pretty wordy so here's a top-line summary: 1. The pc-kernel snap uses an unfortunately unreliable method of including firmware, which means some firmware gets missed 2. The apt dependencies of `boot-managed-by-snapd` preclude installing `linux-firmware` but do not preclude installing any other firmware packages making it possible to break your system in a pretty dramatic way that many users might have a very difficult time figuring out or resolving. Reproduction steps: 1. Install Ubuntu using the `pc-kernel` snap rather than apt kernel packages 2. Install the `linux-firmware-intel-wireless` package Okay, now on to the verbose part of the bug report which I hope is at least partially understandable. Circumstance: 1. I'm running Ubuntu 26.04 using the pc-kernel snapo (because of hardware FDE I guess) 2. My laptop has a pretty new Arrow Lake chipset with an Intel wifi adapter 3. My wifi doesn't work What I discovered while debugging: the `iwlwifi` module won't load properly because it can't find the firmware file it wants, as it is not present in the `pc-kernel` snap, so wifi doesn't work. This took me in a few different directions and this is what I found: * Unspecified incompatibility between pc-kernel and additional firmware packages First, the pc-kernel snap creates symlinks to everything in its 'firmware' directory into the filesystem that gets mounted at /usr/lib/firmware, but it links everything at the top-level. That means firmware can be added to e.g. /usr/lib/firmware/somefile.fw, because that's a directory, but not /usr/lib/firmware/intel/somefile.fw because /usr/lib/firmware/intel is a symlink to a directory on the squashfs filesystem. This means that installing the `linux-firmware-intel-wireless` package, which has the firmware I need: 1. Breaks when trying to install because it tries to write some files to /usr/lib/firmware/intel/ 2. Refuses to uninstall until it's installed correctly, because dpkg recognizes it as being in an extremely broken state. I say 'unspecified' because `boot-managed-by-snapd` explicitly conflicts with `linux-firmware` (showing the intention to not allow both at once), but it does not conflict with any additional firmware packages. * Incomplete firmware inventory in the pc-kernel snap I dug into it a bit and found that the pc-kernel snap builds using the following steps: 1. Get the kernel and the modules together 2. Ask each module what firmware it wants (via `modinfo`) 3. Bundle those firmwares into the pc-kernel snap Unfortunately, for whatever reason, the `iwlwifi` firmware does not specify the firmware that my system seems to insist on, which is `bz-b0-fm-c0-c101.ucode`, so it does not get included into the pc- kernel snap. The `linux-firmware-intel-wireless` debian package *does* include this firmware, presumably because it just includes all available Intel wireless firmware unconditionally. ProblemType: Bug DistroRelease: Ubuntu 26.04 Package: linux-image-7.0.0-14-generic (not installed) ProcVersionSignature: Ubuntu 7.0.0-14.14-generic 7.0.0 Uname: Linux 7.0.0-14-generic x86_64 ApportVersion: 2.34.0-0ubuntu2 Architecture: amd64 AudioDevicesInUse: USER PID ACCESS COMMAND /dev/snd/controlC2: dan 6392 F.... wireplumber /dev/snd/controlC1: dan 6392 F.... wireplumber /dev/snd/controlC0: dan 6392 F.... wireplumber /dev/snd/seq: dan 6354 F.... pipewire CasperMD5CheckMismatches: ./EFI/boot/bootx64.efi ./EFI/boot/grubx64.efi ./EFI/boot/mmx64.efi CasperMD5CheckResult: fail CurrentDesktop: ubuntu:GNOME Date: Thu Apr 30 10:29:41 2026 MachineType: Dell Inc. Dell Pro Max 14 Premium MA14250 ProcEnviron: LANG=en_US.UTF-8 PATH=(custom, no user) SHELL=/bin/zsh TERM=xterm-ghostty XDG_RUNTIME_DIR=<set> ProcFB: 0 i915drmfb ProcKernelCmdLine: snapd_recovery_mode=run console=ttyS0,115200n8 console=tty1 panic=-1 quiet splash snapd.xkb="us,pc105,," RebootRequiredPkgs: Error: path contained symlinks. SourcePackage: linux UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 12/11/2025 dmi.bios.release: 1.7 dmi.bios.vendor: Dell Inc. dmi.bios.version: 1.7.1 dmi.board.name: 06XRHN dmi.board.vendor: Dell Inc. dmi.board.version: A02 dmi.chassis.type: 10 dmi.chassis.vendor: Dell Inc. dmi.ec.firmware.release: 1.6 dmi.modalias: dmi:bvnDellInc.:bvr1.7.1:bd12/11/2025:br1.7:efr1.6:svnDellInc.:pnDellProMax14PremiumMA14250:pvr:rvnDellInc.:rn06XRHN:rvrA02:cvnDellInc.:ct10:cvr:sku0D32:pfaDellProMaxLaptops: dmi.product.family: Dell Pro Max Laptops dmi.product.name: Dell Pro Max 14 Premium MA14250 dmi.product.sku: 0D32 dmi.sys.vendor: Dell Inc. To manage notifications about this bug go to: https://bugs.launchpad.net/canonical-kernel-snaps/+bug/2150769/+subscriptions
Комментариев нет:
Отправить комментарий