Je me demande quel est le nombre maximal de périphériques USB que le noyau Linux peut gérer? Est-ce que cela dépend aussi du root-Hub ou de quelque chose d'autre?
Y a-t-il un moyen d'augmenter ce nombre maximum?
Je dois le faire car j'ai eu des problèmes en essayant d'écrire sur une grande quantité de clés USB. Pour ce faire, j'ai une configuration comme suit:
Il y a 1 ordinateur sous Ubuntu Linux, avec 3 HUB (actifs) connectés à 3 ports USB de cette machine. Tous ces trois concentrateurs sont des concentrateurs à 7 ports. À 6 de ces 7 ports, plusieurs hubs sont connectés. Cela me donne le nombre de 3 * 6 = 18 HUB dans la "deuxième" couche. Chacun de ces concentrateurs est également un concentrateur actif à 7 ports. Une clé USB est connectée à chaque port de ces concentrateurs de deuxième couche. Au total, j'ai 126 clés USB connectées à l'ordinateur.
J'ai un script qui recherche tous les périphériques de disque USB (en listant / dev / disk / by-path /). Chacun des périphériques de disque USB est ensuite d'abord partitionné, écrit avec cp, puis amorçable avec syslinux. Ceci n'est pas fait en parallèle!
Le problème: Je ne reçois que 105 disques durs USB avec
ls -la /dev/disk/by-path | grep usb | grep -v part | wc -l
Les voyants des bâtons de 3 rangées (une rangée correspond à un concentrateur dans la deuxième couche) sont également éteints.
Comment puis-je obtenir tous ces bâtons au travail? (Ou peut-être même plus?)
la source
Réponses:
C'est par défaut comme expliqué ici: https://en.wikipedia.org/wiki/USB_device#System_design
Vous ne pouvez pas avoir plus de 127 périphériques (concentrateur inclus) connectés à un seul contrôleur hôte.
Maintenant: le contrôleur hôte + 3 concentrateurs (1ère couche) +18 concentrateurs (2ème couche) = 22 périphériques n'apparaissant pas comme des périphériques de disque.
127 moins ces 22 périphériques USB = 105 périphériques pouvant être gérés par le noyau en tant que disques.
127 périphériques est une limite stricte du protocole USB (voir ici: http://www.beyondlogic.org/usbnutshell/usb3.shtml#USBProtocols ) car le champ d’adresse ADDR a une longueur de sept bits.
Donc, par logiciel, il n'y a aucun moyen de l'augmenter. Vous pouvez peut-être essayer avec plus d'une interface de contrôleur hôte ou modifier la topologie en réduisant le nombre de concentrateurs (augmentant ainsi le nombre de disques vus par le système).
la source