如何使用 USB 键盘从挂起状态唤醒 (16.04 LTS)

Mik*_*ick 5 usb suspend udev wakeup 16.04

几天来,我一直在用头撞墙……我已经阅读了几个论坛……等等。没有任何效果。我的机器是戴尔 Optiplex 330,它最初运行的是 Windows 10,从 USB 键盘/鼠标唤醒工作正常。现在,无论我做什么,我似乎都无法让我的计算机从我的键盘和/或鼠标暂停状态中唤醒。有什么想法吗?

小智 1

下面是执行建议的纯 udev 方法https://askubuntu.com/a/848699/1048516

  • 成为根用户
  • 大致了解鼠标和键盘的连接位置:
# udevadm info  /dev/input/by-path/*-kbd
P: /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.0/0003:045E:001D.0002/input/inp
ut4/event4
[...]
# udevadm info  /dev/input/by-path/*-mouse | grep P:
P: /devices/pci0000:00/0000:00:14.0/usb2/2-4/2-4:1.0/0003:046D:C03D.0001/input/input3/event3
P: /devices/pci0000:00/0000:00:14.0/usb2/2-4/2-4:1.0/0003:046D:C03D.0001/input/input3/mouse0

Run Code Online (Sandbox Code Playgroud)
  • 从路径来看,键盘位于usb2/2-3/2-3.1,鼠标位于usb2/2-4
  • 检查当前唤醒状态:
# grep . /sys/bus/usb/devices/*/power/wakeup
/sys/bus/usb/devices/1-1/power/wakeup:disabled
/sys/bus/usb/devices/2-10/power/wakeup:disabled
/sys/bus/usb/devices/2-3.1/power/wakeup:disabled
/sys/bus/usb/devices/2-3/power/wakeup:disabled
/sys/bus/usb/devices/2-4/power/wakeup:disabled
/sys/bus/usb/devices/2-8/power/wakeup:disabled
/sys/bus/usb/devices/4-1/power/wakeup:disabled
/sys/bus/usb/devices/usb1/power/wakeup:disabled
/sys/bus/usb/devices/usb2/power/wakeup:disabled
/sys/bus/usb/devices/usb3/power/wakeup:disabled
/sys/bus/usb/devices/usb4/power/wakeup:disabled
Run Code Online (Sandbox Code Playgroud)
  • 将以下内容添加到文件 /etc/udev/rules.d/10-wake-computer-with-keyboard-or-mouse.rules
# /etc/udev/rules.d/10-wake-computer-with-keyboard-or-mouse.rules 

# - enable wakeup on ALL USB hubs (0-99)
# e.g. ls /sys/bus/usb/devices/usb*
# - rumor is that this step may not be necessary 
# on all computers
# (I couldn't figure out how to enable wake on
# only parent hub of the keyboard and mouse.)
KERNEL=="usb[0-9]|usb[0-9][0-9]", SUBSYSTEM=="usb", DRIVER=="usb", ATTR{power/wakeup}="enabled"

# enable wakeup for all keyboards
# Keyboards are HID class 3 protocol 1 devices.
SUBSYSTEM=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ATTR{../power/wakeup}="enabled"

# enable wakeup for all mice (button click, not movement)
# Mice are HID class 3 protocol 2 devices.
SUBSYSTEM=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ATTR{../power/wakeup}="enabled"
Run Code Online (Sandbox Code Playgroud)
  • 重新加载并触发 udev:
# systemctl restart udev.service
# udevadm trigger
Run Code Online (Sandbox Code Playgroud)
  • 再次检查允许的唤醒状态:
# grep . /sys/bus/usb/devices/*/power/wakeup
/sys/bus/usb/devices/1-1/power/wakeup:disabled
/sys/bus/usb/devices/2-10/power/wakeup:disabled
/sys/bus/usb/devices/2-3.1/power/wakeup:enabled
/sys/bus/usb/devices/2-3/power/wakeup:disabled
/sys/bus/usb/devices/2-4/power/wakeup:enabled
/sys/bus/usb/devices/2-8/power/wakeup:disabled
/sys/bus/usb/devices/4-1/power/wakeup:disabled
/sys/bus/usb/devices/usb1/power/wakeup:enabled
/sys/bus/usb/devices/usb2/power/wakeup:enabled
/sys/bus/usb/devices/usb3/power/wakeup:enabled
/sys/bus/usb/devices/usb4/power/wakeup:enabled

Run Code Online (Sandbox Code Playgroud)
  • 测试(多种方法之一)
# systemctl unmask suspend.target
# systemctl suspend
Run Code Online (Sandbox Code Playgroud)


jon*_*610 0

我以前经历过这种情况,虽然很少。

尝试插入 ps/2 键盘和/或鼠标,看看这是否可以解决您的问题。

某些主板存在 USB 端口“进入睡眠状态”的问题。

另外,重新启动,进入 BIOS 并检查您用于 kybd/鼠标的 USB 端口是否完全处于活动状态。BIOS 使用不同的功能和术语来描述这一点。寻找最不可能让 USB 端口进入睡眠状态的下拉选项。