Ich habe einen USB-Raketenwerfer, mit dem ich experimentieren möchte libusb
. Libusb kann die Schnittstelle jedoch nicht beanspruchen. vermutlich weil die Ausgabe von usb-devices
Listen 'usbhid' als Treiber für das Gerät.
Durch das Lesen im Internet bin ich nur zu dem Schluss gekommen, dass ich diesen Treiber vom Gerät trennen muss, damit ich ihn mit libusb verwenden kann. Ich habe jedoch keinen einzigen endgültigen Weg gefunden, nur einige verschiedene Ideen und Fehlerberichte.
Gibt es also eine Möglichkeit, den USBBID-Treiber von einem Gerät zu trennen, das für den Kernel und die mit Ubuntu 11.04 gelieferten Tools relevant ist?
BEARBEITEN:
Ich habe versucht, die Datei zu erstellen
/etc/udev/rules.d/10-usbhid.rules
und schreiben Sie Folgendes:
ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0701", OPTIONS=="ignore_device"
Speichern, dann neu starten. Die Datei ist noch vorhanden, scheint aber überhaupt nicht zu funktionieren.
BEARBEITEN:
Okay, ich habe es versucht:
sudo -i
echo -n "0003:0A81:0701.0006" > /sys/bus/hid/drivers/generic-usb/unbind
Wenn Sie danach zu /sys/bus/hid/devices/0003:0A81:0701.0006 navigieren, erhalten Sie:
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
Es wird kein "Treiber" -Symlink mehr wie zuvor aufgelistet, daher würde ich davon ausgehen, dass er nicht mehr gebunden ist. Alle Beweise scheinen jedoch darauf hinzudeuten, dass der Fahrer immer noch usbhid ist. Zum Beispiel ergibt USB-Geräte:
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 wiederholt -1 auf usb_claim_interface () ....