我的 18.04 Ubuntu Ryzen 桌面在挂起后会立即自动唤醒。我已将问题追溯到 /proc/acpi/wakeup 在启用的服务列表中,有两个服务(标记为:AS43 和 PTXH),我可以使用以下 shell 命令禁用它们:
sudo -s
echo AS43 > /proc/acpi/wakeup
echo PTXH > /proc/acpi/wakeup
一旦完成 - 系统仅通过键盘输入即可从睡眠状态唤醒 - 一切正常。但是我似乎无法自动执行此过程。
一个解决方案(我也接受其他解决方案)是创建一个服务 /etc/systemd/system/suspendfix.service,如下所示:
[Unit]
Description=fix to prevent system from waking immediately after suspend
[Service]
Type=simple
ExecStartPre=/bin/sh -c '/bin/echo GPP2 > /proc/acpi/wakeup'
ExecStart=/bin/sh -c '/bin/echo AS43 > /proc/acpi/wakeup'
ExecStartPost=/bin/sh -c '/bin/echo PTXH > /proc/acpi/wakeup'
RemainAfterExit=yes
TimeoutSec=90s
[Install]
WantedBy=sleep.target
WantedBy=multi-user.target
但这似乎不起作用。要么是我的服务脚本不正确,要么是某些东西将有问题的 AS43 和 PTXH 重新切换为启用状态,而不管这个 systemd 服务文件如何。任何帮助,非常感谢!~
~
答案1
我的联想 Yoga 910 也出现了同样的问题(USB 重新唤醒)。mike-g2 (mikeg-utk) 解决方案:
创建文件:
/etc/systemd/system/toggle.XHC.to.fix.suspend.issue.service
包含以下内容:[Unit] Description="Make suspend ignore USB wake up." [Service] ExecStart=/bin/bash -c "echo XHC >> /proc/acpi/wakeup" [Install] WantedBy=multi-user.target
在 /etc/systemd/system/multi-user.target.wants/ 中创建指向上述脚本的符号链接
ln -s /etc/systemd/system/toggle.XHC.to.fix.suspend.issue.service /etc/systemd/system/multi-user.target.wants/
启动服务
sudo systemctl daemon-reload sudo systemctl start toggle.XHC.to.fix.suspend.issue.service
检查服务是否已启动
sudo systemctl status toggle.XHC.to.fix.suspend.issue.service
在启动时启用它
sudo systemctl enable toggle.XHC.to.fix.suspend.issue.service
答案2
我在使用 Ryzen 2600 和 Ubuntu 18.04 时也遇到了同样的问题。
您的脚本非常有用。为了在启动时执行它,我添加了您的行
echo AS43 > /proc/acpi/wakeup
echo PTXH > /proc/acpi/wakeup
保存到一个/etc/rc.local
文件。
然后我添加了一个 systemd 服务来启动这个脚本。我按照本教程。
感谢您找到唤醒触发器!