J'ai un ordinateur portable avec 2 ports USB 2.0 et 1 ports USB 3.0 et je voudrais savoir combien de disques durs USB je pourrais y brancher. Y a-t-il une limite stricte dans le noyau Linux?
Du côté des performances, quelle est la vitesse partagée entre les disques connectés au port?
hardware
usb-drive
usb-storage
719016
la source
la source
Réponses:
Théoriquement, vous pouvez avoir jusqu'à 127 périphériques connectés à un PC hôte, mais il existe des limitations pratiques de puissance et de bande passante de données qui empêcheraient cela. Ces 127 périphériques peuvent être disposés dans un réseau hiérarchisé de concentrateurs jusqu'à sept niveaux, comptant l'hôte PC comme niveau 1 et le périphérique le plus éloigné comme niveau 7. Le PC fournit 5 unités d'alimentation à un concentrateur. Chaque unité est de 100 mA et chaque port nécessite au moins 1 unité. Le concentrateur lui-même en consomme un, laissant 4 unités pour jusqu'à 4 ports. Vous ne trouverez donc jamais de concentrateur alimenté par bus avec plus de quatre ports.
Les concentrateurs alimentés par bus ont une autre limitation. Étant donné que chaque port n'a qu'une seule unité d'alimentation, ils ne peuvent se connecter en aval qu'à un seul appareil. Vous ne pouvez pas les connecter à un autre concentrateur pour l'expansion, car ce concentrateur nécessite 5 unités supplémentaires. Et tous les appareils ne peuvent pas fonctionner avec une seule unité. Un appareil à faible puissance comme une souris fonctionnera, mais un appareil à haute puissance peut réclamer jusqu'à 5 unités. Les périphériques USB haute puissance ne fonctionnent que lorsqu'ils sont connectés directement à un hôte PC ou à un concentrateur autoalimenté pouvant fournir 5 unités au port.
Lorsque vous connectez un périphérique, le PC interroge le périphérique pour 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 haute puissance sur ce concentrateur, le système d'exploitation affichera un message d'erreur et refusera 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 bureautique.
D'un autre côté, si les périphériques qui sont branchés sur le port sont eux-mêmes auto-alimentés, ils peuvent ne pas avoir 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 autoalimenté sera en mesure de fournir 5 unités à chaque port, permettant des appareils à haute puissance et d'autres niveaux de concentrateurs. Vous pouvez donc brancher un concentrateur auto-alimenté à 7 ports, puis sept concentrateurs supplémentaires à 7 ports, vous offrant 49 ports disponibles au quatrième niveau.
Certains concentrateurs autoalimentés vous permettront de les utiliser également en mode alimenté par bus, mais si vous essayez de brancher trop d'appareils, le système d'exploitation vous donnera un message d'erreur.
La plupart des puces de contrôleur de concentrateur ont 4 ports, vous voyez donc généralement des concentrateurs à 4 ports. Quand ils veulent construire un hub plus grand, ils utilisent simplement deux puces à 4 ports. Mais ils doivent les connecter en guirlande avec la première puce connectée à l'hôte et la seconde connectée à l'un des ports en aval sur la première puce. Cela ne laisse que sept ports à l'utilisateur, trois sur la première puce et quatre sur le second - d'où le hub commun à 7 ports.
L'USB est plug-and-play dans le sens où vous n'avez rien à savoir lorsque vous connectez les choses. Le système d'exploitation garde une trace du budget d'alimentation de chaque concentrateur et appareil, vous indiquera si la connexion ne fonctionnera pas et que vous devez utiliser un port auto-alimenté.
edit: les paquets USB ressemblent à ceci:
Étant donné que l'adresse n'est que de 7 bits, vous ne pouvez avoir que 128 appareils sur l'ensemble du bus (avec 7 bits qui peuvent chacun être allumés et éteints, 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.
la source
Ainsi, vous découvrirez qu'avec les chipsets USB3, vous atteindrez en fait une limite à 30 appareils environ, en raison d'une limite matérielle de 32 périphériques (vraiment 96 limites de point de terminaison) sur les chipsets USB3.
J'ai aussi 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- Max-number-of- devices-this-xHCI-host-supports-is-32 .html
Fondamentalement, cela se résume à ces choses
1) il y a une limite de 96 points de terminaison avec USB3 (qui se traduit par 32 appareils uniquement)
2) vous perdez d'autres points de terminaison en raison de concentrateurs, l'utilisation d'un câble USB2 vers un concentrateur USB3 vous donne 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 plus facilement si vous le pouvez, désactivez USB3 dans votre bios). L'utilisation d'une puce USB3 en mode USB2 n'aide pas, vous devez désactiver l'USB3 afin que votre carte mère redirige le port vers un contrôleur USB2 qui n'a pas cette limite de point de terminaison 4) si vous ne pouvez pas désactiver USB3, obtenez une carte PCIe USB2 uniquement et celui-là vous donnera vraiment environ 120 appareils.
Autres ressources: https://www.spinics.net/lists/linux-usb/msg175224.html
https://forums.intel.com/s/question/0D50P00004905stSAA/hardware-limitations-on-usb-endpoints-xhci? langue = en_US
la source
Par expérience personnelle, ma webcam ne fonctionnera que si elle est connectée directement aux ports USB de mon PC. Cela ne fonctionnerait pas connecté à un concentrateur alimenté. Cela impliquerait pour moi que vous rencontrerez des limitations de bande passante avant de rencontrer un certain nombre de périphériques.
la source