Как решить проблемы с отсутствием микропрограмм в Arch Linux?

Вопрос или проблема

Привет, я новый пользователь Arch и у меня возникают такие проблемы. Я пытаюсь обновить свою прошивку, но ничего не решается. Я знаю, что они безвредны, но они тормозят ПК.

Я сталкиваюсь со следующими предупреждениями при выполнении sudo mkinitcpio -P на моей системе Arch Linux:

Возможно, отсутствует прошивка для модуля: 'xhci_pci'

Возможно, отсутствует прошивка для модуля: 'ast'

Возможно, отсутствует прошивка для модуля: 'bfa'

Возможно, отсутствует прошивка для модуля: 'qed'

Возможно, отсутствует прошивка для модуля: 'qla1280'

Возможно, отсутствует прошивка для модуля: 'aic94xx'

Возможно, отсутствует прошивка для модуля: 'wd719x'

Возможно, отсутствует прошивка для модуля: 'qla2xxx'

Возможно, отсутствует прошивка для модуля: 'xhci_pci_renesas'

Как я могу определить, необходимы ли эти файлы прошивки для моей системы и как устранить эти предупреждения?

Должен ли я игнорировать их, если у меня нет проблем с оборудованием?

Arch mkinitcpio -P может создавать несколько образов initramfs в зависимости от количества preset файлов, которые у вас есть в /etc/mkinitcpio.d/. По умолчанию каждый пресет может определять два изображения: по умолчанию — изображение, оптимизированное специально для вашей системы, и резервное изображение, которое включает все доступные модули ядра, чтобы позволить вам загрузить систему, даже если вы замените материнскую плату на другую модель или в противном случае внесете значительные изменения в свое оборудование.

Генерация резервного изображения, скорее всего, вызовет большинство ложных предупреждений о “недостающей прошивке”, так как она будет включать все модули, доступные в конфигурации ядра, а не только те, которые ваша система действительно нуждается прямо сейчас.

Чтобы получить больше информации о каждом модуле с отсутствующей прошивкой, сначала выполните:

sudo modinfo <имя модуля> | grep -e ^filename -e ^description -e ^alias -e ^firmware

Например:

$ sudo modinfo ast |grep -e ^filename -e ^description -e ^alias -e ^firmware

filename:       /lib/modules/<версия ядра>/kernel/drivers/gpu/drm/ast/ast.ko
description:    AST
firmware:       ast_dp501_fw.bin
alias:          pci:v00001A03d00002010sv*sd*bc03sc*i*
alias:          pci:v00001A03d00002000sv*sd*bc03sc*i*

Для этого модуля description настолько краток, что не дает ничего полезного, но путь в поле filename указывает, что это драйвер для графического процессора. Если в вашей системе нет GPU от AST или у вас есть, но он уже работает удовлетворительно, вам, очевидно, не нужна прошивка.

Строка firmware просто идентифицирует файл прошивки, который может понадобиться этому модулю. Если модуль поддерживает много устройств, файл прошивки может понадобиться только для некоторых из них.

Если ничего не помогает, из строк alias вы можете узнать vендор и dевайс ID, для которых этот модуль загружается автоматически: в этом случае PCI(e) устройства с ID вендора 1A03 и ID устройства 2010 или 2000. Вы можете найти их в Репозитории PCI ID для устройств PCI(e) или в Репозитории USB ID для USB устройств соответственно.

В этом примере поиск PCI ID вендора приводит к списку ID устройств. ID устройства 2000 точно соответствует Семье графических процессоров ASPEED, т.е. семье серверных чипов GPU+BMC+KVM. ID устройства 2010 не указан, но, вероятно, это новая версия подобного продукта.

Смотрите также: https://wiki.archlinux.org/title/Mkinitcpio#Possibly_missing_firmware_for_module_XXXX

Большинство модулей, которые вы перечислили, упоминаются в таблице на этой странице ArchWiki, вместе с информацией о том, где получить прошивку. Там также есть информация о том, как отключить генерацию резервного изображения.

Ответ или решение

Решение проблем с отсутствием прошивки в Arch Linux

Как новый пользователь Arch Linux, столкнуться с предупреждениями о возможном отсутствии прошивки — это довольно распространённое явление. Эти предупреждения, хотя и не являются критическими ошибками, могут вызывать некоторую тревогу и замедлять работу системы. Давайте подробно рассмотрим, как вы можете диагностировать и устранить эти проблемы.

Шаг 1: Понимание предупреждений

Команда sudo mkinitcpio -P, которая используется для создания образов initramfs, может генерировать предупреждения о недостатке прошивки для разных модулей, как вы уже заметили. Эти предупреждения могут указывать на прошивки, которые необходимы для определённого оборудования, но если ваше оборудование функционирует нормально, возможно, вам не нужно беспокоиться о них.

Пример предупреждений:
Possibly missing firmware for module: 'xhci_pci'
Possibly missing firmware for module: 'ast'
Possibly missing firmware for module: 'bfa'
...

Шаг 2: Проверка необходимых модулей

Для того чтобы понять, действительно ли требуется прошивка и для какого оборудования, вы можете запустить команду modinfo. Это поможет вам выяснить, для каких устройств может потребоваться прошивка.

sudo modinfo <имя_модуля> | grep -e ^filename -e ^description -e ^alias -e ^firmware
Пример:

Для модуля ast:

$ sudo modinfo ast |grep -e ^filename -e ^description -e ^alias -e ^firmware

filename:       /lib/modules/<версия_ядра>/kernel/drivers/gpu/drm/ast/ast.ko
description:    AST
firmware:       ast_dp501_fw.bin
alias:          pci:v00001A03d00002010sv*sd*bc03sc*i*

Данный вывод указывает, что модуль ast может потребовать файл прошивки ast_dp501_fw.bin. Если у вас нет GPU на основе AST или если система работает корректно, то прошивка вам не требуется.

Шаг 3: Поиск информации о прошивках

Если вы хотите выяснить, нужно ли вам действительно загружать прошивки, вы можете использовать идентификаторы устройств из строки alias, чтобы узнать, поддерживает ли ваше оборудование необходимую прошивку.

Чтобы найти информацию о PCI-устройствах, вы можете воспользоваться PCI ID Repository. В случае USB-устройств существует USB ID Repository.

Шаг 4: Установка прошивок

Если вы определили, что ваше устройство требует определённые прошивки, вы можете установить их с помощью пакетного менеджера pacman. Например:

sudo pacman -S linux-firmware

Этот пакет включает в себя прошивки, необходимые для большинства оборудования, и может решить ваши проблемы.

Шаг 5: Игнорирование предупреждений

Если ваше оборудование работает нормально и вы не замечаете каких-либо зависаний или проблем, вы можете лишь игнорировать эти предупреждения. Они не влияют на функциональность системы в большинстве случаев. Тем не менее, учитывайте, что производительность некоторых компонент может быть не на 100% из-за отсутствия специализированной прошивки.

Шаг 6: Отключение создания резервного образа

Если предупреждения вас беспокоят, вы можете изменить конфигурацию mkinitcpio, чтобы не генерировать резервный образ:

  1. Откройте конфигурационный файл:

    sudo nano /etc/mkinitcpio.conf
  2. Измените строку FALLBACK или удалите её, если оно не требуется.

  3. Сохраните изменения и выполните команду обновления:

    sudo mkinitcpio -P

Заключение

Таким образом, в большинстве случаев предупреждения о пропущенной прошивке в Arch Linux не являются критическими. Применяя методы диагностики, установки и потенциального игнорирования, можно минимизировать влияние этих сообщений на производительность вашей системы. Если вы хотите узнать больше о конкретных модулях, рекомендуется обратиться к ArchWiki, где представлена подробная информация о каждом из них.

Оцените материал
Добавить комментарий

Капча загружается...