Viele USB 3.0-Geräte auf einem einzigen Ubuntu über einen HUB mit eigener Stromversorgung

1506
Anshuman Chatterjee

Ich habe versucht, mehrere USB 3.0-fähige Geräte an meinen Ubuntu 12.04-Computer anzuschließen. Es stellte sich jedoch heraus, dass zu einem Zeitpunkt nicht mehr als 9 Geräte angeschlossen waren. Ich habe versucht, die Kernel-Protokolle zu überwachen /var/log/kern.log, wobei ich herausfand, dass beim Anschließen des 10. Geräts der folgende Fehler aufgetreten war:

Dieses Gerät kann nicht genügend freie Ressourcen finden, die es verwenden kann. (Code 12)

Mein USB-Hostcontroller ist:

Intel Corporation 8-Serie / C220-Serie - Chipsatzfamilie xHCI (rev 05)

In einigen Foren wurde die Deaktivierung der USB 3.0-Unterstützung vorgeschlagen. Die Geräte sollten dazu gezwungen werden, im USB 2.0-Modus zu arbeiten, und das Problem sollte gelöst werden. Und das war wahr. Die Deaktivierung der xHCI-Unterstützung über das BIOS hat mich ausgemacht.

Ich nahm an, dass dies ein Fehler im älteren Ubuntu 12.04-Setup sein sollte (oder der USB-Treiber). Daher habe ich mein System auf Ubuntu 16 aufgerüstet. Aber auch hier besteht das gleiche Problem. Was ist, wenn ich meine Geräte mit USB 3.0 verwenden möchte? Was ist, wenn die Option zum Deaktivieren der xHCI-Unterstützung über das BIOS auf einigen Motherboards nicht vorhanden ist?

7

1 Antwort auf die Frage

4
harrymc

Ein Controller verfügt über interne Puffer, die er den angeschlossenen Geräten für die Eingabe und Ausgabe zuordnet. Diese Puffer werden auch als Ressourcen oder Endpunkte bezeichnet.

Schnellere Geräte müssen mehr Puffer zugewiesen haben, um mehr Daten enthalten zu können. Diese Anzahl kann pro Gerät variieren, aber maximal 32 Endpunkte mit 16 Ein- und 16 Ausgängen pro Gerät.

Es gibt Berichte, dass der USB 3.0 XHCI-Hostcontroller der Intel 8 Series nur 96 Endpunkte unterstützt und praktische Grenzen früher erreicht werden können.

Aus den Informationen in Ihrem Post würde ich vermuten, dass jede USB3-Festplatte 10 Endpunkte (aka) verwendet. Ressourcen, wahrscheinlich 5 in und 5 out. Daher verwendeten 9 Platten 90 Endpunkte, was in Ordnung war, aber 10 Platten erfordern 100 Endpunkte, die die Grenze von 96 überschreiten. Daher hat der Controller einen Fehlercode an das Betriebssystem gesendet.

Wenn Sie die Verbindung zum langsameren USB2 abgebaut haben, hat der Controller jedem Gerät viel weniger Puffer zugewiesen, daher könnten Sie mehr Festplatten anschließen.

Die Lösung könnte darin bestehen, einen USB2-Hub hinzuzufügen und die Datenträger anzulegen, für die keine hohen Übertragungsraten erforderlich sind.

Lesen Sie weiter:

Ich dachte an den Anschluss eines USB2.0-Hubs, der USB3.0-Geräte an das USB2.0-Protokoll anpasst. Dennoch wurden diese Geräte nur in der ker.log verwendet, wenn xhci verwendet wurde. Bedeutet dies, dass der Hub auch usb3.0 unterstützte? Anshuman Chatterjee vor 7 Jahren 0
Wenn Sie usb2 auf usb3 huckeln, funktionieren die Geräte am usb2-Hub als usb2, selbst wenn die Geräte selbst usb3 ausführen können. Dies wirft die Frage auf, auf die ich keine Antwort habe, ob die USB-Firmware den Fehler macht, die Anzahl der erforderlichen Puffer nach den Geräteeigenschaften (USB3) oder nach der Verbindungsgeschwindigkeit (USB2) zu beurteilen. Um herauszufinden welche, könnten Sie `lsusb` verwenden. Siehe [diesen Artikel] (http://www.linuxnix.com/find-usb-device-details-in-linuxunix-using-lsusb-command/) und [diesen Beitrag] (http://askubuntu.com/questions) / 604158 / how-do-i-tell-if-a-usb-thumb-drive-is-usb-3-0). harrymc vor 7 Jahren 0