Кастомное ядро: не загружается прошивка при встроенном модуле


9

Я хотел бы иметь все мои модули встроенными, но это не с iwlagn:

iwlagn 0000:03:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed.
iwlagn 0000:03:00.0: no suitable firmware found!

Файл микрокода существует, /lib/firmwareи все работает отлично, если я скомпилирую iwlagnкак модуль. Понятия не имею, где он ищет файл или что не так - есть идеи?


Сделать новый ответ вместо комментария; EXTRA_FIRMWARE_DIR соответствует расположению BLOB-объектов прошивки в среде сборки; не цель. см. ( cateee.net/lkddb/web-lkddb/EXTRA_FIRMWARE_DIR.html )
orpheuswasrebornhere

Ответы:


10

Посмотрите на CONFIG_FIRMWARE_IN_KERNEL, CONFIG_EXTRA_FIRMWAREи CONFIG_EXTRA_FIRMWARE_DIRпараметры конфигурации (найдены в драйверах устройств -> Generic Driver Options ).

Первый вариант позволяет встроить встроенное ПО в ядро, второй должен содержать имя файла встроенного ПО (или разделенный пробелами список имен), а третий - где искать встроенное ПО.

Итак, в вашем примере вы бы установили эти параметры на:

CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE='iwlwifi-6000-4.ucode'
CONFIG_EXTRA_FIRMWARE_DIR='/lib/firmware'

Совет : сборка всех модулей в ядре не очень хорошая идея . Я думаю, что понимаю ваши амбиции, потому что в какой-то момент я тоже отчаянно пытался это сделать. Проблема такого подхода состоит в том, что вы не можете выгрузить модуль, когда он встроен, и, к сожалению, особенно беспроводные драйверы имеют тенденцию к глючению, что приводит к необходимости перезагрузки их модулей. Кроме того, в некоторых случаях модуль версии последнего драйвера просто не будет работать.


Это больше не правда. Драйверы Intel стабильны и работают отлично в течение нескольких дней без необходимости ручного вмешательства.
LtWorf

EXTRA_FIRMWARE работает только на 64-битных ядрах согласно документации
arven
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.