Depuração de mouse e teclado USB quando eles param de responder espontaneamente

1

Estou executando o Ubuntu 14.04.5 com o kernel Xenial (4.4.0-89-generic). Eu tenho um mouse com fio e mouse com fio de teclado que não suportam bem o gerenciamento de energia de tempo de execução (eles soltam os pressionamentos de tecla e cliques do mouse quando o gerenciamento de energia de tempo de execução está ativado). Recentemente, eles começaram a me dar problemas onde pararam de trabalhar depois de alguns minutos, mas geralmente quando não os uso por alguns segundos a um minuto. Quando isso acontece, não consigo acordá-los sem desconectá-los e reconfigurá-los de volta.

Para excluir problemas:

  • Desativei a suspensão automática via sysfs.
  • Eu removi ferramentas do modo laptop, pm-utils, powertop todos juntos.

Curiosamente, isso ocorre apenas quando os periféricos estão conectados ao meu dock Dell TB16, mas não quando conectados diretamente ao laptop. Talvez não seja um problema de gerenciamento de energia de tempo de execução, mas um problema de dock.

Os dispositivos em questão são o teclado Razor e o mouse Logitech

$ lsusb
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. 
Bus 004 Device 002: ID 0424:5537 Standard Microsystems Corp. 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0bda:4014 Realtek Semiconductor Corp. 
Bus 003 Device 007: ID 1532:011c Razer USA, Ltd 
Bus 003 Device 006: ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500]
Bus 003 Device 002: ID 0424:2137 Standard Microsystems Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 04f3:21d5 Elan Microelectronics Corp. 
Bus 001 Device 004: ID 0a5c:6410 Broadcom Corp. 
Bus 001 Device 006: ID 1bcf:2b95 Sunplus Innovation Technology Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Aqui está a exibição da hierarquia mostrando-os conectados ao replicador de portas TB16 na porta 1.3 e 1.4 do barramento 3

$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 5000M
        |__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 480M
        |__ Port 3: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 7, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 5: Dev 4, If 0, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 5: Dev 4, If 1, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 5: Dev 4, If 2, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 5: Dev 4, If 3, Class=Audio, Driver=snd-usb-audio, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 4: Dev 4, If 1, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 4: Dev 4, If 2, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 4: Dev 4, If 3, Class=Application Specific Interface, Driver=, 12M
    |__ Port 9: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 12: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 12: Dev 6, If 1, Class=Video, Driver=uvcvideo, 480M

Aqui está o sysfs para todos os dispositivos USB:

$ for i in */power/{control,autosuspend}; do echo $i; cat $i; done
1-12/power/control
on
1-4/power/control
on
1-9/power/control
on
3-1.3/power/control
on
3-1.4/power/control
on
3-1.5/power/control
on
3-1/power/control
on
4-1.2/power/control
on
4-1/power/control
on
usb1/power/control
on
usb2/power/control
on
usb3/power/control
on
usb4/power/control
on
1-12/power/autosuspend
-1
1-4/power/autosuspend
-1
1-9/power/autosuspend
-1
3-1.3/power/autosuspend
-1
3-1.4/power/autosuspend
-1
3-1.5/power/autosuspend
-1
3-1/power/autosuspend
-1
4-1.2/power/autosuspend
-1
4-1/power/autosuspend
-1
usb1/power/autosuspend
-1
usb2/power/autosuspend
-1
usb3/power/autosuspend
-1
usb4/power/autosuspend
-1

Qual é a melhor maneira de depurar esse problema? Quais logs são pertinentes? Há alguma utilidade que possa ajudar a esclarecer isso?

    
por Iyad K 11.08.2017 / 17:16

0 respostas