1

我正在使用嵌入式Linux。如果在同一硬件的多個驅動程序存在的情況下,如何選擇啓動時要加載的驅動程序的一個版本?

有兩個USB小配件驅動程序構建爲LKM,g_ether.ko and g_file_storage.ko

我做了depmod,然後在modprobe -l這兩個驅動程序顯示在列表中。

kernel/drivers/usb/gadget/g_ether.ko 
kernel/drivers/usb/gadget/g_file_storage.ko 

的問題是,內核不加載在開機解剖學其一。

我的解決方案的確切方法是將啓動腳本添加到/etc/init.detc/rcX.d以強制g_ether.ko作爲默認驅動程序在啓動時加載。

是否有其他(更好)的方式使g_ether.ko默認驅動程序?

一個可能的解決方案是,我做g_ether.ko靜態驅動,使g_file_storage.ko的LKM,但我不知道如何關閉靜態驅動程序來釋放硬件以便其他LKM加載驅動程序。

有什麼建議嗎?

回答

2

用戶可以選擇使用USB外設控制器作爲以太網或存儲設備。因此,沒有用於自動客戶端驅動程序加載的相關硬件事件。

但有一種方法可以通過sysfs在用戶空間綁定/解除綁定驅動程序。看看這個:https://lwn.net/Articles/143397/

相關問題