1

I'm running Ubuntu 14.04.5 with the Xenial kernel (4.4.0-89-generic). I have a USB mouse and keyboard corded mouse that do not support runtime power management well (they would drop key strokes and mouse clicks when runtime power management is enabled). Recently, they started giving me problems where they stop working after a few minutes, but usually when I don't use them for a few seconds to a minute. When this happens, I can't wake them up without unplugging and replugging them back in.

To rule out problems:

  • I've disabled autosuspend via sysfs.
  • I've removed laptop-mode-tools, pm-utils, powertop all together.

Interestingly, this only occurs when the peripherals are connected to my Dell TB16 dock but not when directly connected to the laptop. Maybe it's not a runtime power management issue but a dock issue.

The devices in question are the Razor keyboard and Logitech mouse

$ 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

Here is the hierarchy display showing them connected to the TB16 port replicator on Bus 3 port 1.3 and 1.4

$ 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

Here is the sysfs for all USB devices:

$ 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

What is the best way to debug this issue? What logs are pertinent? Are there any utilities that might help shed light on this?

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.