The pc-kernel snap on 26.04 prevents users from installing additional firmware

Ubuntu Version: 26.04

Problem Description:
(concise reproduction steps are below the long-winded explanation)

The iwlwifi driver on my Arrow Lake laptop won’t work properly without the right firmware, but the correct firmware isn’t included in the pc-kernel snap. The firmware is included in the package linux-firmware-intel-wireless which is available from apt; this is also true of other Intel firmware, as well as other firmware from multiple other vendors.

The wireless package includes tons of files, including files like /usr/lib/firmware/intel/ibt-0040-1020.ddc.zst

Unfortunately, /usr/lib/firmware is full of symlinks to /snap/pc-kernel/3402/firmware, and, even more unfortunately, the process of doing so appears to link each thing in /snap/pc-kernel/3402/firmware to /usr/lib/firmware - which means that /usr/lib/firmware/intel is a symlink to /snap/pc-kernel/3402/firmware/intel, which is a read-only squashfs filesystem.

This means that when dpkg tries to unpack /usr/lib/firmware/intel/ibt-0040-1020.ddc.zst from the firmware archive it fails because it’s trying to write to a squashfs filesystem. It then becomes broken so badly that dpkg won’t even try to remove the file either; it says you have to finish installing it before it can be removed, which can’t be done.

In reality, you can delete /usr/lib/firmware/intel and replace it with a directory, and then dpkg is fine. Then you can symlink all of the firmware that’s supposed to be there back into there, and then it all gets deleted the next time you reboot and now your drivers don’t work anymore until you jump through these hoops again.

I suspect that whatever process is creating these symlinks could be updated to create directories and symlink into them rather than just blindly symlinking those directories, but this feels like the sort of thing that could bite a lot of people who use the pc-kernel snap (unwillingly) and need updated firmware.

Alternately, the pc-kernel snap could be updated to include the firmware that is already available in apt.

Concise reproduction steps:

  1. Install Ubuntu 26.04 using the pc-kernel snap
  2. sudo apt-get install linux-firmware-intel-wireless

Relevant System Information:
I doubt it’s relevant, but I’m running a Dell Pro Max 14 Professional with an Intel Arrow Lake CPU, the Ultra 7 265H. Presumably this issue should be reproducible everywhere.

Screenshots or Error Messages:

$ sudo apt install --reinstall linux-firmware-intel-wireless
Summary:
  Upgrading: 0, Installing: 0, Reinstalling: 1, Removing: 0, Not Upgrading: 6
  Download size: 0 B / 102 MB
  Space needed: 0 B / 696 GB available

(Reading database… 230423 files and directories currently installed.)
Preparing to unpack …/linux-firmware-intel-wireless_20260319.git217ca6e4-0ubuntu2_all.deb…
Unpacking linux-firmware-intel-wireless (20260319.git217ca6e4-0ubuntu2) over (20260319.git217ca6e4-0ubuntu2)…
dpkg: error processing archive /var/cache/apt/archives/linux-firmware-intel-wireless_20260319.git217ca6e4-0ubuntu2_all.deb (--unpack):
 unable to create '/usr/lib/firmware/intel/ibt-0040-0041.ddc.zst.dpkg-new' (while processing './usr/lib/firmware/intel/ibt-0040-0041.ddc.zst'): Read-only file system
dpkg: error while cleaning up:
 unable to remove newly-extracted version of '/usr/lib/firmware/intel/ibt-0040-0041.ddc.zst': Read-only file system
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/linux-firmware-intel-wireless_20260319.git217ca6e4-0ubuntu2_all.deb
Error: Sub-process /usr/bin/dpkg returned an error code (1)

What I’ve Tried:
It works to, as I said, remove the intel symlink and replace it with a directory full of symlinks instead.

Before Posting:
:mag: Please check if similar issues have already been reported and resolved.

(I couldn’t find anyone talking about this)

2 Likes

Use ubuntu-bug linux and report this to the developers.

IIRC the linux-firmware package got split into smaller packages during 26.04 development, most likely it is an oversight that the Intel one was not pulled into the snap at build time, should be a quick fix I assume…

5 Likes

I actually dug into this a bit more and it seems like what might be happening is:

  1. The Ubuntu kernel snap pulls in the kernel and packages it
  2. Then, for each module, it runs modinfo <module> and greps for firmware: to see which firmwares the module is looking for
  3. It adds all of those firmwares to the snap

Unfortunately, for some reason, the firmware file that my card seems to want isn’t one listed explicitly by modinfo iwlwifi so it doesn’t get pulled into the snap.

So I think there’s actually two bugs here:

  1. The module doesn’t reference all available firmwares/the snap doesn’t bundle all available firmwares
  2. The additional firmware apt packages don’t conflict with the boot-managed-by-snapd package the way the linux-firmware package does, meaning apt thinks it can install them but can’t.

Maybe the additional firmware packages should depend on the linux-firmware package as well. Will break this up into a few bug reports for the team.

3 Likes

This seems to be a blocker for me to on a new install on 2026 XPS Dell Laptop.

I haven’t investigated fully, but I have a similar situation with the sound device firmware too, not just the WIFI interface firmware. After install, there is no working network or sound, because the firmware fails to load. Sadly that means I cannot use TPM backed FDE right now on this device.

Please share URLs for the bug retorts when you’ve created them @danudey , and I can add some info too.

Cheers,

Just

2 Likes

Kudos @danudey for investigating!

Same issue on Dell XPS 13 (2024, Intel Lunar Lake platform). iwlwifi and sof firmwares appear to be missing from pc-kernel, hence no wireless networking nor sound working upon installing Ubuntu 26.04 with TPM-based FDE.

Same on Dell XPS 16 (2024, Meteor Lake). Both sof and ipu6 firmware are missing.

For some reason, the iwlwifi firmware was initially missing, too, but is now present.

FWIW, to get back to a functional apt state after trying to install the APT packages and failing due to the read-only FS:

sudo dpkg --remove --force-remove-reinstreq  firmware-sof-signed

Otherwise, every apt and dpkg interaction seems too fail with variants of

$ sudo dpkg -r firmware-sof-signed
dpkg: error processing package firmware-sof-signed (--remove):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
Errors were encountered while processing:
 firmware-sof-signed

Link to bug report opened by @danudey : https://bugs.launchpad.net/ubuntu/+bug/2150769

3 Likes