2010-03-29 124 views
1

如果我在Linux上使用修改後的usb skeleton驅動程序,並且在已插入USB設備的情況下insmod模塊,則不會調用探測功能。我需要拔下並重新插入設備才能激活驅動程序。 這不適用於例如串口驅動程序,我做了一些測試。 這是有原因嗎?我如何獲得調用函數來調用?如果設備已插入,Linux USB驅動程序探測器不會調用

回答

1

我們的一些軟件是從/ proc/bus/usb打開設備,並且設備被usbfs驅動程序聲明,因此新驅動程序無法聲明設備。

3

幾乎所有USB HID設備都由usbhid驅動程序自動管理。請嘗試以下操作:

sudo rmmod usbhid 
sudo insmod your_driver 
sudo insmod usbhid 
2

你可能需要從USBHID解除綁定您的設備並將其綁定到你的驅動程序:

  • 試圖找到賊司機:/sys/bus/usb/drivers/usbhid/
  • 解除綁定:echo -n "1-1:1.0" > /sys/bus/usb/drivers/usbhid/unbind
  • 綁定您的設備:
    • echo <vendor> <product> > /sys/bus/usb/drivers/my_driver/new_id 或者您已經擁有總線ID:
    • echo -n "1-1:1.0" > /sys/bus/usb/drivers/my_driver/bind

看到http://www.ha19.no/usb/ 看到http://lwn.net/Articles/143397/

相關問題