Как добавить firmware в initrd?

Igor Goldenberg igogold на gmail.com
Чт Мар 22 06:12:07 GMT 2007


Здравствуйте.

Есть Fiber Channel HBA адаптер (для системы - SCSI контроллер) QLogic,
который обслуживается модулем qla2xxx. Модуль для работы требует
firmware, который должен лежать в /lib/firmware/.

Если я после загрузки захожу в систему и вручную загружаю модуль
qla2xxx, то он нормально находит и подгружает нужный ему firmware.
Однако, этот модуль добавляется в initrd и загружается ещё до того,
как подмонтирован "правильный" корневой раздел. Таким образом, модуль
загружается, но не видит фирмвари и не подхватывает карточку. А раз он
остаётся загружен, то повторная загрузка его (скажем, если прописать в
/etc/modules) уже на самом деле ничего не выполняет.

По этому поводу я вижу 2 более-менее системных решения, и один "хак".

1. Запихать firmware в initrd (самый правильный, но как это сделать?)
2. Не запихивать qla2xxx в initrd (а как _только_его_ исключить из
добавления в initrd?)
3. В стартовых скриптах выгружать qla2xxx и загружать заново
(некрасиво это как-то...)

Можно, конечно, вручную запихать firmware в initrd, но это до первого
обновления ядра...

Что можете посоветовать в такой ситуации?


Подробная информация о списке рассылки ubuntu-ru