我禁用了大部分条目,/proc/acpi/wakeup/
以确保只有电源按钮和笔记本电脑盖可以恢复我的系统,而不是鼠标或键盘。问题是:每次重新启动时,设置都会因某种原因重置。
有没有办法让这些改变永久化?有一些解决方法,只需将命令放入与某些唤醒例程挂钩的脚本中,但真的没有其他解决方案吗?
我使用的是 Debian/Gnome Windows 10 双启动笔记本电脑
答案1
对于 USB 鼠标或键盘,您可以使用 udev 规则使设置永久生效。首先,使用 查找您的鼠标/键盘的 PCI 供应商 ID lsusb
。对于我的鼠标来说,它是046d:
总线 001 设备 006:ID046d:c52b Logitech, Inc. 统一接收器
然后创建一个像我一样的“规则”文件/etc/udev/rules.d/logitech.rules
,只需将“046d”替换为您自己设备的供应商ID:
ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTR{power/wakeup}="disabled"
答案2
执行此操作的首选方法是使用service
systemd 创建一个。
添加脚本rc.local
是不推荐的方式。
在任意位置创建脚本文件。前任:
~/scripts/disable-devices-as-wakeup.sh
。#!/bin/bash declare -a devices=(XHC OCH1 USB1 USB2) # <-- Add your entries here for device in "${devices[@]}"; do if grep -qw ^$device.*enabled /proc/acpi/wakeup; then sudo sh -c "echo $device > /proc/acpi/wakeup" fi done
通过从终端执行来测试它。
如果一切正常,那么我们就提供服务。
$ touch ~/scripts/disable-devices-as-wakeup.service
〜/scripts/disable-devices-as-wakeup.service -
[Unit] Description=Disable devices as wakeup [Service] ExecStart=/home/username/scripts/disable-devices-as-wakeup.sh Type=oneshot [Install] WantedBy=multi-user.target
将服务复制或移动到
/etc/systemd/system/
。$ sudo cp ~/scripts/disable-devices-as-wakeup.service /etc/systemd/system/
启用该服务。
$ systemctl enable disable-devices-as-wakeup.service
重新启动操作系统并检查状态。
$ systemctl status disable-devices-as-wakeup.service
找到详细解释这里。
答案3
acpitool可以用于此apt install acpitool
进而
sudo acpitool -W [some number]
some number
设备ID来自哪里/proc/acpi/wakeup
maciej@michal:~$ sudo acpitool -W 22
Changed status for wakeup device #22 (UHC6)
Device S-state Status Sysfs node
---------------------------------------
1. PCE2 S4 *disabled pci:0000:00:02.0
2. PCE3 S4 *disabled
3. PCE4 S4 *disabled pci:0000:00:04.0
4. RLAN S4 *enabled pci:0000:02:00.0
5. PCE5 S4 *disabled
6. PCE6 S4 *disabled
7. PCE7 S4 *disabled pci:0000:00:07.0
8. PCE9 S4 *disabled
9. PCEA S4 *disabled
10. PCEB S4 *disabled
11. PCEC S4 *disabled
12. SBAZ S4 *disabled pci:0000:00:14.2
13. PS2K S4 *disabled
14. PS2M S4 *disabled
15. UAR1 S4 *disabled pnp:00:03
16. P0PC S4 *disabled pci:0000:00:14.4
17. UHC1 S4 *disabled pci:0000:00:12.0
18. UHC2 S4 *disabled pci:0000:00:12.1
19. UHC3 S4 *disabled pci:0000:00:12.2
20. USB4 S4 *disabled pci:0000:00:13.0
21. UHC5 S4 *disabled pci:0000:00:13.1
22. UHC6 S4 *disabled pci:0000:00:13.2
23. UHC7 S4 *enabled pci:0000:00:14.5
答案4
我决定创建脚本/usr/lib/systemd/系统睡眠/
根据手册页 系统将在挂起之前运行它。