→FAQ 一覧に戻る
|
FAQ-88
質問
電源を中断する方法(サスペンド/ハイバネーション)はありますか?
回答
現在 Linux での電源管理方式には ACPI と APM の2種類があります。APM は BIOS に依存した方法で ACPI はより OS 側の処理に重点をおいた電源管理方式です。Windows 等では近年ほとんど ACPI を主流としており、APM に対応したハードウェアは年々少なくなってきています。ARMA では両者の選択は基本的にインストール時に行われますが、インストール後に変更することもできます。APM と ACPI は排他的にしか使用できません。
Linux での電源中断(サスペンド・ハイバネーション)は一般にはあまり完全なものではありませんが、APM が使える場合は APM を、ACPI を使える場合はソフトウェアサスペンドを使うことで電源中断をおこなうことができます。
以降では APM の設定と ACPI の設定について説明します。また電源中断機構の用語を明確にしておくと、「サスペンド」とは、主にメモリの通電状態を維持することによる電源中断を意味し、「ハイバネーション」とはハードディスクの特定領域へメモリ内容を保存し、電源を完全に停止するタイプの電源中断を意味するものとします。
APM の電源中断
| |
|
|
APM の設定はインストール時に選択するだけのものです。より具体的には apm モジュールがカーネルに組み込まれていれば APM は有効になります。APM が有効にならない場合は apm モジュールがインストールできない原因を取り除くことが必要です。例えばカーネルのブートパラメータに acpi=on を記述しているため ACPI が有効になっている場合や、そもそも APM BIOS が存在しない場合が原因として考えられます。
APM に対応しているノートパソコンで APM を使用する場合は、この状態で apm コマンドを実行したり電源ボタンを押すことでサスペンド状態に移行します。APM での電源中断は基本的に BIOS が主体となりますが、BIOS でカバーしきれない範囲については Linux 側で個別の設定が必要になります。例えば USB ドライバを停止・再開することが必要であれば /etc/apm 以下に希望する動作のスクリプトを作成することで可能になります。
また APM BIOS で(自動・固定等の)ハイバネーションを設定することができる場合があります。例えば Pheonix BIOS では Linux 側からハイバネーション領域を設定することができます。設定手順のまとめると以下の通りです。
| |

一般的な Linux 2.4 のデフォルトは ACPI が有効で、acpi=off によって ACPI を切断します。ARMA ではこの逆で、ACPI はデフォルトで無効になっており acpi=on によって有効になります
|
|
|
|
man lphfdisk をよく読み、なんらかの方法でハイバネーション領域を確保します。ハイバネーション領域はプライマリパーティション(1-4)である必要があり、また十分なサイズが確保されている必要があります。
|
|
|
|
作成したハイバネーション領域のパーティション ID を a0 とします。(a0 は fdisk 等で IBM Thinkpad hibernation と表示されます)
|
|
以上で再起動をおこなうと起動時に BIOS がハイバネーション領域を記憶しますので、サスペンドと共にハイバネーションも使用することができるようになります。
ACPI の電源切断
ACPI の電源切断は ARMA では kernel-2.4.22 以降でハイバネーションのみについて対応しています。これは名称としては「software suspend」と呼ばれていますが、内容的にはハイバネーションであり、Linux 単体で動作し、Linux カーネルの起動時に保存領域の情報を読み取り、高速に中断状態に復帰しすることで、ハイバネーションを実現しています。
software suspend 設定は以下の手順を参考にしてください。
|
|
kernel パッケージ本体の他に -doc パッケージをインストールします。例えば 2.4.26 を例に取ると以下のコマンドラインになります。
|
|
|
|
|
# apt-get update
| # apt-get install kernel-2.4.26 kernel-2.4.26-doc
|
|
|
|
|
| |

lphdisk のマニュアルによると、これは物理メモリ+ビデオメモリ+2MBであるということです。
|
|
|
|
/boot/grub/menu.lst を編集し(または ogl-admin で設定し)カーネルのブートオプションに resume2=<スワップデバイス> を加えます。また ACPI を有効にしていない場合は acpi=on も加えます。
|
|
|
|
再起動し新しいカーネルとブートオプションで起動します。
|
|
|
|
|
# /usr/share/doc/kernel-2.4.26-doc/swsusp/suspend.sh --install
|
|
|
|
|
|
|
以降では以下のコマンドによってサスペンドをおこなうことができます。
|
|
|
|
# /usr/local/sbin/hibernate
|
|
以上で ACPI の設定は終了です。
以上、ARMA での APM および ACPI の設定の概要について説明しました。
全体としては、現状の Linux 2.4 カーネルでは ACPI による電源中断(サスペンド)には十分対応されていませんので、一般的には APM が使用可能であるならば APM を使用した方が良い結果が得られるでしょう。APM が使用できない場合や PCI デバイスの認識等で ACPI が必須となっている場合には software suspend を使用するようにしてください。
| |

2.4.22 カーネルでは software suspend のバージョンが異なりますので、この場合のみ resume2= ではなく resume= としてください。
|
→FAQ 一覧に戻る
ここで解説しております内容は、弊社でテストを行い動作を確認しておりますが、必ずしもすべての環境における動作を保証するものではありません。
また、実際の設定、インストール作業はすべてお客様の責任においてなされるものとし、当 FAQ を元に行われた作業によりお客様が被ったいかなる損害につきましても、弊社は一切の責任を負わないものとさせていただきますので、ご了承ください。 |
|