如果我在 Linux 上使用修改后的 USB 骨架驱动程序,并且在已插入 USB 设备的情况下插入模块,则不会调用探测函数。我需要拔下并重新插入设备才能激活驱动程序。例如,情况并非如此。串行驱动程序,我做了一些测试。是否有一个原因?如何调用探针函数?

有帮助吗?

解决方案 3

这是我们从/ proc /总线/ USB打开设备和该设备是由驾驶员USBFS权利,所以新的驱动程序不能要求该设备的某些软件。

其他提示

几乎所有的USB HID设备被自动通过USBHID驱动程序来管理。尝试以下方法:

sudo rmmod usbhid
sudo insmod your_driver
sudo insmod usbhid

您可能需要取消设备与 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/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top