Eu tenho um sistema baseado no mint da debian onde eu conecto 16 dispositivos USB.
O Kernal é: 3.11.0-12-genérico
Depois de cerca de 10 dispositivos, começo a ter problemas ao conectar novos.
Há erro para um desses dispositivos pode ser encontrado no dmesgs da seguinte maneira (as duas últimas linhas diferem)
[NOVA ATUALIZAÇÃO: WORKAROUND]
Eu achei que esse problema é específico para xhci. Na minha bios eu consegui realmente desabilitar o xhci e forçar o linux a retornar ao ehci (presumivelmente). Agora todos os meus dispositivos estão funcionando muito bem !.
Claro que isso significa que não há dispositivos USB3 para mim. Felizmente, minha aplicação imediata não exige isso.
Eu não sei se isso é um problema de inteligência ou um problema do Linux. Seria bom deixar esta página porque alguém mais gostaria de encontrá-la.
dmesg | grep -i 3-5.1
dispositivo de trabalho:
[ 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
Dispositivo com falha:
[ 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
Eu tenho uma topologia de hardware da seguinte forma:
PC - > 4 hubs usb2 alimentados - > cada um com 4 dispositivos usb (1).
Esses dispositivos são "dual boot" e você pode ver acima onde eles estão sendo ejetados como dispositivos de armazenamento em massa e inicializando como dispositivos seriais nas mesmas portas.
Eu liguei os hubs USB diretamente da fonte de alimentação, cada um dos meus dispositivos puxa cerca de 700mA
e a linha de 5V da fonte cai para 4,69V.
Há várias áreas usb na minha máquina, pois eu entendo que elas estão conectadas a hubs subjacentes ou hubs raiz. Mover os hubs externos não faz diferença nos resultados. Experimentalmente: eu pensei que colocar hubs em hubs levaria a problemas maiores, mas os resultados foram os mesmos.
Quando eu tenho todos os dispositivos conectados à energia (e corrente de desenho), mas apenas 3 hubs conectados ao PC, tudo está bem.
Quando eu conecto o 4º hub, eu posso ver na LSUSB que todos os dispositivos estão lá,
No entanto, apenas 1 dos 4 dispositivos no último hub é exibido.
Nesse caso. 3-5.1 está bem, mas 3-5.2 3-5.3 e 3-5.4 parece não carregar os drivers.
Todos os dispositivos são idênticos e já testei coisas como trocar os dispositivos, trocar hubs, etc. É sempre o último dispositivo a entrar.
Isso acontece mesmo se o último dispositivo for algo completamente diferente, como um mouse ou um dongle wifi. O dispositivo ficará visível em lsusb, mas não funcionará.
Eu suponho que isso é uma indicação de uma limitação USB excessiva no sistema operacional, em vez de algo que é específico do driver.
Em uma reinicialização, ainda são os últimos 3 dispositivos quando a corrente está sendo desenhada.
CONTUDO. Eu também sou capaz de colocar esses dispositivos em um estado em que nenhuma corrente está sendo desenhada e é possível obtê-los.
Minha conclusão é que o sistema operacional está lendo o sorteio atual e fazendo algumas avaliações sobre os recursos de energia. Possivelmente eles estão recebendo essas informações dos hubs e talvez até adicionando os valores juntos. Seria bom saber se eu poderia simplesmente ter "mais recursos de controlador de host"
[atualização] I encontrado aqui o que parece ser o código-fonte da mensagem de erro:
Eu não gosto da aparência de "/ * FIXME: podemos alocar mais recursos para o HC? * /"
Talvez isso também signifique que há uma maneira de alocar mais recursos desde o início.
Qualquer pista seria ótima
David