问题:我晚上让电脑休眠,我的猫通过踩键盘将其唤醒。是的,休眠又称为挂起到磁盘,带有systemctl hibernate
.不暂停内存。我曾经认为,一旦完成,休眠将与正常关机没有区别,但显然情况并非如此,因为正常关机后计算机不会通过 USB 唤醒。
系统:Debian 10,主板华硕B450。
我尝试过的:
我在 BIOS 上找不到任何东西。
cat /sys/bus/usb/devices/usb[1-7]/power/wakeup
全部回归disabled
。
下面还有其他“设备” /sys/bus/usb/devices/
,但它们似乎都是集线器并且没有该power/wakeup
选项。他们都有这样的名字:1-0:1.0
。
我想用软件来解决这个问题。我会不是喜欢:
- 任何涉及改变我的设置、锁定房间、卖猫等的事情;
- 关闭电源板。路由器已连接到它,当我睡觉时其他人可能需要 wifi。
我在这里先向您的帮助表示感谢。
编辑:
cat /proc/acpi/wakeup
返回:
Device S-state Status Sysfs node
GPP0 S4 *disabled
GPP1 S4 *disabled
GPP3 S4 *disabled
GPP4 S4 *disabled
GPP5 S4 *disabled
GPP6 S4 *disabled
GPP7 S4 *disabled
GPP8 S4 *enabled pci:0000:00:03.1
X161 S4 *disabled pci:0000:08:00.0
GPP9 S4 *disabled
X162 S4 *disabled
GPPA S4 *disabled
GPPB S4 *disabled
GPPC S4 *disabled
GPPD S4 *disabled
GPPE S4 *disabled
GPPF S4 *disabled
GP10 S4 *disabled
GP11 S4 *disabled
GP12 S4 *enabled pci:0000:00:07.1
GP13 S4 *enabled pci:0000:00:08.1
XHC0 S4 *enabled pci:0000:0a:00.3
GP30 S4 *enabled pci:0000:00:08.2
GP31 S4 *enabled pci:0000:00:08.3
PS2K S3 *disabled
PS2M S3 *disabled
GPP2 S4 *enabled pci:0000:00:01.3
PX11 S4 *disabled
PX12 S4 *disabled
RLAN S4 *disabled pci:0000:07:00.0
PTXH S4 *enabled pci:0000:01:00.0
答案1
内核中的 ACPI 状态有一些背景知识文档。
由于键盘大概是USB设备,如果无法禁用,您可以尝试禁用控制器。此外/sys/bus/usb/devices/
,伪文件中还列出了/proc/acpi/wakeup
您可以禁用的设备。这些往往位于主板上,而不是热插拔。这 4 个角色的名字相当晦涩,来自 BIOS,但其中一些在这个中有描述回答。您可以通过将其名称写入文件来切换其中之一,例如:
echo XHC0 >/proc/acpi/wakeup
这应该会禁用您的 USB 3 控制器。正如 CM 在评论中指出的那样,您仍然依赖于 BIOS 的功能,因此可能需要暂停到 RAM。
对于永久设置,您需要在每次启动时写入此内容,正如您所发现的那样,systemd-tmp 文件实用程序可以使用其通用方法来做到这一点。创建一个文件,例如/etc/tmpfiles.d/disable-usb-wake.conf
包含以下行的文件
# Path Mode UID GID Age Argument
w /proc/acpi/wakeup - - - - XHC0
第一行只是一个注释。man tmpfiles.d
格式请参见。