Как добавить 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