Fehlermeldung 'Schnittstelle nicht beansprucht' von libusb

8

Ich versuche libusb zu verwenden, bekomme aber folgende Fehlermeldung:

  

usbfs: Prozess 24665 (Myprogramm) beanspruchte die Schnittstelle 0 vor der Verwendung nicht

Ich verstehe nicht wirklich warum, denn soweit ich das beurteilen kann, mache ich es nach der Beschreibung in der Bibliothek. Hier ist mein Code:

%Vor%

Wie Sie sehen können, beanspruche ich die Schnittstelle vor der Übertragung. (Ich habe den gleichen Code auch mit anderen USB-Geräten ausprobiert, nur für den Fall, dass das etwas damit zu tun haben würde.)

Ich benutze libusb-1.0.9, welches die neueste Version ist, die ich finden konnte. Ich führe dieses Ding auf Ubuntu 12.04_64 (Präzises Pangolin).

    
Robert 18.06.2012, 18:18
quelle

3 Antworten

3

Probieren Sie calling libusb_set_debug(context, where_to) aus, um weitere Debug-Informationen von libusb zu erhalten. Das Where_to für die Nachrichten ist eine Ganzzahl:

%Vor%

Dies ist aus der libusb-Dokumentation , die ziemlich gut ist.

Ich habe Code ausgeführt, bei dem die Fehlermeldungen gut aussahen, aber intern hat er berichtet, dass ein anderer Prozess einen exklusiven Anspruch darauf hatte, also konnte ich ihn nicht verwenden.

    
user1634809 30.08.2012 02:18
quelle
3

hatte gerade das gleiche Problem mit libusb-1.0 ; Ich hatte ursprünglich diese Sequenz:

%Vor%

... und dafür wurde die "nicht beanspruchte Schnittstelle" generiert, als das erste libusb_bulk_transfer ausgeführt wurde (aber keine nachfolgenden, oben nicht gezeigten), was ich durch gdb bestätigt habe. ( übrigens, diese Fehlermeldung kommt von / linux / drivers / usb / core / devio.c )

Diese Seite: USB-Hid-Problem · Yubico / Yubikey-Personalisierung Wiki · GitHub verweist auf einen Fix für libusb-0.1 , der die entsprechende "detach_driver" -Funktion aufgerufen hat; also habe ich begonnen, den "detach_driver" -Teil in meinem Code zu verschieben - und schließlich scheint diese Sequenz die "Schnittstelle nicht beansprucht" -Nachricht loszuwerden:

%Vor%

Offensichtlich, wenn der Treiber zuerst getrennt wird und dann die Schnittstelle beansprucht wird - dann werden keine Fehler erzeugt. Aber das ist auch, was Sie dort in OP haben - also denke ich, der Trick für OP wäre detach , dann set configuration und danach claim interface ...

zu haben

Hoffe, das hilft,
Prost!

    
sdaau 13.11.2012 19:03
quelle
1

Sie sollten alle Ergebniswerte überprüfen, dann können Sie leicht herausfinden, was falsch läuft. Überprüfen Sie einfach alle Ergebniswerte, wenn sie das zurückgeben, was Sie erwarten.

Bestätigen:

  • Gibt libusb_open LIBUSB_SUCCESS zurück?
  • Liefert libusb_kernel_driver_active 0 oder 1, keinen Fehlercode?
  • Liefert libusb_detach_kernel_driver LIBUSB_SUCCESS?
  • Gibt libusb_claim_interface LIBUSB_SUCCESS zurück?
Reinder 04.07.2012 11:48
quelle

Tags und Links