マウスでのサスペンド復帰を無効化する

メインのPCがなぜか勝手にサスペンドから復帰するという怪奇現象が起きている。
観察していたところ、どうも冷蔵庫が唸るときに連動して起動しているように見える。

まさか本当に冷蔵庫と連動しているわけではなく、思い当たるのは冷蔵庫の振動をマウスが拾っているのが原因ではないかと思われる。

というわけで無効化する。

input-utilsのインストール

sudo apt install input-utils

マウスの確認

$ sudo lsinput

<中略>

/dev/input/event12
   bustype : BUS_USB
   vendor  : 0x47d
   product : 0x8018
   version : 273
   name    : "Kensington Expert Wireless TB Mo"
   phys    : "usb-0000:02:00.0-4/input0"
   uniq    : ""
   bits ev : (null) (null) (null) (null)

/dev/input/event13
   bustype : BUS_USB
   vendor  : 0x47d
   product : 0x8018
   version : 273
   name    : "Kensington Expert Wireless TB Co"
   phys    : "usb-0000:02:00.0-4/input0"
   uniq    : ""
   bits ev : (null) (null) (null)

phys : "usb-0000:02:00.0-4/input0"の数字を参考に調べる

復帰が有効になっているデバイス?の一覧を出力

cat /proc/acpi/wakeup | grep enable
GPP0      S4    *enabled   pci:0000:00:01.1
GPP8      S4    *enabled   pci:0000:00:03.1
GPPA      S4    *enabled   pci:0000:00:03.3
GP17      S4    *enabled   pci:0000:00:07.1
XHC0      S4    *enabled   pci:0000:0b:00.3
GP18      S4    *enabled   pci:0000:00:08.1
GPP2      S4    *enabled   pci:0000:00:01.3
AS43      S4    *enabled   pci:0000:04:00.0
PTXH      S4    *enabled   pci:0000:02:00.0

最後のPTXHを無効化すればいいはず。

無効化する

普通に sudo してもだめだったので一度superuserになってから実行した。

$ sudo -i
# echo PTXH > /proc/acpi/wakeup 
# exit

一応うまくは行ったが今度はキーボードでも復帰しなくなった。
別のUSB端子からつながっていたテンキーでは復帰できた。

どうも一つのUSBから分配してるやつはまとめて停止されるらしい。
ひとまず今回はキーボードの接続先を変えて解決した。

再起動時に無効化されるようにする

$ sudo crontab -e

以下の一行を追加

@reboot echo PTXH > /proc/acpi/wakeup 

再起動して確認

結果

マウスからのスリープ復帰はとりあえず無効化できた。
ただ、原因不明の復帰自体はまだ発生しており、原因は他にある模様。

参考

マウスに触れただけでスリープ解除しないようにしたい
LinuxでUSBマウスからスリープ復帰させないようにする方法のメモ
crontabによる起動時実行