Muitos dispositivos USB 3.0 em um único Ubuntu através de um HUB energizado

7

Eu tentei conectar vários dispositivos habilitados para usb 3.0 em minha máquina 12.04 do Ubuntu. Mas descobri que em um tempo não mais de 9 dispositivos podem ser vistos conectados. Eu tentei monitorar os logs do kernel em /var/log/kern.log , onde descobri que ao conectar o 10º dispositivo, o erro abaixo estava lá:

this device cannot find enough free resources that it can use. (code 12)

Meu controlador host USB é:

Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)

Alguns fóruns sugeriram que a desativação do suporte a USB 3.0 deve forçar os dispositivos a funcionarem no modo USB 2.0, e isso deve resolver o problema. E isso era verdade. Desativar o suporte xHCI da BIOS fez o truque para mim.

Eu assumi que isso deveria ser um bug na configuração antiga do Ubuntu 12.04 (ou o driver usb pode estar). Portanto, eu atualizei meu sistema para o Ubuntu 16. Mas aqui também existe o mesmo problema. E se eu quiser usar meus dispositivos com o USB 3.0? E se a opção de desativar o suporte a xHCI da BIOS não estiver presente em alguma placa-mãe?

    
por Anshuman Chatterjee 15.11.2016 / 06:00

1 resposta

4

Um controlador possui buffers internos que aloca para os dispositivos conectados com a finalidade de fazer entrada e saída. Esses buffers também são chamados de recursos ou pontos de extremidade.

Dispositivos mais rápidos precisam ter mais buffers para conter mais dados. Esse número pode variar por dispositivo, mas o máximo é de 32 pontos de extremidade com 16 entradas e 16 saídas por dispositivo.

Há relatos de que o controlador host XHCI USB 3.0 da série 8 da Intel suporta apenas 96 terminais, e os limites práticos podem ser atingidos antes.

A partir das informações em sua postagem, eu diria que cada disco USB3 usa 10 endpoints aka. recursos, provavelmente 5 in e 5 out. Portanto, 9 discos usaram 90 endpoints que estavam bem, mas 10 discos requerem 100 pontos de extremidade que excedem o limite de 96, daí o controlador enviou um código de erro para o sistema operacional.

Quando você degradou a conexão com o USB2 mais lento, o controlador alocou muito menos buffers para cada dispositivo, portanto, você pode conectar mais discos.

A solução pode ser adicionar um hub USB2 e coloque nele os discos que não precisam de altas taxas de transferência.

Leitura adicional:

por 21.11.2016 / 19:26