
ファームウェア サブシステムは 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
カーネル設定オプションを使用して、ファームウェア イメージをカーネル自体に組み込むことができます。これは、実行時にユーザー空間からファームウェアを提供できない、または提供したくない場合に便利です (たとえば、問題のファームウェアがブート デバイスへのアクセスに必要であり、initrd を使用しない場合など)。CONFIG_EXTRA_FIRMWARE_DIR
CONFIG_EXTRA_FIRMWARE
ファームウェアのロードに使用できるオプションの詳細な説明は次のとおりです。https://wiki.tizen.org/wiki/Usage_and_Mechanism_of_kernel_function_%22request_firmware()%22#Load_firmware_from_kernel_image