2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ubuntu 14.04で休止状態(hibernate)ができない

Posted at

備忘録: 理由の説明とかはあまり書いていません。

バッテリー残量が不足するとクラッシュするので困っていた。hibernateができないというのは、具体的には以下のことができない。困った。

  1. sudo pm-hibernateを実行するとクラッシュする
  2. システム設定 > 電源 > 電力がひどく低下した時の動作ハイバーネートを選択できない
  3. 復帰後の画面がロックされてない

ハイバーネートに失敗する

まずpm-hibernateコマンドできちんとハイバーネートが機能するか確認する。自分の場合クラッシュして、起動時に"System problem detected"のメッセージが表示された。

ハードウェアやスワップ、その他諸々の都合で、(そのままでは)機能しないことがある模様。RAMの内容を退避するswapが足りないというのがありがちらしいが、freeでRAMとswapの容量を確認したところ、問題ない。

自分の場合、問題は/sys/power/image_sizeにあった。これは退避イメージサイズの上限を規定するのだが、恐らくこれが小さかったようだ。値を0にすると最適~みたいなよくある仕組みなので、どこかのタイミング(/etc/rc.localなど)でecho 0 > /sys/power/image_sizeを実行する。上手くいった。

ハイバーネートを有効にしたい

問題なければ、機能としてハイバーネートを有効にすると、いろいろな所でハイバーネートができるようになる。
有効にするには/var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaを作成し、以下の内容を書き込む。/var/libでだめな場合は/etcにという情報もある。詳しくは理解していないのでググろう(沢山出てくる)。

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

ハイバーネート復帰後にロックスクリーンを表示したい

こちらのmzzzzb氏の回答を参考にして、/etc/acpi/hibernate.shを作成し、以下の内容を書き込んだ。

if [ x$LOCK_SCREEN = xtrue ]; then
    if pidof xscreensaver > /dev/null; then
    for x in /tmp/.X11-unix/*; do
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
        getXuser;
        if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
        . /usr/share/acpi-support/screenblank
        fi
    done
    fi
fi
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?