暂停立即重启 - 使用 systemd 服务编辑 acpi/wakeup

暂停立即重启 - 使用 systemd 服务编辑 acpi/wakeup

我的 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) 解决方案

  1. 创建文件:/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
    
  2. 在 /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/
    
  3. 启动服务

    sudo systemctl daemon-reload
    sudo systemctl start toggle.XHC.to.fix.suspend.issue.service
    
  4. 检查服务是否已启动

    sudo systemctl status toggle.XHC.to.fix.suspend.issue.service
    
  5. 在启动时启用它

    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 服务来启动这个脚本。我按照本教程

感谢您找到唤醒触发器!

相关内容