Linux PC が勝手にサスペンドから復帰しないようにするには

Linuxでサスペンドしたのに、勝手に復帰してしまう時は

 cat /proc/acpi/wakeup | grep enable 
で調べてみると良いです。 ぼくの場合は
# cat /proc/acpi/wakeup | grep enabled
PXSX      S4    *enabled   pci:0000:04:00.0
XHC       S4    *enabled   pci:0000:00:14.0

となりました。

勝手に復帰させないための、とりあえずの対処

勝手に復帰させないためには、上記の結果をすべてdisbleにしておきます:

echo 'disabled' > /sys/bus/pci/devices/0000\:04\:00.0/power/wakeup
echo 'disabled' > /sys/bus/pci/devices/0000\:00\:14.0/power/wakeup

しかし、これは再起動するとまたenableに戻ってしまいます。

パーマネントに勝手な復帰を抑制するには

幸い(笑)、ぼくのPCはsystemdを使っていないので、rc.localに以下を書き込みます:

echo PXSX > /proc/acpi/wakeup
echo XHC > /proc/acpi/wakeup
ただ、こうしても
# cat /proc/acpi/wakeup | grep enabled
PXSX      S4    *enabled   pci:0000:04:00.0

が残ってしまいます。

それでも、勝手にサスペンドから復帰するのは抑制されています。

ACPI wakeup 4-letters code meaning?によれば4文字の短縮した表記の意味は以下のようです:

    PS2K: PS/2 keyboard
    PS2M: PS/2 mouse
    PWRB: Power button
    LID: Laptop lid
    RP0x or EXPx: PCIE slot #x (aka PCI Express Root Port #x)
    EHCx or USBx: USB 2.0 (EHCI) chip
    XHC: USB 3.0 (XHCI) chip
    PEGx: PCI Express for Graphics slot #x

残念ながら、PXSXはよく分かりません。

参考にしたページ

systemd を使っている場合は Arch Linuxの 電源管理のページが参考になりそうです。

2 件のコメント

  • 参考にさせていただきました。
    ありがとうございます。
    私は、USBキーボード、USB無線マウスを使っています。
    私は、crontabで、パーマネントにしました。

    $ sudo crontab -l
    @reboot echo 'disabled' > /sys/bus/pci/devices/0000\:00\:1a.0/power/wakeup
    @reboot echo 'disabled' > /sys/bus/pci/devices/0000\:00\:1d.0/power/wakeup
    
    • ユーザーの cron ではなくて system のcronですね。そういうやり方もありますね。

      コメントありがとうございました。