Ich habe einen Laptop mit 2 USB 2.0- und 1 USB 3.0-Anschlüssen und möchte wissen, wie viele USB-Festplatten ich anschließen kann. Gibt es ein hartes Limit im Linux-Kernel?
Welche Geschwindigkeit wird auf der Leistungsseite von den an den Port angeschlossenen Laufwerken geteilt?
hardware
usb-drive
usb-storage
719016
quelle
quelle
Antworten:
Theoretisch können bis zu 127 Geräte an einen Host-PC angeschlossen sein, aber es gibt praktische Einschränkungen hinsichtlich Leistung und Datenbandbreite, die dies verhindern würden. Diese 127 Geräte können in einem gestuften Netzwerk von Hubs mit bis zu sieben Ebenen angeordnet werden, wobei der PC-Host als Ebene 1 und das am weitesten entfernte Gerät als Ebene 7 gezählt werden. Der PC versorgt einen Hub mit 5 Energieeinheiten. Jede Einheit hat 100 mA und jeder Port benötigt mindestens 1 Einheit. Der Hub selbst verbraucht einen und lässt 4 Einheiten für bis zu 4 Ports übrig. Sie werden also niemals einen Bus-Hub mit mehr als vier Ports finden.
Busbetriebene Hubs haben eine weitere Einschränkung. Da jeder Port nur eine einzige Energieeinheit hat, können sie nur eine nachgeschaltete Verbindung zu einem einzelnen Gerät herstellen. Sie können sie zur Erweiterung nicht mit einem anderen Hub verbinden, da für diesen Hub zusätzliche 5 Einheiten erforderlich sind. Und nicht alle Geräte können mit einer einzigen Einheit betrieben werden. Ein Gerät mit geringem Stromverbrauch wie eine Maus funktioniert, ein Gerät mit hohem Stromverbrauch kann jedoch bis zu 5 Einheiten beanspruchen. Hochleistungs-USB-Geräte funktionieren nur, wenn sie direkt an einen PC-Host oder einen Hub mit eigener Stromversorgung angeschlossen sind, der 5 Einheiten an den Port anschließen kann.
Wenn Sie ein Gerät anschließen, fragt der PC das Gerät nach seinen Funktionen und Anforderungen ab. So weiß der PC beispielsweise, dass er an einen Hub mit 4 Ports angeschlossen ist, was bedeutet, dass jeder Port nur eine Einheit ansteuern kann. Wenn Sie versuchen, ein Hochleistungsgerät an diesen Hub anzuschließen, wird vom Betriebssystem eine Fehlermeldung ausgegeben und die Aktivierung des Geräts verweigert.
Hubs mit Busantrieb sind aufgrund dieser Einschränkungen im Allgemeinen eine schlechte Idee und hauptsächlich für den mobilen und nicht für den Desktop-Einsatz gedacht.
Wenn die an den Port angeschlossenen Geräte selbst mit Strom versorgt werden, benötigen sie möglicherweise nicht mehr als eine Einheit vom Hub. Zum Beispiel haben externe Festplatten ihre eigene Stromversorgung und sollten daher auf einem Hub mit Bus-Stromversorgung einwandfrei funktionieren.
Ein Hub mit eigener Stromversorgung kann jeden Port mit 5 Einheiten versorgen, was Hochleistungsgeräte und weitere Hub-Ebenen ermöglicht. Sie können also einen 7-Port-Hub mit eigener Stromversorgung und dann sieben weitere 7-Port-Hubs anschließen, sodass Sie 49 verfügbare Ports auf nur der vierten Ebene erhalten.
Bei einigen Hubs mit eigener Stromversorgung können Sie sie auch im Bus-Modus verwenden. Wenn Sie jedoch versuchen, zu viele Geräte anzuschließen, wird vom Betriebssystem eine Fehlermeldung angezeigt.
Die meisten Hub-Controller-Chips haben 4 Ports, sodass normalerweise 4-Port-Hubs angezeigt werden. Wenn sie einen größeren Hub bauen möchten, verwenden sie nur zwei 4-Port-Chips. Sie müssen sie jedoch verketten, wobei der erste Chip mit dem Host und der zweite mit einem der Downstream-Ports des ersten Chips verbunden ist. Damit bleiben nur noch sieben Ports für den Benutzer, drei auf dem ersten Chip und vier auf dem zweiten - daher der gemeinsame 7-Port-Hub.
USB ist Plug-and-Play in dem Sinne, dass Sie nichts davon wissen müssen, wenn Sie Dinge anschließen. Das Betriebssystem verfolgt das Strombudget jedes Hubs und Geräts, teilt Ihnen mit, ob die Verbindung nicht funktioniert und ob Sie einen Port mit eigener Stromversorgung verwenden müssen.
Bearbeiten: USB-Pakete sehen folgendermaßen aus:
Da die Adresse nur 7 Bit beträgt, können Sie nur 128 Geräte auf dem gesamten Bus haben (mit 7 Bits, die jeweils ein- und ausgeschaltet werden können, sind insgesamt nur 128 verschiedene Bitkombinationen möglich). Dies schließt Ihren Computer ein, so dass 127 andere Dinge übrig bleiben, die Sie an ihn anschließen können.
quelle
Sie werden also feststellen, dass Sie mit USB3-Chipsätzen bei etwa 30 Geräten tatsächlich ein Limit erreichen, da USB3-Chipsätze ein hartes Limit von 32 Geräten (tatsächlich 96 Endpunkte) aufweisen.
Ich habe mich auch mit diesem Problem befasst und es hat eine Weile gedauert, bis ich das eigentliche Problem und die Lösungen gefunden hatte. Es ist eine lange Seite, also können Sie sie dort lesen http://marc.merlins.org/perso/linux/post_2018-12-20_Getting-Around-USB3-xhci-32-Device-Limit- Max-number-of- Geräte-dieser-xHCI-Host-unterstützt-ist-32 .html
Grundsätzlich
läuft es auf diese Dinge hinaus: 1) Es gibt ein Endpunktlimit von 96 bei USB3 (was nur 32 Geräten entspricht).
2) Sie verlieren weitere Endpunkte aufgrund von Hubs. Wenn Sie ein USB2-Kabel zu einem USB3-Hub verwenden, erhalten Sie einige Steckplätze zurück
3) Im Allgemeinen sollten Sie USB3 deaktivieren, wenn Sie darauf verzichten können (entfernen Sie den USB3-Kerneltreiber oder deaktivieren Sie USB3 in Ihrem BIOS, wenn Sie können). Die Verwendung eines USB3-Chips im USB2-Modus hilft nicht. Sie müssen USB3 deaktivieren, damit Ihr Motherboard den Anschluss an einen USB2-Controller umleitet, der diese Endpunktbegrenzung nicht hat. 4) Wenn Sie USB3 nicht deaktivieren können, besorgen Sie sich eine PCIe-Karte nur für USB2 und das wird Ihnen wirklich 120 Geräte oder so geben.
Weitere Ressourcen: https://www.spinics.net/lists/linux-usb/msg175224.html
https://forums.intel.com/s/question/0D50P00004905stSAA/hardware-limitations-on-usb-endpoints-xhci? language = en_US
quelle
Aus persönlicher Erfahrung funktioniert meine Webcam nur, wenn sie direkt an die USB-Anschlüsse meines PCs angeschlossen ist. Es würde nicht funktionieren, wenn es an einen Hub mit Stromversorgung angeschlossen wäre. Das würde für mich bedeuten, dass Sie auf Bandbreitenbeschränkungen stoßen, bevor Sie auf eine Reihe von Gerätebeschränkungen stoßen.
quelle