USB-Gerät akzeptiert keine Adresse


12

Ich habe eine Reihe von Maschinen, die ich für die Arbeit baue und die über USB-Kartenleser verfügen. Wenn ich sie starte, erhalte ich eine lange Reihe von Meldungen:

...
[ 2347.768419] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2347.968178] usb 1-6.6: new full-speed USB device number 10 using ehci_hcd
[ 2352.552020] usb 1-6.6: device not accepting address 10, error -32
[ 2352.568421] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2352.768179] usb 1-6.6: new full-speed USB device number 12 using ehci_hcd
[ 2357.352033] usb 1-6.6: device not accepting address 12, error -32
...

Auf einigen älteren Computern sind nur wenige Versuche erforderlich, bis der Kartenleser eine Adresse endgültig akzeptiert. Auf neueren Computern kann dies mehrere Minuten dauern. Das Wechseln der Hardware ist keine Option, und das Anschließen des USB-Kartenlesers an einen anderen Anschluss ist nur für ältere Geräte eine Option. Dies war ein Problem unter 11.04 und ich starte jetzt die 12.04 Beta und es passiert immer noch.

Gibt es etwas, das ich in der Software tun kann (vielleicht eine udev-Regel?), Das dies behebt?

Jeder Rat ist willkommen. Gerne stelle ich Ihnen weitere Details zur Verfügung, falls Sie diese benötigen.


Für mich war das Problem mit dem Kabel.
Gayan Weerakutti

Antworten:


6

Könnten Sie das alte Initialisierungsschema für USB-Geräte ausprobieren? Dies kann erreicht werden, indem der Kernel-Parameter geändert wird in /etc/default/grub:

  • Ändern Sie die Zeile , die sagt GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"zuGRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.old_scheme_first=1"
  • Lauf update-grub
  • neustarten und sehen, ob es geholfen hat

2

In meinem Fall scheint es einen Hub im Computer zu geben (wahrscheinlich mit dem 4-Port-Cluster auf der Rückseite), der die zugewiesene Adresse nicht akzeptiert.

Die Logmeldungen sehen für mich so aus:

usb 6-1: new low-speed USB device number 116 using uhci_hcd
usb 6-1: device not accepting address 116, error -71
hub 6-0:1.0: unable to enumerate USB device on port 1

Dies zeigt, es ist USB-Bus 6 . Ich habe nichts damit zu tun und möchte, dass es den Mund hält.

Jetzt müssen wir den relevanten Treiber finden. In diesem Fall ist es uhci_hcdso

$ sudo -s
# cd /sys/bus/pci/drivers/uhci_hcd

und finden Sie heraus, welches PCI-Gerät den USB-Bus 6 bereitstellt:

# echo */usb6
0000:00:1a.2/usb5

Der Verzeichnisname ist hier die PCI-Bus-ID, die diesem USB-Bus entspricht. Dann ist es einfach so:

# echo 0000:00:1d.0 > unbind

um es auszuschalten.

Wenn dies funktioniert, kann nur die letzte Zeile zu einem Startskript hinzugefügt werden. Es scheint, dass es einen Kernel-Parameter geben sollte, um einige USB-Busse zu vermeiden, aber ich kann keinen finden.

(Basierend auf der Antwort von titantux , aber ich versuche zu vermeiden, meine Tastatur zu lösen. Nenn mich altmodisch, aber ich benutze es immer noch.)


0

Ich traf die gleiche Situation wie Sie.

Aber ich habe Ubuntu 10.04 benutzt.

Aber wenn ich einen anderen Computer benutzte, kam er nie heraus.

Also bis jetzt denke ich, dass es etwas mit meiner USB-Schnittstelle war.

Nachdem ich meinem System udev-Regeln hinzugefügt habe, kann dies seltener vorkommen.

Du kannst es versuchen .

Die besten Wünsche!


0

Erstellen Sie ein Skript, das Folgendes enthält, und führen Sie es beim Start aus:

cd /sys/bus/pci/drivers/ehci_hcd/

sudo sh -c 'find ./ -name "0000:00:*" -print| sed "s/\.\///">unbind'

Das sollte das Problem lösen.

Quelle: hier


Beachten Sie, dass durch diesen Befehl alle EHCI-Geräte, einschließlich Ihrer Tastatur, von der Bindung getrennt werden.
Poolie

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.