dothikoのカクカクワールド2D REBOOT

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか色々。

なんか知らんけど突然Xubuntuのサスペンドが壊れた

Xubuntu Linux 18.04.3を使っているのですがアップデート直後からだと思いますが、少なくとも3週間程前までは普通に動作していた。 実家に来て実家メインマシンをアップデートしたらこのようになりました。

  • パネルのアクションボタンからサスペンド指定、もしくはターミナルからsystemctl suspendを実行
  • サスペンドに突入、しかしGPUファンが全開になってそのまま。当然電源遮断とリセット以外、何も受け付けない。

なお、マシン構成はなかなか古めかしいものではありますが

  • MSI P67A-GD55
  • i5-3470, DDR3 32GB
  • クロシコのRX550
  • ADATAの256GB SSD(ブート)
  • WD BLUEな1TB SSD(ホーム)
  • 雑多な書き込み用&SSD寿命延長用のWDの512GB SSD

といった感じでございます。

なお、自宅のRyzen 2600 + RX460では同じXubuntu 18.04.3において、同様の問題は発生していない(…筈)

そこで解決方法を探っていたところ、

「一回でも sudo pm-suspendを実行した後であれば、 sudoの不要なsystemctl suspendでサスペンドが出来る」

事に気づきました。

そんなわけで、pkexecを利用した、pm-suspendとsystemctl suspendの切り替えスクリプトを作成。 これをパネルアイテムとして登録してアクションボタンを代用することとしました。

パスワード入力が面倒なので一度だけしかやりたくない、というね。

/tmpにフラグファイルが存在すればsystemctl suspendを実行するという荒い作りですが、まぁ治るまでの辛抱ですからなぁ

#!/bin/sh

FLAGFILE=/tmp/suspend-workaroud.flag

if [ ! -e "$FLAGFILE" ];then
    pkexec pm-suspend
    if [ "$?" = "0" ];then
        touch $FLAGFILE
    fi
else
    systemctl suspend
fi

実際には、最初のpm-suspendはそのまま何も起こさず抜けてしまう場合がありましたので、初回サスペンド時のみ、二度クリックする必要があるかもです。

ではでは