J'ai un ordinateur portable avec 2 ports USB 2.0 et 1 port USB 3.0 et j'aimerais savoir combien de disques durs USB je pourrais brancher. Existe-t-il une limite stricte dans le noyau Linux?
En ce qui concerne les performances, quelle est la vitesse partagée sur les lecteurs connectés au port?
Théoriquement, vous pouvez avoir jusqu'à 127 périphériques connectés à un ordinateur hôte, mais des limitations pratiques en termes de puissance et de bande passante des données vous empêcheraient de le faire. Ces 127 périphériques peuvent être disposés dans un réseau hiérarchisé de concentrateurs jusqu'à sept niveaux, le PC hôte étant classé au niveau 1 et le périphérique le plus éloigné au niveau 7. Le PC fournit 5 unités d'alimentation à un concentrateur. Chaque unité est de 100 mA et chaque port nécessite un minimum de 1 unité. Le hub lui-même en consomme une, laissant 4 unités pour 4 ports au maximum. Donc, vous ne trouverez jamais un hub alimenté par bus avec plus de quatre ports.
Les hubs alimentés par bus ont une autre limitation. Chaque port n'ayant qu'une seule unité d'alimentation, ils ne peuvent se connecter qu'en aval à un seul périphérique. Vous ne pouvez pas les connecter à un autre concentrateur pour une expansion, car ce concentrateur nécessite 5 unités supplémentaires. Et tous les appareils ne peuvent pas fonctionner à partir d'une seule unité. Un périphérique basse consommation, comme une souris, fonctionnera, mais un périphérique haute puissance peut revendiquer jusqu'à 5 unités. Les périphériques USB haute puissance ne fonctionneront que s’ils sont branchés directement à un hôte PC ou à un concentrateur autonome pouvant alimenter 5 unités sur le port.
Lorsque vous connectez un périphérique, le PC l'interroge pour connaître ses capacités et ses exigences. Ainsi, par exemple, le PC sait qu'il est connecté à un concentrateur alimenté par bus à 4 ports, ce qui signifie que chaque port ne peut piloter qu'une seule unité. Si vous essayez de brancher un périphérique à forte puissance sur ce concentrateur, le système d'exploitation affiche un message d'erreur et refuse d'activer le périphérique.
Les concentrateurs alimentés par bus sont généralement une mauvaise idée en raison de ces limitations et sont principalement destinés à une utilisation mobile et non pas à un ordinateur de bureau.
D'autre part, si les périphériques connectés au port sont eux-mêmes autonomes, ils n'auront peut-être pas besoin de plus d'une unité du concentrateur. Par exemple, les disques durs externes ont leur propre alimentation et devraient donc fonctionner correctement sur un concentrateur alimenté par bus.
Un concentrateur auto-alimenté pourra fournir 5 unités à chaque port, permettant ainsi des périphériques haute puissance et des niveaux supplémentaires de concentrateurs. Vous pouvez donc y brancher un concentrateur à 7 ports auto-alimenté, puis sept autres concentrateurs à 7 ports, ce qui vous donne 49 ports disponibles au quatrième niveau.
Certains concentrateurs auto-alimentés vous permettront de les utiliser également en mode alimenté par bus, mais si vous essayez de brancher trop de périphériques, le système d'exploitation vous enverra un message d'erreur.
La plupart des puces de contrôleur de concentrateur ont 4 ports, de sorte que vous voyez souvent des concentrateurs à 4 ports. Lorsqu'ils veulent construire un plus grand hub, ils utilisent simplement deux puces à 4 ports. Mais ils doivent les connecter en série avec la première puce connectée à l'hôte et la seconde connectée à l'un des ports en aval de la première puce. Cela ne laisse que sept ports pour l'utilisateur, trois sur la première puce et quatre sur la seconde - d'où le concentrateur à 7 ports commun.
L'USB est plug-and-play en ce sens que vous n'avez pas besoin de connaître ces informations lorsque vous connectez des éléments. Le système d'exploitation surveille le bilan énergétique de chaque concentrateur et périphérique, vous indique si la connexion ne fonctionnera pas et vous indique que vous devez utiliser un port auto-alimenté.
edit: les paquets USB ressemblent à ceci:
Jeton: ID de paquet: 8 bits Adresse: 7 bits Point d'extrémité: 4 bits CRC: 5 bits Début de trame: ID de paquet: 8 bits Numéro de trame: 11 bits CRC: 5 bits Paquet de données: Paquet ID: 8 bits Données: 0-1023 octets CRC: 16 bits Handshake: Paquet ID: 8 bits
Comme l'adresse ne comporte que 7 bits, vous ne pouvez avoir que 128 périphériques sur tout le bus (avec 7 bits activables/désactivables, il n'y a que 128 combinaisons différentes de bits possibles). Cela inclut votre ordinateur, ce qui laisse 127 autres choses que vous pouvez y attacher.
Ainsi, vous découvrirez qu'avec les jeux de puces USB3, vous atteindrez en réalité une limite de 30 périphériques environ, en raison d'une limite stricte de 32 appareils (limite réellement de 96 points d'extrémité) sur les jeux de puces USB3.
J'ai également traité ce problème et il m'a fallu un certain temps pour trouver le vrai problème et les solutions. C'est une longue page, vous pouvez donc la lire ici http://marc.merlins.org/perso/linux/post_2018-12-20_Getting-Around-USB3-xhci-32-Device-Limit - Nombre-maximal-de-périphériques-this-xHCI-Host-supports-is-32 . Html
Fondamentalement, cela se résume à ces choses
1) il existe une limite de 96 points d'extrémité avec USB3 (ce qui correspond à 32 périphériques uniquement)
2) vous perdez d’autres terminaux à cause des hubs, l’utilisation d’un câble USB2 vers un hub USB3 vous permet de récupérer quelques emplacements
3) plus généralement, vous devez désactiver USB3 si vous pouvez vous en passer (supprimez le pilote du noyau USB3 ou, si vous le pouvez, plus facilement, désactivez USB3 dans votre BIOS). L'utilisation d'une puce USB3 en mode USB2 ne vous aide pas, vous devez désactiver l'USB3 afin que votre carte mère redirige le port sur un contrôleur USB2 ne disposant pas de cette limite 4) si vous ne pouvez pas désactiver l'USB3, obtenez une carte PCIe uniquement USB2 et celui-ci vous donnera vraiment 120 appareils ou plus.
Autres ressources: 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