gentooでハイバネートとかサスペンドとか

私のネットブック(Aspire One D257)にはgentooが入っているのですが、ハイバネートとかサスペンドとか使ってません。 せっかくノートパソコンなんだし色々活用していきたいよねー、ということでセットアップしてみた。

とりあえず必要なパッケージを入れる。

# emerge hibernate-script

これの他にもpm-utilsというのがあるのだけれど、私の環境ではhibernate-scriptのがうまく動くっぽい?

サスペンド

で、サスペンドしてみる。失敗すると怖いのでデータはきちんと保存してから試してくださいね。

# hibernate-ram

成功すれば画面が消えて、電源ランプあたりが点滅したりとかなんかそんな動きをするはず。 電源ボタンを押せば復帰します。多分。

ハイバネート

今度はハイバネート。 resumeってカーネルオプションを/boot/grub/grub.conf辺りに設定します。 筆者の環境ではレガシーなgrubを使っているのでこんな感じ。

title Gentoo
root (hd0,0)
kernel /boot/kernel-3.17.7 root=/dev/sda1 reboot=bios resume=/dev/sda6

sda1がルート、sda6がスワップ領域です。resume=<スワップパーティションの名前>って感じで設定。

hibernate-scriptを入れたときにhibernate-cleanupとやらをスタートアップに入れろって言われるので、よく分からないけど入れておく。

# rc-update add hibernate-cleanup

こんな感じ。

設定が出来たら試してみる。

# hibernate

これで電源が消えるはず。今度は電源ランプも多分点かない。 電源ボタンを押せば普通に起動して、途中でハイバネートからの復帰に移行するはずです。

イメージサイズの最適化

このままでも良いのだけれど、/sys/power/image_sizeとやらでハイバネートする時のイメージのサイズを設定できるらしい。 せっかくなので適当に最適化してくれるらしい0を指定してみる。

# echo 0 > /sys/power/image_size

こんな。これだけでハイバネートからの復帰がやたらと速くなりました。環境によっては違うかもですが。

ただ、これだけだと再起動すると消えてしまうので、/etc/hibernate/scriptlets.d/以下に適当なスクリプトファイルを作ってハイバネート前にimage_sizeを指定してもらうように。

$ cat /etc/hibernate/scriptlets.d/image_size
#!/bin/sh

echo 0 > /sys/power/image_size

うん、単純。 実行権限はなくても問題ないようです。でも.sh付けたら何かエラーっぽい表示が出ていた。謎だ。

参考:Suspend and Hibernate (日本語) - ArchWiki