2010-12-10 76 views
0

我有一個需要它,而無需等待重新枚舉加載已經被插入內核

的使用情況是這樣的 被insmoded後裝載一個USB內核模塊USB驅動程序 - 構建並insmod內核模塊。 - 用戶必須插入USB設備,那麼他/她預計該設備工作 -The驅動程序存在(modprobe的秀),但沒有加載,因此USB設備無法正常工作

是否有辦法我可以強制內核重新啓動一個給定的設備,我目前正在查看libusb,它似乎通過發佈IOCTL來實現類似的事情。

+0

也許這是你使用'負載',這是混淆問題。運行insmod加載一個內核模塊。如果一個模塊出現lsmod,它已經被加載。模塊沒有檢測到USB設備是否需要解決問題? – ctuffli 2010-12-12 15:43:48

+0

沒有我的模塊正在檢測USB設備,但爲了讓它出現在lsmod中,我需要拔下並重新插入。當然,這種情況只發生一次,就在驅動程序被嵌入後。 – Stb 2010-12-13 20:33:37

回答

0

我對你的問題有點困惑。

您的設備的驅動程序應支持「探測」呼叫。當新設備插入時,較低級別的USB驅動程序將檢測並枚舉設備。找到每個設備後,它會調用所有已註冊USB驅動程序的探測功能,並傳遞新找到的設備的引用。這使得每個驅動程序都有機會「自稱」設備,如果它認爲它應該用於驅動設備。

此枚舉將在設備插入時自動發生 - 或者(簡單地說)當新的USB模塊被加載並註冊時。

+0

假設沒有當前加載的驅動程序聲明該設備。如果新的USB驅動程序稍後在系統中註冊,它是否會自動獲得聲稱該設備的聲音? – Karmastan 2010-12-11 06:20:43

+0

是的,絕對 - 當新的USB驅動程序註冊時,它會爲未聲明的設備發送「民意調查」。 – Brad 2010-12-13 15:02:02

+0

嗯..有趣的是我沒有看到..我的驅動程序中可能存在一個錯誤。 – Stb 2010-12-13 20:35:18