Сразу к делу: linux-firmware — это огромный набор бинарных прошивок для самого разного железа, от видеокарт AMD до Wi-Fi-адаптеров Intel. Пакет обновляется почти при каждом обновлении системы, потому что в него складывают новые и исправленные прошивки для GPU, Wi-Fi, Bluetooth, сетевых карт, NVMe и звука. Обновлять его нужно: без свежих прошивок новое железо может не завестись, а старое — работать с багами. Если после обновления что-то сломалось, пакет откатывается за пару команд.
linux-firmware — коллекция бинарных файлов, которые ядро загружает в устройства при старте. Сами прошивки лежат в /usr/lib/firmware. Ядро не умеет «разговаривать» с большинством устройств напрямую: видеокарте, Wi-Fi-чипу или NVMe-контроллеру нужен свой микрокод, который загружается в память устройства при инициализации.
Пакет linux-firmware — зависимость пакета linux, поэтому он ставится практически в любой системе Arch Linux автоматически. Даже если ты не ставил его руками, он уже есть. Удалять его нельзя: без прошивок часть железа просто не заработает.
Важно не путать прошивку и драйвер. Драйвер — это модуль ядра, код, который работает в системе и управляет устройством. Прошивка — это код, который загружается внутрь самого устройства и выполняется на его собственном процессоре. Модуль ядра запрашивает файл прошивки по имени, ядро находит его в /usr/lib/firmware и передаёт устройству. Поэтому обновление прошивки не требует пересборки ядра или модулей: достаточно положить новый файл на место.
Каталог /usr/lib/firmware занимает сотни мегабайт и содержит тысячи файлов. Там прошивки для:
Отдельно живут подпакеты для редкого старого железа: linux-firmware-bnx2x, linux-firmware-qlogic и другие. Они не ставятся по умолчанию. Если у тебя древняя сетевая карта Broadcom или QLogic — поставь соответствующий подпакет, иначе устройство не заработает.
Видеокарты AMD — главный потребитель прошивок. Для каждой модели GPU в пакете лежит несколько файлов: микрокод, таблицы powerplay (настройки питания и температур), прошивки для дисплейного движка и видеодекодера. Обновления amdgpu-прошивок часто приносят исправления для новых карт, а иногда — правки поведения вентиляторов и энергопотребления.
Intel Wi-Fi — второй по важности блок. Прошивки iwlwifi обновляются часто: в них правят стабильность соединения, поддержку новых стандартов и роуминг. Аналогично для Qualcomm (ath11k, ath12k), MediaTek (mt76) и Realtek (rtw88). Если после обновления Wi-Fi стал отваливаться — первое подозрение именно на свежую прошивку.
Для новых видеокарт NVIDIA в linux-firmware тоже лежат прошивки: они нужны драйверу nouveau и загрузке GSP-микроконтроллера. Проприетарный драйвер NVIDIA обычно приносит свои прошивки в пакете nvidia, но для свежих карт без файлов из linux-firmware nouveau не заведётся. Если у тебя видеокарта NVIDIA и ты используешь nouveau — обновление linux-firmware может изменить поведение карты.
Bluetooth-контроллеры (особенно у Qualcomm и Realtek) тоже получают прошивки в linux-firmware. Проводные сетевые карты Realtek (r8169) — частый источник обновлений: там правят проблемы с отключением линка и скоростью. Плюс в пакет попадают прошивки для NVMe, USB4/Thunderbolt и звуковых чипов.
Никакой магии: linux-firmware обновляется обычным pacman -Syu вместе со всем остальным. Отдельных действий не требуется. Прошивки загружаются при инициализации устройств, поэтому после обновления пакета стоит перезагрузиться — иначе новая прошивка применится только при следующей загрузке.
Обновление linux-firmware не требует пересборки initramfs и не трогает загрузчик. Пакет просто заменяет файлы в /usr/lib/firmware. Единственное, что стоит сделать после обновления, — перезагрузиться, чтобы устройства инициализировались с новыми прошивками.
Прошивок в пакете тысячи, и каждая живёт своей жизнью. Кто-то из разработчиков чипов исправил баг в прошивке Wi-Fi, кто-то добавил поддержку новой видеокарты — всё это попадает в очередной релиз linux-firmware. Пакет выходит часто, потому что это «сырьё» для всего железа сразу. Частота обновлений — норма, а не признак нестабильности.
Самая частая беда — регрессия: новая прошивка для твоего конкретного адаптера оказывается хуже старой. Типичные симптомы:
Важно понимать: прошивки в linux-firmware собираются со всего мира, и разработчики не могут протестировать их на каждом адаптере. Новая прошивка может быть написана под новую ревизию чипа, а на старой ревизии работать хуже. Это нормально и лечится откатом.
Отдельная история — amdgpu. В прошивках зашиты таблицы powerplay: пороги температур, кривые вентиляторов, лимиты мощности. После обновления карта может начать греться сильнее или, наоборот, тише крутить вентиляторы. Это не поломка, а новые настройки от производителя. Если поведение не нравится — можно откатить пакет или настроить параметры через драйвер.
Сначала посмотри версию пакета:
pacman -Q linux-firmware
Затем узнай, какие прошивки запрашивает твой Wi-Fi-модуль:
modinfo -F firmware iwlwifi
Команда выведет список файлов, которые нужны модулю. Для видеокарты AMD:
modinfo -F firmware amdgpu
А что реально загрузилось при старте, покажет dmesg:
dmesg | grep -i firmware
В выводе будут строки вида Direct firmware load for iwlwifi-... failed. Если такие есть — ядро не нашло нужный файл. Причины: пакет не обновлён, модуль новее пакета или устройство требует прошивку, которой ещё нет в linux-firmware.
Посмотреть, какие файлы прошивок реально лежат в системе для твоего адаптера, можно так:
ls /usr/lib/firmware | grep iwlwifi
Сравни список файлов с тем, что запрашивает modinfo. Если файл из вывода modinfo отсутствует в каталоге — вот и причина предупреждений.
Если регрессия появилась сразу после обновления, проще всего откатить linux-firmware. Сначала проверь, есть ли старая версия в кэше pacman:
ls /var/cache/pacman/pkg/linux-firmware*
Если есть — ставь её:
sudo pacman -U /var/cache/pacman/pkg/linux-firmware-<версия>.pkg.tar.zst
Кэша нет — качай нужную версию с archive.archlinux.org. Общая схема отката пакета разобрана в статье «Откат обновления GRUB» — она применима к любому пакету, не только к загрузчику.
Если регрессия повторяется при каждом обновлении, можно временно закрепить старую версию через IgnorePkg в /etc/pacman.conf:
IgnorePkg = linux-firmware
Но не забывай про эту строку: через пару месяцев сними пакет из списка и попробуй обновиться снова — к тому времени проблему наверняка починят.
Если нужна самая свежая прошивка (например, для нового железа, которое ещё не попало в стабильный пакет), собери linux-firmware-git из AUR:
yay -S linux-firmware-git
Пакет собирает прошивки прямо из git-репозитория linux-firmware. Минус — обновляется часто и может быть менее стабильным. Для повседневной системы обычно хватает обычного пакета.
Иногда достаточно подложить конкретный старый файл. Скачай старую версию пакета, распакуй её и скопируй нужный файл в /usr/lib/firmware:
tar -xf linux-firmware-<старая-версия>.pkg.tar.zst
sudo cp usr/lib/firmware/iwlwifi-*.ucode /usr/lib/firmware/
Чтобы pacman не перезаписал файл при следующем обновлении, добавь его в NoUpgrade в /etc/pacman.conf:
NoUpgrade = usr/lib/firmware/iwlwifi-*.ucode
Категорически не стоит чистить каталог /usr/lib/firmware вручную, чтобы «освободить место». Часть прошивок нужна не только ядру, но и другим компонентам. Удаление лишнего файла может сломать устройство, которое ты не используешь сейчас, но подключишь завтра. Если место реально нужно — ищи другие кандидаты на очистку.
Сначала проверь, видит ли система адаптер: ip link. Если адаптер на месте, но не подключается — откати пакет. Если адаптера нет вообще — возможно, проблема не в прошивке, а в модуле. Похожая ситуация разобрана в статье «Пропал модуль Wi-Fi после обновления».
Да. Прошивки загружаются при инициализации устройств, то есть при загрузке системы. Чтобы новая прошивка применилась, перезагрузись. Для некоторых устройств хватает перезагрузки модуля, но проще и надёжнее перезагрузить систему целиком.
Технически можно, но не нужно. Пакет — зависимость ядра, и без него часть железа не заработает. Экономия места не стоит проблем. Если хочется уменьшить размер — есть выборочные варианты, но это экзотика для продвинутых.
Обычный пакет обновляется по релизам, linux-firmware-git собирается из git-репозитория и содержит самые свежие прошивки. Для нового железа git-версия может быть единственным способом завести устройство. Для стабильной системы обычного пакета достаточно.
Ядро запрашивает файл прошивки, которого нет в /usr/lib/firmware. Причины: пакет не обновлён, модуль новее пакета или устройство требует прошивку, которой нет в linux-firmware (например, для совсем нового железа). Проверь dmesg | grep -i firmware и сверь с modinfo -F firmware <модуль>.
linux-firmware — незаметный, но важный пакет: он обновляет прошивки для GPU, Wi-Fi, Bluetooth и сетевых карт. Обновлять его нужно, а при регрессии — откатить за пару команд. Проверяй dmesg и modinfo, не удаляй /usr/lib/firmware руками — и железо будет работать как надо.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии