Was sind USB-Geräte-Resets?

20

Ich habe diese brandneue RAID-1-Software mit zwei externen WD Elements-USB-Laufwerken erstellt und sehe, dass Linux die folgende Meldung ziemlich oft wiederholt:

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

Also, was steht da? Ist das normal? Ist das ein Problem, das ich zu beheben versuchen sollte?

Update
Tatsächlich sind diese Meldungen nicht für die Laufwerke bestimmt, von denen ich dachte, dass sie es sind. Ich habe auch eine Reihe anderer USB-Laufwerke über einen USB-Hub an diesen Computer angeschlossen. Wie auch immer, meine Frage ist im Grunde, was bedeutet diese Nachricht im Klartext?

ILIV
quelle
3
RAID von USB-Laufwerken zu erstellen, klingt nicht nach einer guten Idee. Bei RAID geht es darum, alle Laufwerke zuverlässig zu haben, und bei USB geht es um das Hot-Plug- und Unplugging von Geräten. Da Sie RAID-1 verwenden, ist es nicht so schlimm, aber es ist auch keine sehr gute Idee.
MVP
1
An der Verwendung von USB-Geräten in der RAID-Konfiguration ist nichts auszusetzen. Dies ist eine absolut fundierte Idee, umso mehr, wenn man bedenkt, dass es sich um einen Heimcomputer und nicht um einen Unternehmensserver handelt. Sie könnten über Einschränkungen des USB-Durchsatzes streiten, aber das ist für mich persönlich kein Problem. Dieser Überfall ist mehr als alles andere ein träger Ansatz für eine Backup-Lösung.
ILIV
1
Sie haben angegeben, dass Ihre Laufwerke an USB-Ports des Notebooks angeschlossen sind. Sagen Sie, was Sie wollen, aber dies ist einfach eine Zeitbombe, die darauf wartet, loszulegen. Wenn es sich bei Ihren Geräten um USB3 handelt, muss der Kernel xhci_hcd verwenden. Wenn ehci_hcd verwendet wird, bedeutet dies, dass Ihre Geräte mit USB2-Geschwindigkeit betrieben werden.
MVP
1
Warum ist es eine "Zeitbombe"?
ILIV
2
Ich verstehe, bitte, versuchen Sie das nächste Mal, echte Gründe dafür zu finden, etwas als Zeitbombe zu bezeichnen. Nur zur Veranschaulichung, ich habe keine Katze oder ein anderes Haustier, ich habe nie Kabel gezogen, dieses Notebook ist seit ein paar Jahren Schreibwaren, die Wahrscheinlichkeit, dass USB-Anschlüsse durchgebrannt sind, ist ungefähr gleich hoch Die direkte Verbindung wird unterbrochen, "etwas anderes" ist lustig und kann selbst bei den am gründlichsten konfigurierten und installierten Unternehmensservern auftreten. Also hör auf so paranoid zu sein. Dies ist RAID-1. Es ist sehr unwahrscheinlich, dass 2 Festplatten gleichzeitig ausgehen. Dies ist eine feste Lösung. Zeitraum.
ILIV

Antworten:

22

Lass es mich versuchen.

Die Meldung besagt wörtlich, dass der Linux-USB-Stack "USB_RESET" für Ihr bestimmtes Gerät ausgegeben hat (Geräte Nr. 19 und Nr. 20, unabhängig davon, um was es sich handelt). Der Fehler scheint einmal alle 10-30 Sekunden aufzutreten. Nach dem Zurücksetzen sollte das Protokoll neue Aufzählungsmeldungen enthalten, da durch das Zurücksetzen über USB das angeschlossene Gerät in den "Standardzustand" versetzt wird. Es sieht so aus, als ob die Ausführlichkeit Ihres Protokolls sehr reduziert ist.

Das Zurücksetzen eines USB-Geräts mitten im Betrieb ist eine ziemlich drastische Situation. Der Controller greift auf diesen "Port" -Reset zurück, wenn er auf "Transaktionsfehler" stößt. Ein Transaktionsfehler tritt auf, wenn die Verbindung nicht alle erforderlichen Phasen der USB-Transaktion abschließt oder wenn ein CRC-Fehler vorliegt. Bei normalem USB wiederholt der EHCI-Controller die fehlgeschlagene Transaktion automatisch (normalerweise maximal dreimal) und setzt dann einen XACT_ERROR-Interrupt. Statistisch gesehen ist nach der Fehlertheorie, wenn ein Link auf drei Versuche in Folge nicht richtig reagiert, mit dem bestimmten USB-Segment etwas nicht in Ordnung, meistens elektrisch. Der Transaktionsfehler wird als schwerwiegend eingestuft, und die Software versucht, die Verknüpfung wiederherzustellen. Wenn vier Versuche, die Verbindung wiederherzustellen, fehlschlagen, betrachtet der Host diesen Port als tot und beendet ihn.

Unter Linux hat jedoch jemand entschieden, dass drei theoretische Versuche nicht ausreichen, und die Linux-Software führt zusätzliche 32 (zweiunddreißig) Versuche durch, sodass es insgesamt 96 (!!!) sind. Wenn die Hardwareverbindung elektrisch marginal ist, können die 96 Versuche in 99,99% der Fälle erfolgreich sein. Linux-Software-Gurus behaupten, dass dies dazu beiträgt, die Bedienbarkeit fragwürdiger Geräte / Kabel zu verbessern. Im Wesentlichen verbirgt diese Technik ein ernstes Problem mit dieser bestimmten USB-Verbindung, das Benutzern auf lange Sicht nicht hilft.

Das Problem kann in der Grenzspannungsversorgung (VBUS) der Laufwerke oder in VBUS-Störungen oder in einer Signalverschlechterung der Signalleitungen liegen. Ich würde zuerst extrem kurze, hochqualitative, zertifizierte Kabel ausprobieren und prüfen, ob sich die Fehlerstatistik ändert.

Ale..chenski
quelle
Super Zusammenfassung, danke! Einige zusätzliche Quellen wären cool.
Christian Benke
1
Wissen Sie, ob dies möglich ist, um die Anzahl der Wiederholungsversuche durch das ehci_hcdModul zu erhöhen ? Oder ist es möglich, ohci_hcdfür ein bestimmtes Gerät zu erzwingen (z. B. /dev/sdawird von gehandhabt ehci_hcdund "problematisch" /dev/sdbwird von gehandhabt ohci_hcd)?
dma_k
5

Dieser Fehler wird im Artikel Linux: Zurücksetzen eines Hochgeschwindigkeits-USB-Geräts mit ehci_hcd beschrieben. Fehler und Lösung :

Dieser Fehler weist darauf hin, dass USB 2.0 auf Ihrem System möglicherweise nicht oder nur mit USB 1.1-Geschwindigkeiten funktioniert. So beheben Sie dieses Problem:

  1. Hardware austauschen: In den meisten Fällen müssen Sie das Motherboard austauschen.
  2. Ehci_hcd Treiber entfernen
  3. Deaktivieren Sie die USB 2.0-Schnittstelle des ehci_hcd-Laufwerks und verwenden Sie sie als USB 1.1. Kurz gesagt, deaktivieren Sie die ehci_hcd.

Wenn Sie das Motherboard nicht ersetzen möchten, bearbeiten Sie die Datei /etc/modprobe.d/blacklist.conf und fügen Sie die Zeile hinzu , um den ehci_hcd-Treiber zu entfernen :

blacklist ehci_hcd

Verwenden Sie schließlich das Skript mkinitrd, um eine Verzeichnisstruktur zu erstellen, die als initrd-Root-Dateisystem ohne ehci_hcd dienen kann:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

Als Test neu starten.

Ein Artikel mit ähnlichen Anweisungen lautet: Warum wird der Fehler "Kernel: USB 1-2.2: Hochgeschwindigkeits-USB-Gerät mit ehci_hcd und Adresse 6 zurücksetzen" in die Datei / var / log / messages geschrieben?

Harrymc
quelle