Ich versuche, Google Chrome webUSB API zu verwenden, um auf einen Kartenleser zuzugreifen, der über USB mit meinem Computer verbunden ist.
Folgen Sie den Anweisungen hier , um alles zu tun okay bis ich versuche, die Schnittstelle zu beanspruchen, die mir einen Fehler gibt:
"Fehler beim Anfordern der Schnittstelle 0: Gerät oder Ressource beschäftigt"
Es scheint, dass mein Betriebssystem (linux mint) auf dieses Gerät zugegriffen hat und dem Benutzer keinen Zugriff erlaubt.
Irgendwelche Vorschläge, wie Sie das überwinden können?
BEARBEITEN:
Wenn ich den Treiber entbinde, erhalte ich den folgenden Fehler:
"Fehler beim Anfordern der Schnittstelle 0: Keine solche Datei oder kein Verzeichnis"
Auch hier ist die Ausgabe von lsusb -v für dieses Gerät:
%Vor%"Keine solche Datei oder Verzeichnis" (Fehlercode ENOENT) gibt normalerweise an, dass die angegebene Schnittstellennummer nicht existiert, aber aus den Deskriptoren ist dies eindeutig nicht der Fall und Chrome würde die von claimInterface zurückgegebene Zusage mit "Die angegebene Schnittstellennummer" ablehnen wird vom Gerät in seiner aktuellen Konfiguration nicht unterstützt. " wenn es die Schnittstellennummer für ungültig hielt, bevor die Anfrage an den Kernel gesendet wurde.
Ich stelle jedoch fest, dass die von diesem Gerät unterstützte Einzelkonfiguration ein bConfigurationValue
von 2 erhält. Wenn der Treiber nicht gebunden war, hat das System das Gerät unkonfiguriert und nun Chrome von der aktuellen Konfiguration des Geräts informiert ist nicht mit dem System synchronisiert. Wenn Sie das Gerät in /sys/bus/usb/devices
finden und die Datei bConfigurationValue
ausdrucken, wird Ihnen die aktuelle Konfiguration des Geräts mitgeteilt, was vermutlich 0 ist.
Leider gibt es momentan keine Möglichkeit, diese Diskrepanz über die WebUSB-API zu beheben. Wenn Chrome jedoch nach der Aufhebung des Kernel-Treibers neu gestartet wird, kann er diese Datei zur richtigen Zeit lesen und nicht mehr synchron sein.
Wenn dies für Sie funktioniert, reichen Sie bitte einen Fehler auf crbug.com/new ein und wir können den besten Weg finden, um dieses Problem zu vermeiden in der Zukunft.
Tags und Links javascript google-chrome webusb