2010-03-29 126 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/

相关问题