Ho un lanciarazzi USB con cui vorrei sperimentare libusb
. Tuttavia, libusb non può rivendicare l'interfaccia; presumibilmente perché l'output degli usb-devices
elenchi 'usbhid' come driver per il dispositivo.
Da leggere su Internet, sono giunto solo alla conclusione che ho bisogno di staccare questo driver dal dispositivo in modo da poterlo usare con libusb. Tuttavia, non ho trovato un modo unico per farlo, solo diverse idee e segnalazioni di bug.
Quindi, c'è un modo per staccare il driver usbhid da un dispositivo che sarebbe rilevante con il kernel e gli strumenti forniti con Ubuntu 11.04?
MODIFICARE:
Ho provato a creare il file
/etc/udev/rules.d/10-usbhid.rules
e scrivendo quanto segue:
ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0701", OPTIONS=="ignore_device"
Salvataggio, quindi riavvio. Il file è ancora lì, ma non sembra funzionare affatto.
MODIFICARE:
Ok, ho provato questo:
sudo -i
echo -n "0003:0A81:0701.0006" > /sys/bus/hid/drivers/generic-usb/unbind
Dopodiché, navigando su /sys/bus/hid/devices/0003:0A81:0701.0006 e si ottiene:
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
Non elenca più un collegamento simbolico "driver" come in precedenza, quindi suppongo che non sia associato. Tuttavia, tutte le prove sembrano suggerire che il driver sia ancora usbhid. Ad esempio i rendimenti dei dispositivi USB:
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 ritarda ancora -1 su usb_claim_interface () ....