从19.04更新到19.10以来,我发现移动鼠标会将计算机从睡眠状态唤醒。我使用 Logitech 鼠标及其 Unifying 接收器连接到 USB 3.0 端口(USB 2.0 端口的行为相同)。此行为与 19.04 不同。
我在 2017 年的一篇旧帖子中发现了类似的内容,鼠标移动将计算机从挂起状态唤醒,无法禁用它,并且输出显示grep --color -E '|enabled' /sys/bus/usb/devices/*/power/wakeup
:
/sys/bus/usb/devices/1-1.3.1/power/wakeup:disabled
/sys/bus/usb/devices/1-1.3/power/wakeup:disabled
/sys/bus/usb/devices/1-1/power/wakeup:disabled
/sys/bus/usb/devices/2-1.4/power/wakeup:disabled
/sys/bus/usb/devices/2-1/power/wakeup:disabled
/sys/bus/usb/devices/2-2/power/wakeup:enabled
/sys/bus/usb/devices/3-1.4/power/wakeup:disabled
/sys/bus/usb/devices/3-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
Run Code Online (Sandbox Code Playgroud)
如您所见,USB 设备 2-2 已启用。
并lsusb -t
显示:
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 4: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 3, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 6, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 4: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
Run Code Online (Sandbox Code Playgroud)
我应该disable
用这样的东西吗/etc/rc.local
?
# Disable
for f in /sys/bus/usb/devices/*/power/wakeup
do
echo "disabled" > $f
done
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种不同的行为?在 19.10 中禁用此“新”功能的最佳方法是什么?
更新#1:
另见...
http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=1985
grep -i 启用 /proc/acpi/wakeup
EHC1 S3 *enabled pci:0000:00:1d.0
XHC S3 *enabled pci:0000:00:14.0
PWRB S4 *enabled platform:PNP0C0C:00
LID0 S4 *enabled platform:PNP0C0D:00
Run Code Online (Sandbox Code Playgroud)
显示 EHC1 和 XHC USB 集线器(以及盖子和电源按钮)已启用。
建议...
将以下行添加到/etc/rc.local
...
echo "EHC1" > /proc/acpi/wakeup
echo "XHC" > /proc/acpi/wakeup
Run Code Online (Sandbox Code Playgroud)
我在 2017 年的一篇旧帖子中发现了类似的内容,鼠标移动将计算机从挂起状态唤醒,无法禁用它,以及输出
grep --color -E '|enabled' /sys/bus/usb/devices/*/power/wakeup
显示:
/sys/bus/usb/devices/1-1.3.1/power/wakeup:disabled
/sys/bus/usb/devices/1-1.3/power/wakeup:disabled
/sys/bus/usb/devices/1-1/power/wakeup:disabled
/sys/bus/usb/devices/2-1.4/power/wakeup:disabled
/sys/bus/usb/devices/2-1/power/wakeup:disabled
/sys/bus/usb/devices/2-2/power/wakeup:enabled
/sys/bus/usb/devices/3-1.4/power/wakeup:disabled
/sys/bus/usb/devices/3-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
Run Code Online (Sandbox Code Playgroud)
如您所见,USB 设备 2-2 已启用。如果我拔下 Logitech Unifying 接收器,然后将其重新插入,然后重复该grep
命令,它现在显示为“已禁用”。这意味着启用状态仅在启动时确定。
我当前的修复是编辑/etc/rc.local
和添加...
# Disable wake computer from mouse movement
for f in /sys/bus/usb/devices/*/power/wakeup
do
echo "disabled" > $f
done
Run Code Online (Sandbox Code Playgroud)
就在exit 0
文件末尾找到的之前。这会强制所有 USB 设备显示为已禁用。
睡眠仍然有效。并且鼠标移动不再从睡眠中唤醒。