# USB mouse and keyboard poweroff too soon (udev)

**URL:** https://discourse.nixos.org/t/usb-mouse-and-keyboard-poweroff-too-soon-udev/22459
**Category:** Help
**Created:** [October 14, 2022, 10:09am UTC](https://discourse.nixos.org/t/usb-mouse-and-keyboard-poweroff-too-soon-udev/22459 "2022-10-14T10:09:08Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![gianarb](https://discourse.nixos.org/user_avatar/discourse.nixos.org/gianarb/32/4414_2.png) [@gianarb](https://discourse.nixos.org/u/gianarb)
#### Post date: [October 14, 2022, 10:09am UTC](https://discourse.nixos.org/t/usb-mouse-and-keyboard-poweroff-too-soon-udev/22459/1 "2022-10-14T10:09:08Z")

</div>

It is me again with almost the same problem I described here:

> [@External mouse and keyboard sleep when they stay untouched for a few seconds](https://discourse.nixos.org/t/external-mouse-and-keyboard-sleep-when-they-stay-untouched-for-a-few-seconds/14900/7):
>
> I have a strong motivation to attempt a fix for this because it is a problem I have with both my machines smiley And I would really like to switch on the workstation and enjoy it without having to walk around to play with the usb ports! So let’s try! dmesg for the mouse does not bring anythig to my attention [6.656069] usb 5-3: new full-speed usb device number 2 using xhci\_hcd [6.799765] usb 5-3: new usb device found, idvendor=3938, idproduct=1031, bcddevice= 1.36 [6.799767] usb …

I have a usb keyboard and a mouse and both of them poweroff when not used, but they do it too frequently and to soon.

I think udev can help me but I can’t make it working.

```auto
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 009: ID 04f3:0903 Elan Microelectronics Corp. ELAN:Fingerprint
Bus 001 Device 005: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 003: ID 13d3:5755 IMC Networks USB2.0 VGA UVC WebCam
Bus 001 Device 006: ID 043e:9a39 LG Electronics USA, Inc. LG Monitor Controls
Bus 001 Device 008: ID 04b4:6001 Cypress Semiconductor Corp.
Bus 001 Device 004: ID 1bcf:0005 Sunplus Innovation Technology Inc. Optical Mouse
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

```

`1bcf:0005 Sunplus` is the mouse, `04b4:6001 Cypress ` is the keyboard. This is the udev rule I have set:

```auto
  services.udev.extraRules = ''
      # keyboard disable autosuspand
    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="6001", ATTR{power/autosuspend}="-1"
    # mouse disable autosuspand
    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bcf", ATTR{idProduct}=="0005", ATTR{power/autosuspend}="-1"
  '';

```

And I see them correctly applied to my system:

```auto
$ cat /etc/udev/rules.d/99-local.rules
# keyboard disable autosuspand
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="6001", ATTR{power/autosuspend}="-1"
# mouse disable autosuspand
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bcf", ATTR{idProduct}=="0005", ATTR{power/autosuspend}="-1"

```

But they keep suspanding

* * *

The full `lsusb -v`

```auto
Bus 001 Device 008: ID 04b4:6001 Cypress Semiconductor Corp. 
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 
  bDeviceSubClass 0 
  bDeviceProtocol 0 
  bMaxPacketSize0 8
  idVendor 0x04b4 Cypress Semiconductor Corp.
  idProduct 0x6001 
  bcdDevice 1.03
  iManufacturer 0 
  iProduct 0 
  iSerial 0 
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 0x0042
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 2 Game_Keyboard
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Device
      bInterfaceSubClass 1 Boot Interface Subclass
      bInterfaceProtocol 1 Keyboard
      iInterface 2 Game_Keyboard
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.11
          bCountryCode 33 US
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 63
         Report Descriptors: 
           **UNAVAILABLE**
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0008 1x 8 bytes
        bInterval 1
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 3 Human Interface Device
      bInterfaceSubClass 1 Boot Interface Subclass
      bInterfaceProtocol 2 Mouse
      iInterface 4 Function_Device
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.11
          bCountryCode 33 US
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 176
         Report Descriptors: 
           **UNAVAILABLE**
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x03 EP 3 OUT
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0040 1x 64 bytes
        bInterval 1
Device Status: 0x0000
  (Bus Powered)

Bus 001 Device 004: ID 1bcf:0005 Sunplus Innovation Technology Inc. Optical Mouse
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 0 
  bDeviceSubClass 0 
  bDeviceProtocol 0 
  bMaxPacketSize0 8
  idVendor 0x1bcf Sunplus Innovation Technology Inc.
  idProduct 0x0005 Optical Mouse
  bcdDevice 0.14
  iManufacturer 0 
  iProduct 2 USB Optical Mouse
  iSerial 0 
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 0x0022
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0 
    bmAttributes 0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower 98mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 3 Human Interface Device
      bInterfaceSubClass 1 Boot Interface Subclass
      bInterfaceProtocol 2 Mouse
      iInterface 0 
        HID Device Descriptor:
          bLength 9
          bDescriptorType 33
          bcdHID 1.10
          bCountryCode 0 Not supported
          bNumDescriptors 1
          bDescriptorType 34 Report
          wDescriptorLength 75
         Report Descriptors: 
           **UNAVAILABLE**
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0007 1x 7 bytes
        bInterval 10
Device Status: 0x0000
  (Bus Powered)

Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.10
  bDeviceClass 9 Hub
  bDeviceSubClass 0 
  bDeviceProtocol 2 TT per port
  bMaxPacketSize0 64
  idVendor 0x0bda Realtek Semiconductor Corp.
  idProduct 0x5411 RTS5411 Hub
  bcdDevice 1.55
  iManufacturer 1 Generic
  iProduct 2 USB2.1 Hub
  iSerial 0 
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 0x0029
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0 
    bmAttributes 0xe0
      Self Powered
      Remote Wakeup
    MaxPower 0mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 9 Hub
      bInterfaceSubClass 0 
      bInterfaceProtocol 1 Single TT
      iInterface 0 
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0001 1x 1 bytes
        bInterval 12
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 1
      bNumEndpoints 1
      bInterfaceClass 9 Hub
      bInterfaceSubClass 0 
      bInterfaceProtocol 2 TT per port
      iInterface 0 
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0001 1x 1 bytes
        bInterval 12
Hub Descriptor:
  bLength 9
  bDescriptorType 41
  nNbrPorts 5
  wHubCharacteristic 0x00ad
    Per-port power switching
    Compound device
    Per-port overcurrent protection
    TT think time 16 FS bits
    Port indicators
  bPwrOn2PwrGood 50 * 2 milli seconds
  bHubContrCurrent 100 milli Ampere
  DeviceRemovable 0x38
  PortPwrCtrlMask 0xff
 Hub Port Status:
   Port 1: 0000.0303 lowspeed power enable connect
   Port 2: 0000.0103 power enable connect
   Port 3: 0000.0103 power enable connect
   Port 4: 0000.0100 power
   Port 5: 0000.0100 power
Binary Object Store Descriptor:
  bLength 5
  bDescriptorType 15
  wTotalLength 0x002a
  bNumDeviceCaps 3
  USB 2.0 Extension Device Capability:
    bLength 7
    bDescriptorType 16
    bDevCapabilityType 2
    bmAttributes 0x0000f41e
      BESL Link Power Management (LPM) Supported
    BESL value 1024 us 
    Deep BESL value 61440 us 
  SuperSpeed USB Device Capability:
    bLength 10
    bDescriptorType 16
    bDevCapabilityType 3
    bmAttributes 0x00
    wSpeedsSupported 0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport 1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat 10 micro seconds
    bU2DevExitLat 1023 micro seconds
  Container ID Device Capability:
    bLength 20
    bDescriptorType 16
    bDevCapabilityType 4
    bReserved 0
    ContainerID {20b9cde5-7039-e011-a935-0002a5d5c51b}
Device Status: 0x0001
  Self Powered

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 9 Hub
  bDeviceSubClass 0 
  bDeviceProtocol 1 Single TT
  bMaxPacketSize0 64
  idVendor 0x1d6b Linux Foundation
  idProduct 0x0002 2.0 root hub
  bcdDevice 6.00
  iManufacturer 3 Linux 6.0.0 xhci-hcd
  iProduct 2 xHCI Host Controller
  iSerial 1 0000:00:14.0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 0x0019
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0 
    bmAttributes 0xe0
      Self Powered
      Remote Wakeup
    MaxPower 0mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 9 Hub
      bInterfaceSubClass 0 
      bInterfaceProtocol 0 Full speed (or root) hub
      iInterface 0 
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x81 EP 1 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0004 1x 4 bytes
        bInterval 12
Hub Descriptor:
  bLength 11
  bDescriptorType 41
  nNbrPorts 12
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood 10 * 2 milli seconds
  bHubContrCurrent 0 milli Ampere
  DeviceRemovable 0x20 0x03
  PortPwrCtrlMask 0xff 0xff
 Hub Port Status:
   Port 1: 0000.0503 highspeed power enable connect
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
   Port 5: 0000.0503 highspeed power enable connect
   Port 6: 0000.0100 power
   Port 7: 0000.0100 power
   Port 8: 0000.0103 power enable connect
   Port 9: 0000.0103 power enable connect
   Port 10: 0000.0100 power
   Port 11: 0000.0100 power
   Port 12: 0000.0100 power
Device Status: 0x0001
  Self Powered

```

---

<div class="post-metadata">

### Author: ![seapat](https://discourse.nixos.org/user_avatar/discourse.nixos.org/seapat/32/29209_2.png) [@seapat](https://discourse.nixos.org/u/seapat)
#### Post date: [December 26, 2022, 4:25pm UTC](https://discourse.nixos.org/t/usb-mouse-and-keyboard-poweroff-too-soon-udev/22459/2 "2022-12-26T16:25:03Z")

</div>

I just found out that `powerManagement.powertop.enable = true;` was the cause for similar issues on my machine.

Furthermore, I noticed two things:

First, `programs.powertop` does not actually install powertop onto the system, so the `powertop` command won’t be available after rebuilding. But I don’t think that causes any issues, at least from my understanding.

Secondly, If I remember correctly, on fedora, `dnf` refuses to install powertop if power-profiles-daemon is already installed. I have that installed since I am using KDE. Maybe that is what causes those issues?
