November 27, 2022

配置电源管理——禁止 usb 唤醒

Linux 主机总是不经意被鼠标移动唤醒,本篇记录如何禁止此种特性。

配置

确定鼠标设备

USB 键鼠套装,类型为 Logi。查看 usb 并过滤关键字

$ lsusb | grep -i logitech
Bus 001 Device 005: ID 046d:c534 Logitech, Inc. Unifying Receiver

有两块信息需要记录

  1. device path: 001/005
  2. device id: 046d(vendor)/c534(product)

查看 udev 属性

$ udevadm info --attribute-walk --name /dev/bus/usb/001/005
  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1/1-3.1.1':
    KERNEL=="1-3.1.1"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ATTR{authorized}=="1"
    ATTR{avoid_reset_quirk}=="0"
    ATTR{bConfigurationValue}=="1"
    ATTR{bDeviceClass}=="00"
    ATTR{bDeviceProtocol}=="00"
    ATTR{bDeviceSubClass}=="00"
    ATTR{bMaxPacketSize0}=="8"
    ATTR{bMaxPower}=="98mA"
    ATTR{bNumConfigurations}=="1"
    ATTR{bNumInterfaces}==" 2"
    ATTR{bcdDevice}=="2901"
    ATTR{bmAttributes}=="a0"
    ATTR{busnum}=="1"
    ATTR{configuration}=="RQR29.01_B0016"
    ATTR{devnum}=="5"
    ATTR{devpath}=="3.1.1"
    ATTR{idProduct}=="c534"
    ATTR{idVendor}=="046d"
    ...
    ATTR{power/wakeup}=="enabled"
    ...

添加 udev rule

新建配置文件 /etc/udev/rules.d/logitech-unifying.rules,其内容为

ACTION=="change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c534", ATTR{power/wakeup}="disabled"

与 udevadm 查看到的内容一致。匹配 usb 设置 id 修改 attribute power/wakeup 为 disabled

重新加载配置

$ sudo udevadm trigger

# check again
$ udevadm info --attribute-walk --name /dev/bus/usb/001/005

现在看到的 power/wakeup 应该为 "disabled"。此时可以休眠电脑并进行测试