TuxOnIce
この記事は高速な LZO 圧縮によるスワップディスクや通常ファイルへのサスペンドをサポートする、先進的なサスペンド・ハイバネートフレームワークである TuxOnIce (旧名 suspend2) をインストールする方法のクイックスタートガイドです。全ての 機能 のリストは TuxOnIce のウェブサイトを見て下さい。
目次
カーネルの準備
TuxOnIce はカーネルパッチとオプションのユーザーインターフェイスから構成されます。必須なのはカーネルパッチだけで、ユーザーインターフェイスはハイバネート・復帰時にグラフィカルインターフェイスを表示するだけです。
Arch User Repository の linux-iceAUR[リンク切れ: パッケージが存在しません] や linux-pf パッケージを使うことができます。パッチの適用やカーネルのコンパイル・インストールは自動化されており、適切なフックを使って initramfs の再生成も行われます。あなたがすることはインストールプロセスを制御することだけで、プロセスを再実行したいとき簡単に変更を加えることができます。linux-pf のインストールと TuxOnIce の設定に関する詳細は wiki ページに載っています。
自分でカーネルにパッチを適用・設定・コンパイルする場合、カーネル#コンパイルやカーネル/コンパイル/Arch Build System を読んで下さい。必要なパッチは上述の TuxOnIce ウェブサイトから取得できます。
次に、TuxOnIce を呼び出すのに使用する hibernate-scriptAUR[リンク切れ: パッケージが存在しません] パッケージを AUR からインストールしてください。Hibernate-script は TuxOnIce 開発チームによって開発されているデフォルトスクリプトです。
hibernate-script の設定ファイルは /etc/hibernate
にあります。
initramfs の再作成
(デフォルトの Arch システムと同じように) initramfs を使用する場合、mkinitcpio の設定ファイルの HOOKS に resume フックを追加してください。さらに、LZO 圧縮を使ってサスペンドを高速させたい場合、同じファイルの MODULES 行列に lzo モジュールを追加します。
/etc/mkinitcpio.conf
の例:
MODULES="lzo" HOOKS="base udev autodetect block resume filesystems"
tuxonice_compress や tuxonice_swap をモジュールとしてカスタムカーネルをビルドした場合、MODULES に追加します。linux-pf や linux-ice ではカーネルに組み込まれているため追加する必要はありません。tuxonice インターフェイスを使いたいときは、MODULES に tuxonice_userui も追加してください。
initramfs を再作成:
# mkinitcpio -p linux-ice
もしくは:
# mkinitcpio -p linux-pf
ブートローダーの設定
サスペンド機能を使う前に、(カーネルの設定時に使用するスワップパーティションをハードコードしていない場合) resume
パラメータをブートローダーに追加する必要があります。resume パラメータではスワップパーティションやスワップファイルを指定します。以下、両方の手順を説明します。
スワップパーティションにサスペンド
/etc/hibernate/tuxonice.conf
にスワップ方法を設定してください (適切なパーティションを指定してください):
SuspendDevice swap:/dev/sda3
スワップファイルにサスペンド
スワップパーティションの代わりにスワップファイルを使う場合、スワップファイルのヘッダの位置を TuxOnIce に指定する必要があります。TuxOnIce は利用可能なスワップのヘッダをリストアップできます。
cat /sys/power/tuxonice/swap/headerlocations
表示された文字列を /etc/hibernate/tuxonice.conf
と resume カーネルパラメータに使用します。
SuspendDevice swap:/dev/sda7:0x1087070
ブートローダーの設定ファイルのカーネルパラメータに以下を追加:
resume=swap:/dev/sda7:0x1087070
ファイルにサスペンド
ファイルアロケータ用に、ハイバネーションファイルを用意する必要があります。標準的なスワップファイルとは異なり、ハイバネーションのみで使用されます。通常のシステムスワップファイルとしては使えません。前の方法の方がディスク容量の点で効率的なので推奨されています。まず /etc/hibernate/tuxonice.conf
ファイルを設定して、"FilewriterLocation" オプションをアンコメントします:
FilewriterLocation /suspend_file 1000
1000 はハイバネーションファイルとして予約するディスク容量です。この場合 1000 メガバイトになります。通常は RAM の合計の 50% から 75% で足ります。
次に、次のようにファイルを作成してください:
# echo TuxOnIce > /suspend_file # dd if=/dev/zero bs=1M count=1000 >> /suspend_file # echo /suspend_file > /sys/power/tuxonice/file/target # cat /sys/power/tuxonice/resume
/sys/power/tuxonice/resume
の出力をカーネルに指定します。file:/dev/sda2:0xdc008
などと出力されるので、/etc/lilo.conf
ファイル (LILO の場合), /boot/syslinux/syslinux.cfg
(Syslinux の場合), /boot/grub/grub.cfg
(GRUB2 の場合) などにカーネルパラメータとして resume=file:/dev/sda2:0xdc008
という風に追加してください。
サスペンドとレジューム
hibernate-script で、使いたいハイバネーション方法を /etc/hibernate/hibernate.conf
ファイルに設定することができます。詳しくは hibernate-script でディスクにサスペンドを見て下さい。
pm-utils の追加設定
デスクトップ環境として GNOME など、pm-utils を使ってシステムのシャットダウン・サスペンドを行う環境を使っている場合、TuxOnIce を使うには追加設定が必要です。
/etc/hibernate/hibernate.conf
に加えた設定は有効ですが、pm-utils からは使われないオプションが存在します。例えば、何もしないと圧縮はデフォルトで lzo になります。/etc/pm/sleep.d/
下のファイルを編集して望ましい設定が使われるようにしてください。
例えば TuxOnIce で使用する圧縮方法を変更するには、/etc/pm/sleep.d/00doit
を編集して以下のように行を追加します:
#!/bin/bash case $1 in hibernate) #Possible compressors include lzo, lzf, and none echo none > /sys/power/tuxonice/compression/algorithm ;;
デフォルトのログレベルなど、行を追加することで他のオプションも変更できます (/sys/power/tuxonice/user_interface/default_console_level
)。
userui - TuxOnIce のユーザーインターフェイス (任意)
任意で、TuxOnIce のプログレスバーを表示するテキストまたはグラフィカルなインターフェイス (Fbsplash) を使うことができます。AUR から tuxonice-useruiAUR パッケージをインストールしてください。
/etc/hibernate/tuxonice.conf
で、使用したいユーザーインターフェイスを設定してください:
ProcSetting userui_program "/usr/sbin/tuxoniceui" # Text interface
もしくは:
ProcSetting userui_program "/usr/sbin/tuxoniceui -f" # Graphical fbsplash interface
fbsplash インターフェイスを使うには以下のように fbsplash テーマのシンボリックリンクも必要になります:
# ln -s /etc/splash/arch-banner-noicons/ /etc/splash/tuxonice
上記のシンボリックリンクがないと、サスペンド・復帰時にプログレスバーが表示されません。
シンボリックリンクを変更した後は initramfs を再生成する必要があります。
テキストインターフェイスは複数のメッセージを表示するため TuxOnIce のデバッグに役立ちます。
userui フックを (resume フックの前に) mkinitcpio の設定に追加して initramfs を再生成しないと、復帰時の最初の数秒間はユーザーインターフェイスが表示されません。ただし、これは任意です。
initramfs を生成:
# mkinitcpio -p linux-ice
userui が動作することをテストするには、テキストコンソールに切り替えて次を実行:
# tuxoniceui --test
グラフィカルインターフェイスをテストするには次を実行:
# tuxoniceui -f --test
参照
- TuxOnIce GitLab リポジトリ
- hibernate-script によるサスペンド・ハイバネートの概括的な情報はこの wiki のサスペンドとハイバネートのページに載っています。特定のハードウェアや設定での問題など高度なトピックも扱っています。