我有一个USB火箭发射器,希望通过进行试验libusb
。但是,libusb无法声明该接口。大概是因为usb-devices
列表“ usbhid” 的输出是设备的驱动程序。
通过在互联网上阅读,我得出的结论是,我需要将该驱动程序与设备分离,以便可以在libusb中使用它。但是,我还没有找到一种确定的方式来做到这一点,只有几种不同的想法和错误报告。
因此,是否有一种方法可以将usbhid驱动程序从与Ubuntu 11.04随附的内核和工具相关的设备上分离出来?
编辑:
我尝试创建文件
/etc/udev/rules.d/10-usbhid.rules
并编写以下内容:
ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0701", OPTIONS=="ignore_device"
保存,然后重新启动。该文件仍然存在,但似乎根本无法正常工作。
编辑:
好的,我尝试了这个:
sudo -i
echo -n "0003:0A81:0701.0006" > /sys/bus/hid/drivers/generic-usb/unbind
之后,导航到/sys/bus/hid/devices/0003:0A81:0701.0006和ls会产生:
drwxr-xr-x 2 root root 0 2011-05-29 15:46 power
lrwxrwxrwx 1 root root 0 2011-05-29 13:19 subsystem -> ../../../../../../../../../bus/hid
-rw-r--r-- 1 root root 4096 2011-05-29 13:19 uevent
它不再像以前那样列出“驱动程序”符号链接,因此我认为它是未绑定的。但是,所有证据似乎都表明驾驶员仍然是usbhid。例如,usb-devices产生:
T: Bus=02 Lev=03 Prnt=07 Port=00 Cnt=01 Dev#= 9 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0a81 ProdID=0701 Rev=00.01
S: Manufacturer=Dream Link
S: Product=USB Missile Launcher v1.0
C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
libusb仍在usb_claim_interface()上调-1。