次のページ 前のページ 目次へ

2. 電力消費の低減

コンピュータ使用時の電力を抑える方法は Linux にもいくつかあります。 Advanced Power Management (APM) やハードディスクの設定、 モニタを使わずに作業する、など。

2.1 Advanced Power Management (APM/ACPI)

Linux との互換性のチェック

Battery-Powered-mini-HOWTO によれば、 「…ノート PC や省電力機能付きデスクトップ PC で APM を機能させるためには、 そのマシンのシステムの BIOS ROM が APM スタンダードをサポートしていなければなりません。さらにいえば、 Linux オペレーティング・システムで APM を効かせるためには、 システム BIOS ROM は APM スタンダードのバージョン 1.0 か 1.1 と、 32 ビットのプロテクト・モードでの機器接続をサポートしている必要があります。 お奨めは APM 1.1 をサポートしているシステムのほうです。 より多くの機能があり、 デバイス・ドライバとサポート・ユーティリティが恩恵を受けられるからです」 (訳注: Battery-Powered-mini-HOWTO は和訳があります)

APM のバージョンに関する情報は、dmesg コマンドや、 /proc/apm ファイルをのぞくとあります。

はじめに

Linux をインストールしたばっかりなら、恐らくカーネルをリコンパイルする 必要があります。お使いのディストリビューションについてくるカーネルでは、 APM はたぶん利用可能になっていないでしょう。

APM サポートは二つの部分から成り立っています: カーネルのサポートと、 ユーザのプログラム層でのサポートです。

カーネルサポートを使うには、該当するカーネル設定のセクションを オンにします。 私の知る限りではすべての機能がラップトップ PC で使えるとは限りませんが、 これまた私の知る限りでは、 CONFIG_APM_POWER_OFF はほとんどのラップトップで使えるようです。

ユーザーランドサポートのためのユーティリティは、 http://www.worldvisions.ca/~apenwarr/apmd/ にあります。 APMD は、現在のラップトップ・コンピュータほとんどについている Advanced Power Management システムを制御するプログラムの集合です。

もし 2.2.x カーネルを使っていて、実験をしてみたいのなら、 APM BIOS が直接サポートしていない場合でも Linux をシステムごとハイバネーションさせられる カーネル・パッチを Gabor Kuti <seasons@falcon.sch.bme.hu> が出しています。

Richard Gooch 曰く: 以前 apmd のベータ版を試してみたんだけど、 こんな理由で気に入らなかった:

この話題は論争になっていましたが、 彼 Richard Gooch は suspendd というパッケージを http://www.atnf.csiro.au/~rgooch/linux/ に置きました。

apmcd (apm ベースの crontab) ftp://ftp.binary9.net/pub/linux/ も見てみてください。 Nicolas J. Leon <nicholas@binary9.net> http://mrnick.binary9.net/ によるツールです。

注意: この機能が 1 個のパッケージ (そのうち apmd になるでしょう) にマージされたのかどうか、私はチェックしていません。

注意

他のオペレーティング・システムがインストール済みだとか、 別のオペレーティング・システムを同じハードディスクで使うのであれば、 Linux に手ひどい障害を与えるような 他の "ハイバネーション" や "サスペンド" ツールががインストールされていないことを確認してください。 例えば、 Linux が占有しているディスク・スペースを使っちゃう、とかいったものです。

トラブルシューティング

お使いのマシンが 2.2.x でなく 2.0.x カーネルで動いている場合、 Klaus Franken kfr@klaus.franken.de の、このアドバイスをどうぞ: 「2.2 ではデフォルトが変わっています。 halt を呼んでいる初期化スクリプト (init-scripts) を探して、 halt -ppoweroff に変えてください。 man halt 参照のこと。 もしこのオプションがない場合は、新しいバージョンの halt が必要です」 これは SysVinit パッケージにあります。

X ウインドウ・システムと APM は、一緒にはうまく動かなかったり、 マシンごとハングすらしたりするときがあります。

Steve Rader からのお勧め: apm -s を実行すると、X サーバがハングする Linux システムがあります。 この難儀に対する言い伝えとしては、仮想コンソールに切り替えてサスペンドさせる、 つまり root 名義で chvt 1; apm -s とかなんとかする、 あるいはもっと具体的に sudo chvt 1; sudo apm -s とする、というものがあります。 僕はこのコマンドをスクリプト、そう、my-suspend というのに入れていて、 xapmload --click-command my-suspend として使っています。

新型のマシン (例えば HP Omnibook 4150 の 366 MHz モデル) では、 /proc/apm ファイルにアクセスすると、 カーネル・フォールト general protection fault: f000 に見舞われたりするものがあります。 Stephen Rothwell <Stephen.Rothwell@canb.auug.org.au> http://www.canb.auug.org.au/~sfr/ の説明では:

「これは、そのマシンの APM BIOS がプロテクト・モードの最中に リアル・モードのセグメントを使おうとするからです。言い換えれば BIOS のバグ… 最近この手のものに出会ったのですよ。 他のすべての機種では、BIOS の電源をオフにするコードのところで、 電源をオフにしようとする前にリアル・モードに戻って回避できているのですが。 このマシンでは、できていないのです」

ACPI

最新の標準は ACPI です。 ACPI4Linux プロジェクトは 1999 年のはじめにスタートしました。 これはカーネル・ドライバのプロジェクトで、 Linux において ACPI のフル・サポートを実装するのが狙いです。 ファンの制御、dock/undock の検出、 それに WindowMaker のドッカブルな温度メーターも含まれています。 http://phobos.fachschaften.tu-muenchen.de/acpi/ で行けます。

  1. hdparm hdparm は Linux の IDE ディスク・ユーティリティで、 スピン・ダウン (回転停止) のタイムアウトといったディスクのパラメータを 設定できます。SCSI の機能についても設定できるものがあります。
  2. Mobile Update Daemon mobile-update は標準の update デーモンに換われるもので、 ディスクのスピン・アップ (回転開始) を最低限にし、 ディスクの回転稼働時間を低減します。 これは、自分以外のディスクへの活動があるときにだけバッファをフラッシュします。 ファイルシステムの一貫性を保つためには、sync を手で実行します。 mobile-update は APM を使わないので、古いシステムでも使えます。
  3. Toshiba Linux Utilities これは、東芝の Pentium 採用ノート PC 用の ファンの制御、スーパーバイザ・パスワード、ホット・キー機能といった Linux 向けユーティリティの集まりです。 KDE パッケージ Klibreta もあります。
  4. LCDproc 「LCDproc は、20x4 行のバックライト付き LCD ディスプレイに リアルタイムに Linux システムの情報を表示してくれる小さなソフトです。 私の知る限り、これは外付けの Matrix-Orbital 20x4 LCD ディスプレイ Matrix-Orbital にのみ接続できます。シリアル・ポートに接続する LCD ディスプレイです」
  5. Dial Daemon diald デーモンは、 SLIP ないしは PPP を使ったオン・デマンドなインターネット接続を提供します。 diald は必要な時にリモート・ホストに自動ダイヤルしたり、 インアクティブなダイヤル・アップ接続を落としたりできます。

2.2 モニタを消してキーボード LED を使う

モニタなしでもコンピュータから情報を受け取れるようなツールがあります。

2.3 スクリーン・セーバ

スクリーン・セーバはスクリーンを焼き付きから防いでくれているだけでしょうか? 電力も「セーブ」してくれているでしょうか?

Wade W. Hampton からのちょっとしたお勧めです:

普通、スクリーン・セーバはグラフィックスを表示したり、 地球外知的生命体を探したり、あるいは別のことをしたりします。 このようにスクリーン・セーバを使っている場合、 おそらく実際にはあなたは余分に電力を消費していることでしょう。 例えば XSETI をスクリーン・セーバに使っている場合、 文書を編集しているとか、コンパイルしている場合よりはるかに熱くなっている (すなわち、より電力を使っている)でしょう。

本当に消費電力を減らしたいのならば、 そしてお使いの X サーバとモニタがサポートしているなら、 xsetdpms オプションを使いましょう (xset についてはマニュアル・ページ参照) 例えば、X サーバで DPMS (Energy Star) 機能を利用するには xset +dpms とします。

手でコマンドを打って X ディスプレイのモードを変えることもできます:


xset dpms force standby
xset dpms force suspend
xset dpms force off

スクリーン・セーバ・プログラムをいくつか挙げます:

2.4 Energy Star マーク

(訳注: 財団法人 省エネルギーセンターでは、 国際エネルギースタープログラム としています。 本文書では、上記名称があまり一般的でないと思えること、 市販されている機器に張られているシールなどで `Energy Star' の表記が目に触れることが多いことから、 そのまま `Energy Star' を使っています)

Robert Horn <rjh@world.std.com> は書きました:

「以前、デスクトップ・プリンタの設計者たちと Energy Star について議論する機会がありました。 彼らは周辺機器によって決まる、許された待機電力の目標を満たしました。 というか、彼らは自分たちの目標についてしか知らなかったのですが。 しかし、興味深い意見を述べてくれました:

  1. Energy Star 基準は、かなりの動作中の節電につながります。 タイマー・ベースの節電は例外ですが。ほとんどの節電効果は、 低消費電力動作をオン・デマンドで行う設計からくるものです。 例えば、 消費電力の高いモータの代りに低消費電力のステッピング・モータを使うなどします。

    この節約効果は、各々の設計と、低消費電力の製品への要求から来るもので、 より良くて安価な低消費電力製品の設計を産みます。 (常時稼働している)1 個のモータにいろんなクラッチを組み合わせるといった 古いスタイルの設計 (例: タイプライター) は、 もはや最小のコストではないのです。

  2. Energy Star は良い組織的エンジニアリングでした。 アイドル状態での電力消費を低減させるための設計変更を行うことに 反対するのをより難しくするような、 品質や性能の妥協を設計者に決して要求したりしません。 部品が停止した、そのミリ秒の間に節電のほとんどは始まるので、 こういった節約は無視できないのです。
  3. PC の電力のクラス分けは、その消費量ではなく、安全度によるものです。 なので、PC で一般的に使われている 235W や 300W の電源は、 その安全範囲を示しているのです。 実際の電力消費はもっと少なく、通常、安全範囲の 20〜30 パーセントです。 スイッチング電源の電力消費を計るのは実際には困難だと設計者は言っています。 専用に設計された電力計が必要だと。 普通の AC メータはモーター向けに設計されているもので、 スイッチング電源にはむしろ不正確です。

...」

2.5 その他の節電テクニック

電力消費をさらに抑えるため、Linux は idle cycle の間 CPU を halt します。 OS/2, Windows 3.1/95, NT, Linux に関する初期のリポートでは、 アイドル・ループをぶん回ってばかりで電気を食う DOS ベースの OS に比べ、 Linux は遥かに低い電力しか消費しないことが示されていました。 -- 検証には調査が必要でしょうから、この部分は書き替わるかもしれません。

ほとんどの Linux ユーザは、そうしてよければ、年がら年中コンピュータを そのまま(動いたまま)にしておきがちです。 しかしながら、最近の BIOS には無人の電源オンをサポートしているものが ありますし、cron を使えば無人 shutdown さえもできます。 コンピュータを毎晩つけっ放しにしておく必要はもうありません。


次のページ 前のページ 目次へ