As portas USB continuam sendo reiniciadas no Linux

5

Problema
As portas USB (2.0) continuam sendo reiniciadas, fazendo com que os periféricos conectados parem de funcionar após algum tempo.

Hardware
Placa-mãe: ASUS J1800I-C
CPU: CPU Intel® Celeron (R) J1800 @ 2.41GHz
RAM: 4 GB -

Número de unidades: > 100 dispositivos funcionando como quiosques de pagamento, todos com o mesmo problema.

Dispositivos USB conectados (lsusb)

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 013: ID 0dd4:015d Custom Engineering SPA
Bus 001 Device 012: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
Bus 001 Device 011: ID 23d8:0285 
Bus 001 Device 010: ID 1ff7:0013 CVT Electronics.Co.,Ltd CVTouch Screen (HID)
Bus 001 Device 009: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 0e8f:0022 GreenAsia Inc. multimedia keyboard controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


SOs que reproduzem o problema:
Ubuntu 14.04-server (64 bits)
Ubuntu 16.04-server (64 bits)
Ubuntu 18.04-server (64 bits)
Tentei os sistemas operacionais acima com UEFI & Inicialização do BIOS.

OSs NÃO produzem problemas com o mesmo hardware:
Ubuntu 14.04 (servidor e desktop) (32 bits)
Ubuntu 16.04-server (32 bits)
Windows 7

O que está acontecendo?
Na inicialização, tudo vai bem e os dispositivos USB estão funcionando por 15 ~ 60 minutos. Após esse tempo, uma ou mais portas serão reiniciadas com erros no dmesg:

    [ 1484.129248] perf interrupt took too long (2520 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
    [ 2645.972003] usb 1-4-port1: cannot reset (err = -71)
    [ 2646.236044] usb 1-4.1: reset full-speed USB device number 4 using xhci_hcd
    [ 2646.324439] usb 1-4.1: ep 0x1 - rounding interval to 64 microframes, ep desc says 80 microframes
    [ 2647.558156] usb 1-4.1: reset full-speed USB device number 4 using xhci_hcd
    [ 2647.646546] usb 1-4.1: ep 0x1 - rounding interval to 64 microframes, ep desc says 80 microframes
    [ 3942.619669] usb 1-4-port1: cannot reset (err = -71)
    [ 3942.619742] usb 1-4-port1: cannot reset (err = -71)
    [ 3942.619821] usb 1-4-port1: cannot reset (err = -71)
    [ 3942.619861] usb 1-4-port1: cannot reset (err = -71)
    [ 3942.619901] usb 1-4-port1: cannot reset (err = -71)
    [ 3942.619905] usb 1-4-port1: Cannot enable. Maybe the USB cable is bad?
    [ 3942.690031] usb 1-4.1: reset full-speed USB device number 4 using xhci_hcd
    [ 3942.690038] usb 1-4.1: hub failed to enable device, error -22
    [ 3942.762176] usb 1-4.1: reset full-speed USB device number 4 using xhci_hcd
    [ 3943.170800] usb 1-4.1: device not accepting address 4, error -22
    [ 3943.242967] usb 1-4.1: reset full-speed USB device number 4 using xhci_hcd
    [ 3943.651734] usb 1-4.1: device not accepting address 4, error -22
    [ 3943.653063] usb 1-4.1: USB disconnect, device number 4
    [ 3943.751603] usb 1-4.1: new full-speed USB device number 8 using xhci_hcd
    [ 3943.840892] usb 1-4.1: New USB device found, idVendor=1ff7, idProduct=0013
    [ 3943.840899] usb 1-4.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 3943.841068] usb 1-4.1: ep 0x1 - rounding interval to 64 microframes, ep desc says 80 microframes
    [ 3943.850194] input: HID 1ff7:0013 as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/0003:1FF7:0013.0005/input/input11
    [ 3943.850467] hid-multitouch 0003:1FF7:0013.0005: input,hiddev0,hidraw3: USB HID v1.11 Mouse [HID 1ff7:0013] on usb-0000:00:14.0-4.1/input0
    [ 4215.269989] usb 1-4-port1: cannot reset (err = -71)
    [ 4215.270192] usb 1-4-port1: cannot reset (err = -71)
    [ 4215.270264] usb 1-4-port1: cannot reset (err = -71)
    [ 4215.270343] usb 1-4-port1: cannot reset (err = -71)
    [ 4215.270383] usb 1-4-port1: cannot reset (err = -71)
    [ 4215.270386] usb 1-4-port1: Cannot enable. Maybe the USB cable is bad?
    [ 4215.342214] usb 1-4.1: reset full-speed USB device number 8 using xhci_hcd
    [ 4215.342221] usb 1-4.1: hub failed to enable device, error -22
    [ 4215.358192] hub 1-4:1.0: hub_ext_port_status failed (err = -71)
    [ 4215.358263] usb 1-4-port1: cannot reset (err = -71)
    [ 4215.622566] usb 1-4.1: reset full-speed USB device number 8 using xhci_hcd
    [ 4215.755250] usb usb1-port4: disabled by hub (EMI?), re-enabling...
    [ 4215.755273] usb 1-4: USB disconnect, device number 3
    [ 4215.755277] usb 1-4.1: USB disconnect, device number 0
    [ 4216.031181] usb 1-4.1: device not accepting address 8, error -22
    [ 4216.064588] usb 1-4.2: USB disconnect, device number 5
    [ 4216.065324] usb 1-4.3: USB disconnect, device number 6
    [ 4216.065632] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
    [ 4216.065647] option 1-4.3:1.0: device disconnected
    [ 4216.065760] huawei_cdc_ncm 1-4.3:1.1 wwx001e101f0000: unregister 'huawei_cdc_ncm' usb-0000:00:14.0-4.3, Huawei CDC NCM device
    [ 4216.079590] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
    [ 4216.079611] option 1-4.3:1.2: device disconnected
    [ 4216.079752] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
    [ 4216.079768] option 1-4.3:1.3: device disconnected
    [ 4216.148026] usb 1-4.4: USB disconnect, device number 7
    [ 4216.148183] usblp2: removed
    [ 4216.387741] usb 1-4: new high-speed USB device number 9 using xhci_hcd
    [ 4216.517658] usb 1-4: New USB device found, idVendor=05e3, idProduct=0610
    [ 4216.517666] usb 1-4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
    [ 4216.517670] usb 1-4: Product: USB2.0 Hub
    [ 4216.518341] hub 1-4:1.0: USB hub found
    [ 4216.518643] hub 1-4:1.0: 4 ports detected
    [ 4216.792385] usb 1-4.1: new full-speed USB device number 10 using xhci_hcd
    [ 4216.885849] usb 1-4.1: New USB device found, idVendor=1ff7, idProduct=0013
    [ 4216.885855] usb 1-4.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 4216.886042] usb 1-4.1: ep 0x1 - rounding interval to 64 microframes, ep desc says 80 microframes
    [ 4216.895096] input: HID 1ff7:0013 as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/0003:1FF7:0013.0006/input/input13
    [ 4216.951230] hid-multitouch 0003:1FF7:0013.0006: input,hiddev0,hidraw2: USB HID v1.11 Mouse [HID 1ff7:0013] on usb-0000:00:14.0-4.1/input0

Coisas que tentei e NÃO resolvi o problema:
Eu tentei desativar o autosuspend para portas USB, adicionando o cmdline kernel linux: usbcore.autosuspend = -1 entre muitas outras opções e todos eles falharam.
Eu também tentei alterar várias opções de BIOS relacionadas ao USB, nada ajudou.

Fatos úteis:
- Todas as 4 portas USB 2.0 estão causando o problema.
- A placa tem uma única porta USB 3.0 que parece não ser afetada pelo problema.
- Usando o hub USB conectado à porta USB3, a conexão de todos os dispositivos USB parece resolver o problema. - Usando a versão de 32 bits do mesmo sistema operacional parece resolver o problema USB. Testei alguns quiosques com instalação de 32 bits por 3 dias e não houve nenhum aviso ou erro no dmesg.

Pergunta:
Como posso resolver este problema no meu Ubuntu 64.0 de 64 bits?

Converter para 32 bits é uma solução irrealista para mim, pois requer a reinstalação de mais de 100 dispositivos. Além disso, alguns dos meus equipamentos vêm com SDK proprietário de 64 bits.

Atualização 1:
O Archlinux 64bits parece funcionar bem com o mesmo hardware.

    
por Hasan 03.04.2018 / 10:27

1 resposta

0

Eu tive o mesmo problema, meu dmesg estava cheio com essas mensagens e não pude desmontar nem suspender o computador:

[ 4095.313680] usb usb4-port5: Cannot enable. Maybe the USB cable is bad?
[ 4099.301425] usb usb4-port5: Cannot enable. Maybe the USB cable is bad?
[ 4103.293161] usb usb4-port5: Cannot enable. Maybe the USB cable is bad?

Descobri que isso acontece quando fico muito tempo sem desconectar os dispositivos USB. Talvez o controlador em algum dispositivo fique instável depois de ter passado tanto tempo ligado, passando por tantas suspensões e esteja enviando sinais ruins.

Descobri que isso resolve o problema:

  • desconecte todos seus dispositivos USB;

ou

  • desligue o computador e desligue também o botão que vem com a PSU (unidade de fonte de alimentação), porque caso contrário a PSU ainda dará suco à placa-mãe e ainda alimentará os controladores USB no dispositivo conectado a ela.

E,claro,àsvezestambémpodeserumcaboruim.Vejaaqui: link

    
por 24.07.2018 / 00:39