Linux
linux如何為內置驅動模組載入韌體
我了解到韌體子系統使用 udevd 將韌體複製到創建的 sysfs ‘data’ 條目。
但是,如果 udevd 尚未啟動的內置驅動程序模組,這將如何工作?
我正在使用 3.14 核心。
蒂亞!
我通讀了核心原始碼,尤其是
drivers/base/firmware_class.c
,發現CONFIG_FW_LOADER_USER_HELPER
將啟動
udev
韌體載入變體(顯然僅在 udev 執行時可用於可載入模組)。但正如LKML中提到的,這似乎是一種過時的方法。此外,確切地說,內置模組所需的韌體是通過 a 載入
initramfs
的fw_get_filesystem_firmware()
。kernel_read()
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