Even though the changes were announced in emails from Arch Linux, for some reason, many people have had problems with the latest update: in the Arch Linux subreddits on Reddit people complaining like “Everything is broken, what should I do now?”
Let’s see how to complete the upgrade and what exactly has changed.
Contents
The issue: linux-firmware exists in filesystem
Actually, the error looks like this:
$ sudo pacman -Syu ... (363/363) checking for file conflicts [############################################################################################] 100% error: failed to commit transaction (conflicting files) linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad103 exists in filesystem linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad104 exists in filesystem linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad106 exists in filesystem linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad107 exists in filesystem Errors occurred, no packages were upgraded.
The email from Arch Linux looked like this:
The link is here>>>.
The message says that:
With 20250613.12fe085f-5, we split our firmware into several vendor-focused packages. linux-firmware is now an empty package depending on our default set of firmware.
And it is explicitly stated what needs to be done – just reinstall the linux-firmware
package .
Remove the existing one:
$ sudo pacman -Rdd linux-firmware
And then install it again:
$ sudo pacman -Syu linux-firmware
The cause: what was changed?
What’s in the new package? What has changed?
The linux-firmware
package itself contains the necessary files for the hardware to work, but which are not included in the Linux kernel or in the Arch Linux ISO image.
As the email says, now instead of a single package with all the files, it will be split into several different “vendor-focused packages”.
The version (or “tag”?) of the new package is 20250627
and the old one is 20250508
.
You can see what exactly was installed with the latest update:
$ grep linux-firmware /var/log/pacman.log [2025-05-27T15:03:52+0000] [PACMAN] Running 'pacman -r /mnt -Sy --config=/tmp/pacman.conf.2hxk --disable-sandbox --cachedir=/mnt/var/cache/pacman/pkg --noconfirm base linux linux-firmware grub efibootmgr networkmanager sudo vim iwd dhcpcd openssh' [2025-05-27T15:04:18+0000] [ALPM] installed linux-firmware-whence (20250508.788aadc8-2) [2025-05-27T15:04:18+0000] [ALPM] installed linux-firmware (20250508.788aadc8-2) [2025-07-05T15:24:51+0300] [PACMAN] Running 'pacman -Rdd linux-firmware' [2025-07-05T15:24:52+0300] [ALPM] removed linux-firmware (20250508.788aadc8-2) [2025-07-05T15:25:10+0300] [PACMAN] Running 'pacman -Syu linux-firmware' [2025-07-05T15:25:26+0300] [ALPM] upgraded linux-firmware-whence (20250508.788aadc8-2 -> 20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-amdgpu (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-atheros (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-broadcom (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-cirrus (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-intel (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-mediatek (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-nvidia (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-other (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-radeon (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware-realtek (20250627-1) [2025-07-05T15:25:26+0300] [ALPM] installed linux-firmware (20250627-1)
In fact, we can see that now we have a dedicated package linux-firmware-nvidia
, which contains:
$ bsdtar -tf /var/cache/pacman/pkg/linux-firmware-nvidia-20250627-1-any.pkg.tar.zst | head .BUILDINFO .MTREE .PKGINFO usr/ usr/lib/ usr/lib/firmware/ usr/lib/firmware/nvidia/ usr/lib/firmware/nvidia/ad102/ usr/lib/firmware/nvidia/ad102/gsp/ usr/lib/firmware/nvidia/ad102/gsp/booter_load-535.113.01.bin.zst
Or with pacman
:
$ pacman -Ql linux-firmware-nvidia | head linux-firmware-nvidia /usr/ linux-firmware-nvidia /usr/lib/ linux-firmware-nvidia /usr/lib/firmware/ linux-firmware-nvidia /usr/lib/firmware/nvidia/ linux-firmware-nvidia /usr/lib/firmware/nvidia/ad102/ linux-firmware-nvidia /usr/lib/firmware/nvidia/ad102/gsp/ linux-firmware-nvidia /usr/lib/firmware/nvidia/ad102/gsp/booter_load-535.113.01.bin.zst linux-firmware-nvidia /usr/lib/firmware/nvidia/ad102/gsp/booter_load-570.144.bin.zst linux-firmware-nvidia /usr/lib/firmware/nvidia/ad102/gsp/booter_unload-535.113.01.bin.zst linux-firmware-nvidia /usr/lib/firmware/nvidia/ad102/gsp/booter_unload-570.144.bin.zst
The old one can be found in the cache:
$ ls -lt /var/cache/pacman/pkg/linux-firmware-20250508* -rw-r--r-- 1 root root 310 May 24 08:41 /var/cache/pacman/pkg/linux-firmware-20250508.788aadc8-2-any.pkg.tar.zst.sig -rw-r--r-- 1 root root 287519592 May 24 08:40 /var/cache/pacman/pkg/linux-firmware-20250508.788aadc8-2-any.pkg.tar.zst
And what exactly was in it:
$ bsdtar -tf /var/cache/pacman/pkg/linux-firmware-20250508.788aadc8-2-any.pkg.tar.zst | grep nvidia | head usr/lib/firmware/brcm/brcmfmac4354-sdio.nvidia,p2371-2180.txt.zst usr/lib/firmware/nvidia/ usr/lib/firmware/nvidia/ad102/ usr/lib/firmware/nvidia/ad102/gsp/ usr/lib/firmware/nvidia/ad102/gsp/booter_load-535.113.01.bin.zst usr/lib/firmware/nvidia/ad102/gsp/booter_unload-535.113.01.bin.zst usr/lib/firmware/nvidia/ad102/gsp/bootloader-535.113.01.bin.zst usr/lib/firmware/nvidia/ad102/gsp/gsp-535.113.01.bin.zst usr/lib/firmware/nvidia/ad103/ usr/lib/firmware/nvidia/ad103/gsp
Actually, finish the update as usual, reboot, and everything works.
What to do in the future?
- subscribe to the newsletter: https://lists.archlinux.org/mailman3/lists/arch-announce.lists.archlinux.org/
- and may install the
informant
package – it checks Arch News and adds a hook for pacman, which will stop the upgrade if there are any unresolved issues