我正在寫一個USB驅動程序,我有一個問題。 當我用先前插入的設備對驅動程序進行insmod時,不會調用探測功能。只有在斷開設備並再次插入設備後纔會調用它。 我想使它在我的電腦開啓時已經插入設備。Linux的USB驅動程序:探測已經插入的設備
有人能幫我嗎?
我正在寫一個USB驅動程序,我有一個問題。 當我用先前插入的設備對驅動程序進行insmod時,不會調用探測功能。只有在斷開設備並再次插入設備後纔會調用它。 我想使它在我的電腦開啓時已經插入設備。Linux的USB驅動程序:探測已經插入的設備
有人能幫我嗎?
從文檔/驅動程序模型/ binding.txt:
在添加新設備時,驅動程序的總線的列表遍歷 找到一個支持它。爲了確定該設備的設備ID必須與驅動程序 支持的其中一個設備ID匹配。用於比較ID的格式和語義是總線特定的。
來自同一來源:
的過程是當添加了新的驅動器,用於幾乎相同。 總線的設備列表被迭代以找到匹配。已經有驅動程序的設備 被跳過。所有設備重複執行 ,以將盡可能多的設備綁定到驅動程序。
因此,看起來您在ID匹配方面存在問題,即您的USB總線特定情況,請參閱drivers/usb/core/driver.c中的usb_device_match函數。
或者您的設備可能已經被綁定到拔下設備時被卸載的設備(您可以通過控制是否在相應的/ sys/bus/usb/xxxxx目錄)
「或者可能是您的設備已經綁定到拔下設備時卸載的設備(您可以通過控制是否在相應的/ sys/bus/usb/xxxxx目錄)「
如果有符號鏈接?
這可以通過爲您的設備編寫適當的udev規則來解決。在/etc/udev/rules.d/中查找示例
在內核啓動後插入設備,然後加載驅動程序與在引導時加載驅動程序(已插入設備)之間存在差異。這兩種情況都不起作用嗎?如果您在插入設備後加載模塊,AFAIK將無法工作。 – Bandan 2010-06-17 19:55:54