piegames Asked: 2018-01-19 00:27:57 +0800 CST2018-01-19 00:27:57 +0800 CST 2018-01-19 00:27:57 +0800 CST 永久更改`/proc/acpi/wakeup` 772 我禁用了大部分条目,/proc/acpi/wakeup/以确保只有电源按钮和笔记本电脑盖可以恢复我的系统,而不是鼠标或键盘。问题是:每次我重新启动时,设置都会由于某种原因被重置。 有没有办法使这些更改永久化?有一些解决方法只是将命令放入与某些唤醒例程挂钩的脚本中,但真的没有其他解决方案吗? 我正在使用 Debian/Gnome Windows 10 双启动笔记本电脑 debian proc 7 个回答 Voted John Lindgren 2019-07-30T16:00:45+08:002019-07-30T16:00:45+08:00 对于 USB 鼠标或键盘,您可以使用 udev 规则使设置永久化。首先,使用 查找鼠标/键盘的 PCI 供应商 ID lsusb。对于我的鼠标,它是046d: 总线 001 设备 006:ID 046d :c52b Logitech, Inc. Unifying Receiver 然后创建一个类似 my 的“规则”文件/etc/udev/rules.d/logitech.rules,只需将“046d”替换为您自己设备的供应商 ID: ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTR{power/wakeup}="disabled" matcheek 2019-03-16T00:52:13+08:002019-03-16T00:52:13+08:00 acpitool可用于此apt install acpitool 然后 sudo acpitool -W [一些数字] 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 Hrishikesh Kadam 2021-02-16T07:31:07+08:002021-02-16T07:31:07+08:00 执行此操作的首选方法是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 详细解释见https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd Gerard H. Pille 2018-01-19T04:14:15+08:002018-01-19T04:14:15+08:00 Eric Garrido在那个 echo 中有一个脚本,/etc/rc.local允许唤醒他的系统的那些设备,到/proc/acpi/wakeup. for i in `/bin/grep USB /proc/acpi/wakeup | /usr/bin/awk '{print $1}'`; do echo $i > /proc/acpi/wakeup; done Dan Dishonored 2021-04-29T20:45:16+08:002021-04-29T20:45:16+08:00 我决定在/usr/lib/systemd/system-sleep/中创建脚本 根据手册页 systemd将在挂起之前运行它。 Best Answer Yuri 2018-01-19T01:22:07+08:002018-01-19T01:22:07+08:00 这/proc是一个包含运行时系统信息的虚拟文件系统。所以它的内容会在重启时重置。 // 编辑:设置一个udev 规则或创建一个脚本,为on start upecho设置正确的值。/proc/acpi/wakeup/ 21rw 2022-05-28T06:57:25+08:002022-05-28T06:57:25+08:00 如果条目仅在重新启动时反转,您可能能够在重新启动时摆脱 crontab。 在启动时,以下 crontab 将反转 XHC 条目。 @reboot /bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'
对于 USB 鼠标或键盘,您可以使用 udev 规则使设置永久化。首先,使用 查找鼠标/键盘的 PCI 供应商 ID
lsusb
。对于我的鼠标,它是046d:然后创建一个类似 my 的“规则”文件
/etc/udev/rules.d/logitech.rules
,只需将“046d”替换为您自己设备的供应商 ID:acpitool可用于此
apt install acpitool
然后 sudo acpitool -W [一些数字]
some number
设备 ID 来自哪里/proc/acpi/wakeup
执行此操作的首选方法是
service
使用 systemd 创建一个。添加脚本
rc.local
是不推荐的方式。~/scripts/disable-devices-as-wakeup.sh
。通过从终端执行它来测试它。
如果一切正常,那么让我们提供服务。
~/scripts/disable-devices-as-wakeup.service -
/etc/systemd/system/
.详细解释见https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd
Eric Garrido在那个 echo 中有一个脚本,
/etc/rc.local
允许唤醒他的系统的那些设备,到/proc/acpi/wakeup
.我决定在/usr/lib/systemd/system-sleep/中创建脚本
根据手册页 systemd将在挂起之前运行它。
这
/proc
是一个包含运行时系统信息的虚拟文件系统。所以它的内容会在重启时重置。// 编辑:设置一个udev 规则或创建一个脚本,为on start up
echo
设置正确的值。/proc/acpi/wakeup/
如果条目仅在重新启动时反转,您可能能够在重新启动时摆脱 crontab。
在启动时,以下 crontab 将反转 XHC 条目。
@reboot /bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'