libusb-Schnittstelle bereits angefordert
Schreibe ich einen Gerätetreiber für ein usb-Gerät mit libusb. Wenn ich Versuch, zu behaupten, das Gerät bekomme ich die Fehlermeldung code LIBUSB_ERROR_BUSY (-6). Laut Dokumentation bedeutet, dass das Gerät bereits in Anspruch genommen wurden (link).
Wie finde ich heraus, welcher Treiber/Programm hat behauptet, das Gerät und vor allem, wie kann ich, mich, Anspruch nehmen das Gerät, sobald es behauptet.
Code-snippet:
r = libusb_claim_interface(handle[0], 0);
if (r < 0) {
fprintf(stderr, "libusb_claim_interface error %d\n", r);
goto out_release;
}
printf("claimed interface\n");
Ausgabe:
libusb_claim_interface error -6
- Ich fand diesen Beitrag auf der Suche nach "Wie finde ich heraus, welcher Treiber/Programm hat behauptet, das Gerät", und so wollte ich ein link zu dieser Frage: gibt es eine Möglichkeit, herauszufinden, was mit einem Linux-kernel-Modul?, ich denke, das ist relevant, weil es sagt, dass es nicht möglich zu sehen, welche Programme Anspruch auf eine Treiber/Modul.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nennst du
libusb_detach_kernel_driver()
vorlibusb_claim_interface()
? Dies kann erforderlich sein.Das Problem ist wahrscheinlich, dass die Schnittstelle in Anspruch genommen wird von einem anderen Linux-Treiber. rufen Sie
libusb_detach_kernel_driver()
und geben Sie die Nummer der Schnittstelle und dann sollten Sie in der Lage sein, es zu verbinden.Hast, Ruf Sie an
libusb_set_configuration()
vorlibusb_claim_interface()
?Diese müssen genannt werden, auch wenn es nur eine Konfiguration in der descriptor.
usb-devices
von der terminal-Listenusb-storage
da der Treiber für das Gerät. Für einige Grund, das Gerät bekommt einen Fahrer zugewiesen, und ich habe nicht in der Lage, dies zu verhindern. Ich habe versucht, mithilfe von udev-Regeln.