J'ai un système basé sur debian mint où je branche 16 périphériques usb. Le Kernal est : 3.11.0-12-generic Après une dizaine de périphériques, je commence à rencontrer des problèmes pour en connecter de nouveaux. L'erreur pour un de ces périphériques peut être trouvée dans les dmesgs comme suit (les 2 dernières lignes diffèrent)
[NOUVELLE MISE À JOUR : SOLUTION DE CONTOURNEMENT] J'ai découvert que ce problème est spécifique à xhci. Dans mon bios, j'ai pu désactiver xhci et forcer Linux à revenir à ehci (vraisemblablement). Maintenant, tous mes périphériques fonctionnent très bien ! Bien sûr, cela signifie qu'il n'y a pas de périphériques USB3 pour moi. Heureusement, mon application immédiate n'en a pas besoin. Je ne sais pas si c'est un problème intel ou un problème linux. Il serait bon de laisser cette page en place car quelqu'un d'autre est très susceptible de la trouver.
dmesg | grep -i 3-5.1
dispositif de travail :
[ 1.883505] hub 3-5:1.0: USB hub found
[ 1.883733] hub 3-5:1.0: 4 ports detected
[ 3.370272] usb 3-5.1: new full-speed USB device number 17 using xhci_hcd
[ 3.387126] usb 3-5.1: New USB device found, idVendor=03eb, idProduct=2045
[ 3.387129] usb 3-5.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.387908] usb-storage 3-5.1:1.0: USB Mass Storage device detected
[ 3.388006] scsi14 : usb-storage 3-5.1:1.0
[ 121.738568] usb 3-5.1: USB disconnect, device number 17
[ 121.942662] usb 3-5.1: new full-speed USB device number 28 using xhci_hcd
[ 121.961332] usb 3-5.1: New USB device found, idVendor=03eb, idProduct=204b
[ 121.961334] usb 3-5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 121.961336] usb 3-5.1: Product: LUFA USB-RS232 Adapter
[ 121.961337] usb 3-5.1: Manufacturer: Dean Camera
[ 121.961338] usb 3-5.1: SerialNumber: 741333532373518080C1
[ 121.961408] usb 3-5.1: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 121.962080] cdc_acm 3-5.1:1.0: ttyACM3: USB ACM device
[ 1281.513105] usb 3-5.1: USB disconnect, device number 28
dmesg | grep -i 3-5.1
Dispositif défaillant :
[ 3.638401] usb 3-5.4: new full-speed USB device number 20 using xhci_hcd
[ 3.655067] usb 3-5.4: New USB device found, idVendor=03eb, idProduct=2045
[ 3.655070] usb 3-5.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.655868] usb-storage 3-5.4:1.0: USB Mass Storage device detected
[ 3.655977] scsi17 : usb-storage 3-5.4:1.0
[ 118.793161] usb 3-5.4: USB disconnect, device number 20
[ 122.603119] usb 3-5.4: new full-speed USB device number 31 using xhci_hcd
[ 122.621653] usb 3-5.4: New USB device found, idVendor=03eb, idProduct=204b
[ 122.621655] usb 3-5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 122.621656] usb 3-5.4: Product: LUFA USB-RS232 Adapter
[ 122.621657] usb 3-5.4: Manufacturer: Dean Camera
[ 122.621658] usb 3-5.4: SerialNumber: 74133353237351808021
[ 122.621795] usb 3-5.4: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 122.622419] usb 3-5.4: Not enough host controller resources for new device state.
[ 122.622424] usb 3-5.4: can't set config #1, error -12
J'ai une topologie matérielle comme suit : PC -> 4 hubs usb2 alimentés -> chacun avec 4 périphériques usb(1). Ces périphériques sont "dual boot" et vous pouvez voir ci-dessus où ils sont éjectés comme périphériques de stockage de masse et redémarrent comme périphériques série sur les mêmes ports.
J'ai alimenté les hubs USB directement à partir de l'alimentation, chacun de mes appareils consomme environ 700mA. et la ligne 5V de l'alimentation tombe à 4.69V.
Il y a un certain nombre de zones usb sur ma machine, si j'ai bien compris, elles sont connectées à des hubs sous-jacents ou à des hubs racine. Le fait de déplacer les hubs externes ne change rien aux résultats. Expérimentalement : Je pensais que le fait de placer des hubs sur des hubs entraînerait des problèmes plus importants, mais les résultats sont les mêmes.
Lorsque tous les appareils sont branchés sur le secteur (et consomment du courant), mais que seuls 3 concentrateurs sont branchés sur le PC, tout va bien. Lorsque je branche le 4ème hub, je peux voir dans LSUSB que tous les périphériques sont là, Cependant, seul 1 des 4 appareils sur ce dernier hub s'affiche. Dans ce cas. 3-5.1 va bien, mais 3-5.2 3-5.3 et 3-5.4 semblent ne pas charger les pilotes.
Tous les appareils sont identiques et j'ai déjà testé des choses comme l'échange d'appareils, l'échange de concentrateurs, etc. Ce sont toujours les derniers appareils qui entrent en jeu. Cela se produit même si le dernier périphérique est quelque chose de complètement différent comme une souris ou un dongle wifi. Le périphérique sera visible dans lsusb, mais il ne fonctionnera pas. Je suppose que c'est une indication d'une limitation USB sous-jacente du système d'exploitation, plutôt que quelque chose de spécifique au pilote.
Lors d'un redémarrage, il s'agit toujours des 3 derniers appareils lorsque le courant est tiré. CEPENDANT. Je suis également capable de mettre ces appareils dans un état où aucun courant n'est tiré et il est possible de les faire fonctionner.
Ma conclusion est que le système d'exploitation lit l'appel de courant et fait une évaluation des ressources énergétiques. Il est possible qu'il obtienne ces informations des hubs et qu'il additionne les valeurs. Il serait bon de savoir si je peux simplement avoir "plus de ressources de contrôleur hôte".
[mise à jour] Je trouvé ici ce qui semble être le code source du message d'erreur : Je n'aime pas l'aspect de "/* FIXME : pouvons-nous allouer plus de ressources pour le HC ? */" Peut-être que cela signifie également qu'il existe un moyen d'allouer plus de ressources dès le départ.
Tout indice serait le bienvenu David