Не зважаючи на те, що про зміни було повідомлено в листах від Arch Linux – чомусь дуже у багатьох виникли проблеми з останнім апдейтом: в сабредітах по Arch Linux на Reddit прям через один топік питають “Аааа, в мене все зламалось, що робити?!?”.
Глянемо як все ж завершити апгрейд, і що саме мінялось.
Зміст
The issue: linux-firmware exists in filesystem
Власне, помилка виглядає так:
$ 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.
Лист від Arch Linux виглядав так:
Посилання – тут>>>.
В повідомленні говориться, що:
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.
І явно вказано, що треба зробити – просто перевстановити пакет linux-firmware
.
Видаляємо існуючий:
$ sudo pacman -Rdd linux-firmware
І встановлюємо заново:
$ sudo pacman -Syu linux-firmware
The cause: what was changed?
А що в новому пакеті? Що змінилось?
Сам пакет linux-firmware
містить необхідні файли для роботи hardware, але які не включені в ядро Linux чи в ISO-образ Arch Linux.
Як говориться в листі – тепер замість єдиного пакета з усіма файлами – він буде розбитий на кілька різних, “vendor-focused packages“.
Версія (чи “тег”?) нового пакету – 20250627
, а старого – 20250508
.
Можна глянути що саме було встановлено з останнім апдейтом:
$ 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)
Власне і бачимо, що тепер у нас є пачка пакетів типу linux-firmware-nvidia
, який містить в собі:
$ 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
Або з 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
А старий можна подивитись в кеші:
$ 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
І що саме було в ньому:
$ 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
Власне, закінчуємо апдейт як завжди, ребутаємось – все працює.
What to do in the future?
- підписатись на розсилку: https://lists.archlinux.org/mailman3/lists/arch-announce.lists.archlinux.org/
- встановити пакет
informant
– він перевіряє Arch News і додає hook для pacman, який зупинить апгрейд, якщо є якісь not resolved issues