カスタムカーネル:モジュールが組み込まれていると、ファームウェアをロードできません。

カスタムカーネル:モジュールが組み込まれていると、ファームウェアをロードできません。

すべてのモジュールをビルドしたいが失敗します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ファイルをどこで探しているのか、何が間違っているのかわかりません。どんなアイデアがありますか?

答え1

オプションの表示CONFIG_FIRMWARE_IN_KERNELと設定(場所CONFIG_EXTRA_FIRMWARECONFIG_EXTRA_FIRMWARE_DIRデバイスドライバ - >一般ドライバオプション)。

最初のオプションはファームウェアをカーネルに構築できるようにし、2番目のオプションにはファームウェアファイル名(またはスペースで区切られた名前のリスト)を含める必要があり、3番目のオプションにはファームウェアファイル名を含める必要があります。

したがって、あなたの例では、これらのオプションを次のように設定します。

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

アドバイスの一言:すべてのモジュールをカーネルにコンパイルするのは良い考えではありません。。私はあなたの野心を理解していると思います。なぜならいつか私もこれをしたかったからです。このアプローチの問題は、モジュールが組み込まれたら削除できないことです。残念ながら、特にワイヤレスドライバには、モジュールを再ロードする必要があるバグがある傾向があります。また、最新ドライバのモジュールバージョンが動作しない場合もあります。

関連情報