Linux でサスペンドからのレジューム後にタッチパッドが使えない時は

 ラップトップ PC によっては,サスペンドからのレジューム後にタッチパッドが使えなくなる場合があります 1。BIOS/UEFI の設定で改善したという話もあり,どうも BIOS/UEFI の挙動に原因があるように見受けられますが,幸いにもドライバモジュールの再読込だけでも正しく認識されるようになります。具体的には,サスペンド時に modprobe -r psmouse,レジューム時に modprobe psmouse を実行してやれば良いわけです。
 なお,最近の機種の場合,異なるバスのデバイスが使われている場合もあり,その場合には i2c_hid や rmi_smbus を試す必要があるようです。なお,これらのモジュールはタッチパッド以外にも使われている場合があり,アンロードは psmouse の場合ほど安全ではないため,事前に調査するべきでしょう。

 さて,早速片付けてしまいましょう。
 まずはサスペンド時に modprobe -r するサービスを書きます。

# vi /etc/systemd/system/tptweak-suspend.service


[Unit]
Description=Unload psmouse
Before=suspend.target

[Service]
Type=simple
ExecStart=/sbin/modprobe -r psmouse

[Install]
WantedBy=suspend.target

 同様に,レジューム時に modprobe するサービスを書きます。

# vi /etc/systemd/system/tptweak-resume.service


[Unit]
Description=Load psmouse
After=suspend.target

[Service]
Type=simple
ExecStart=/sbin/modprobe psmouse

[Install]
WantedBy=suspend.target

 あとは,登録するだけです。簡単ですね。

# systemctl daemon-reload
# systemctl enable tptweak-suspend.service
# systemctl enable tptweak-resume.service

 非常にシンプルなサービスのため,たまには失敗するかもしれませんが,今のところうまく機能しています。

参照:
Synaptics タッチパッド – ArchWiki
電源管理 – ArchWiki
サスペンドの前後でコマンドを実行する。 – ガジェット好きの日記

Notes:

  1. いままでに何台かの富士通製で遭遇。