You are not logged in.

#1 2025-05-06 21:03:31

stygian_nymph
Member
Registered: 2024-05-19
Posts: 15

[SOLVED] Is this udev rule for disabling USB wakeup correct?

Hello, I'm on Arch Linux with KDE , running kernel 6.14.5 on ASUS A15 FA507

$ kinfo
Operating System: Arch Linux 
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.13.0
Qt Version: 6.9.0
Kernel Version: 6.14.5-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 9 7940HS w/ Radeon 780M Graphics
Memory: 14.8 GiB of RAM
Graphics Processor 1: NVIDIA GeForce RTX 4070 Laptop GPU
Graphics Processor 2: AMD Radeon 780M

I followed Waking from suspend with USB device on the udev wiki page to create a rule but for disabling a USB Corsair mouse:

$ cat /etc/udev/rules.d/50-wake-on-device.rules 
ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b93", ATTR{power/wakeup}="disabled", ATTR{driver/1-2/power/wakeup}="disabled"

I got the vendor and product identifiers of the USB device according to the wiki using the following commands:

$ lsusb | grep -i corsair
Bus 001 Device 003: ID 1b1c:1b93 Corsair CORSAIR KATAR PRO Gaming Mouse
$ grep 1b93 /sys/bus/usb/devices/*/idProduct 
/sys/bus/usb/devices/1-2/idProduct:1b93

and the rule worked perfectly (mouse cannot wakup laptop when laptop is suspended. But I am seeing the following errors in journalctl:

$ journalctl -b -e -p 3
May 06 23:32:01 archlinux (udev-worker)[559]: 1-2:1.0: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.0/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[559]: 1-2:1.0: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.0/driver/1-2/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[561]: 1-2:1.3: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.3/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[561]: 1-2:1.3: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.3/driver/1-2/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[534]: 1-2:1.2: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.2/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[534]: 1-2:1.2: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.2/driver/1-2/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[517]: 1-2:1.1: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.1/power/wakeup}="disabled", ignoring: No such file or directory
May 06 23:32:01 archlinux (udev-worker)[517]: 1-2:1.1: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.1/driver/1-2/power/wakeup}="disabled", ignoring: No such file or directory

So what is wrong with the rule I created?

EDIT: SOLVED

I found the dedicated wiki page for udev rules for wakup triggers, and an older thread with similar problem, and changed the rule to:

$ cat /etc/udev/rules.d/50-wake-on-device.rules 
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b93", ATTR{power/wakeup}="disabled"

That produced only these errors on journalctl:

May 07 11:56:05 archlinux (udev-worker)[470]: 1-2:1.0: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.0/power/wakeup}="disabled", ignoring: No such file or directory
May 07 11:56:05 archlinux (udev-worker)[472]: 1-2:1.3: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.3/power/wakeup}="disabled", ignoring: No such file or directory
May 07 11:56:05 archlinux (udev-worker)[494]: 1-2:1.1: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.1/power/wakeup}="disabled", ignoring: No such file or directory
May 07 11:56:05 archlinux (udev-worker)[509]: 1-2:1.2: /etc/udev/rules.d/50-wake-on-device.rules:1 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:08.1/0000:66:00.3/usb1/1-2/1-2:1.2/power/wakeup}="disabled", ignoring: No such file or directory

Then I restricted the rule to the usb device "1-2" so that it doesn't search in the interfaces (1-2:1.0, 1-2:1.3, ..etc) by modifying the rule to:

$ cat /etc/udev/rules.d/50-wake-on-device.rules
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b93", ATTR{power/wakeup}="disabled"

and that solved the problem.

Last edited by stygian_nymph (2025-05-07 09:23:48)

Offline

Board footer

Powered by FluxBB