ファームウェアサブシステムがudevdを使用して作成されたsysfs "データ"エントリにファームウェアをコピーすることがわかりました。
しかし、udevdがまだ組み込みドライバモジュールを起動していない場合はどうなりますか?
私は3.14カーネルを使用しています。
ティア!
答え1
私はカーネルのソースコード、特にを読んでdrivers/base/firmware_class.c
発見しました。
CONFIG_FW_LOADER_USER_HELPER
udev
ファームウェアロードバリアントを有効にします(明らかにudevランタイムのロード可能モジュールのみ)。しかし、上記のようにランカ・メレこれは時代に劣ったアプローチのようです。
また、正確に言えば、内蔵モジュールに必要なファームウェアinitramfs
はfw_get_filesystem_firmware()
。kernel_read()
答え2
CONFIG_FIRMWARE_IN_KERNEL
カーネル設定オプションを使用して、ファームウェアイメージCONFIG_EXTRA_FIRMWARE_DIR
をCONFIG_EXTRA_FIRMWARE
カーネル自体に構築できます。これは、実行時にユーザースペースでファームウェアを提供できない場合や提供したくない状況で役立ちます(たとえば、ブートデバイスにアクセスするには関連するファームウェアが必要で、initrdを使用したくない場合など)。
以下は、ファームウェアのロードに使用できるオプションの詳細な説明です。https://wiki.tizen.org/wiki/Usage_and_Mechanism_of_kernel_function_%22request_firmware()%22#Load_firmware_from_kernel_image