linux如何載入內建驅動模組的韌體

linux如何載入內建驅動模組的韌體

我了解到韌體子系統使用 udevd 將韌體複製到建立的 sysfs「資料」條目。

但是,如果 udevd 尚未啟動的內建驅動程式模組,這是如何運作的呢?

我使用的是 3.14 核心。

蒂亞!

答案1

我通讀了內核原始碼,特別是drivers/base/firmware_class.c,並發現

CONFIG_FW_LOADER_USER_HELPER 

將啟動udev韌體載入變體(顯然僅適用於 udev 運行時的可載入模組)。但正如上面所提到的蘭卡梅勒這似乎是一個過時的方法。

此外,準確地說,內建模組所需的韌體是透過 a 加載initramfsfw_get_filesystem_firmware()kernel_read()

答案2

可以使用CONFIG_FIRMWARE_IN_KERNELCONFIG_EXTRA_FIRMWARE_DIRCONFIG_EXTRA_FIRMWARE核心配置選項將韌體映像建置到核心本身。這對於您不能或不想在運行時從用戶空間提供固件的情況可能很有用(例如,當訪問引導設備需要相關固件,並且您不想使用 initrd 時) )。

以下是韌體載入可用選項的更詳細說明:https://wiki.tizen.org/wiki/Usage_and_Mechanism_of_kernel_function_%22request_firmware()%22#Load_firmware_from_kernel_image

相關內容