Saya memiliki peluncur roket USB yang ingin saya coba libusb
. Namun, libusb tidak dapat mengklaim antarmuka; mungkin karena keluaran dari usb-devices
daftar 'usbhid' sebagai driver untuk perangkat.
Dari membaca di internet, saya hanya sampai pada kesimpulan bahwa saya perlu melepaskan driver ini dari perangkat sehingga saya dapat menggunakannya dengan libusb. Namun, saya belum menemukan satu cara pasti untuk melakukan itu, hanya beberapa ide dan laporan bug yang berbeda.
Jadi, apakah ada cara untuk melepaskan driver usbhid dari perangkat yang akan relevan dengan kernel dan alat-alat yang disertakan dengan Ubuntu 11.04?
EDIT:
Saya mencoba membuat file
/etc/udev/rules.d/10-usbhid.rules
dan menulis yang berikut ini:
ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0701", OPTIONS=="ignore_device"
Menyimpan, lalu me-reboot. File tersebut masih ada, tetapi tampaknya tidak berfungsi sama sekali.
EDIT:
Oke, saya coba ini:
sudo -i
echo -n "0003:0A81:0701.0006" > /sys/bus/hid/drivers/generic-usb/unbind
Setelah itu, navigasikan ke /sys/bus/hid/devices/0003♥A81/0701.0006 dan ls menghasilkan:
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
Itu tidak lagi mencantumkan symlink "driver" seperti sebelumnya, jadi saya akan berasumsi bahwa itu tidak mengikatnya. Namun, semua bukti tampaknya menunjukkan bahwa pengemudi masih usbhid. Misalnya usb-devices menghasilkan:
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 masih mengembalikan -1 pada usb_claim_interface () ....