TuxOnIce

提供: ArchWiki
2019年5月31日 (金) 23:38時点におけるHiromi-mi (トーク | 投稿記録)による版 (gentoo-wiki info へのリンク削除. 不正サイトへのリダイレクトのため.)
ナビゲーションに移動 検索に移動

関連記事

この記事は高速な LZO 圧縮によるスワップディスクや通常ファイルへのサスペンドをサポートする、先進的なサスペンド・ハイバネートフレームワークである TuxOnIce (旧名 suspend2) をインストールする方法のクイックスタートガイドです。全ての 機能 のリストは TuxOnIce のウェブサイトを見て下さい。

カーネルの準備

TuxOnIce はカーネルパッチとオプションのユーザーインターフェイスから構成されます。必須なのはカーネルパッチだけで、ユーザーインターフェイスはハイバネート・復帰時にグラフィカルインターフェイスを表示するだけです。

Arch User Repositorylinux-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 パラメータではスワップパーティションやスワップファイルを指定します。以下、両方の手順を説明します。

スワップパーティションにサスペンド

ノート: 最新のバージョンの TuxOnIce (3.0.99.44) では、resume カーネルパラメータの追加は必須ではありません。スワップドライブにブータブルイメージが含まれている場合、自動で検出されます。スワップ方法を正しく設定するだけで使えます。詳しくは [1] を見て下さい。

/etc/hibernate/tuxonice.conf にスワップ方法を設定してください (適切なパーティションを指定してください):

SuspendDevice swap:/dev/sda3

スワップファイルにサスペンド

ノート: 上に書いた自動検出はスワップファイルでは動作しません。resume カーネルパラメータを手動で設定する必要があります。

スワップパーティションの代わりにスワップファイルを使う場合、スワップファイルのヘッダの位置を TuxOnIce に指定する必要があります。TuxOnIce は利用可能なスワップのヘッダをリストアップできます。

ノート: スワップファイルを作成したばかり、あるいはこれから作成する場合、tuxonice がファイルを認識できるように一度再起動してください。
cat /sys/power/tuxonice/swap/headerlocations

表示された文字列を /etc/hibernate/tuxonice.conf と resume カーネルパラメータに使用します。

SuspendDevice swap:/dev/sda7:0x1087070

ブートローダーの設定ファイルのカーネルパラメータに以下を追加:

resume=swap:/dev/sda7:0x1087070
ノート: resume デバイスの指定に UUID を使用すると機能しない場合があります。

ファイルにサスペンド

ファイルアロケータ用に、ハイバネーションファイルを用意する必要があります。標準的なスワップファイルとは異なり、ハイバネーションのみで使用されます。通常のシステムスワップファイルとしては使えません。前の方法の方がディスク容量の点で効率的なので推奨されています。まず /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

参照