コンピュータ使用時の電力を抑える方法は Linux にもいくつかあります。 Advanced Power Management (APM) やハードディスクの設定、 モニタを使わずに作業する、など。
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
のベータ版を試してみたんだけど、
こんな理由で気に入らなかった:
sync()
;
sleep(0)
; sync()
; sleep(1)
; というシーケンスを行う
ポリシを切る手段が用意されていない)
この話題は論争になっていましたが、
彼 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 -p
か poweroff
に変えてください。
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 です。 ACPI4Linux プロジェクトは 1999 年のはじめにスタートしました。 これはカーネル・ドライバのプロジェクトで、 Linux において ACPI のフル・サポートを実装するのが狙いです。 ファンの制御、dock/undock の検出、 それに WindowMaker のドッカブルな温度メーターも含まれています。 http://phobos.fachschaften.tu-muenchen.de/acpi/ で行けます。
mobile-update
は標準の
update
デーモンに換われるもので、
ディスクのスピン・アップ (回転開始) を最低限にし、
ディスクの回転稼働時間を低減します。
これは、自分以外のディスクへの活動があるときにだけバッファをフラッシュします。
ファイルシステムの一貫性を保つためには、sync
を手で実行します。
mobile-update
は APM を使わないので、古いシステムでも使えます。
モニタなしでもコンピュータから情報を受け取れるようなツールがあります。
bl
: キーボード LED を点滅させるblinkd
:
「アンサリング・マシン(電話の自動応答装置)やファックスのために、
キーボードの LED を点滅させます。
blinkd はクライアント/サーバ構成になっており、
ボイス・ボックスにかかってきた電話や
スプールに入っているファックス入電の数といったようなものを、
キーボードの LED を点滅させて教えてくれます」
mailleds
: キーボード LED で新着通知。
mailleds
は、静かに控え目に、
新しいメールが届いていることを教えてくれます。
新着メールがあると、ユーザ・デーモンが LED を点滅させてくれます。
tleds
:
ネットワークのパケットの TX と RX をキーボード LED を点滅させて知らせます。
パケットがマシンから送出されたときには Scroll-Lock LED、
受信したときは Num-Lock LED を点滅させます。
スクリーン・セーバはスクリーンを焼き付きから防いでくれているだけでしょうか? 電力も「セーブ」してくれているでしょうか?
Wade W. Hampton からのちょっとしたお勧めです:
普通、スクリーン・セーバはグラフィックスを表示したり、 地球外知的生命体を探したり、あるいは別のことをしたりします。 このようにスクリーン・セーバを使っている場合、 おそらく実際にはあなたは余分に電力を消費していることでしょう。 例えば XSETI をスクリーン・セーバに使っている場合、 文書を編集しているとか、コンパイルしている場合よりはるかに熱くなっている (すなわち、より電力を使っている)でしょう。
本当に消費電力を減らしたいのならば、
そしてお使いの X サーバとモニタがサポートしているなら、
xset
の dpms
オプションを使いましょう
(xset
についてはマニュアル・ページ参照)
例えば、X サーバで DPMS (Energy Star) 機能を利用するには
xset +dpms
とします。
手でコマンドを打って X ディスプレイのモードを変えることもできます:
xset dpms force standby xset dpms force suspend xset dpms force off
スクリーン・セーバ・プログラムをいくつか挙げます:
xscreensaver
の目的は、
映画の中に出てくるコンピュータのシーンがそうであるように、
使っていないときにスクリーンに素敵な画を出し、
空いているモニタには常に面白い何かが表示されているべきだ、
という思想をつらぬき通すことにあります。
このプログラムがもたらす、
xlock
と xautolock
の組み合わせに勝るおいしさは、
新しいディスプレイ・ハックを簡単にインストールできるということにあります。
新しいディスプレイ・モードを追加するには、
xscreensaver
自身をコンパイルし直したりする必要はなく、
ただリソースの設定をちょっと変えればいいだけなのです。
スクリーンのルート・ウインドウに描画するよう指定して起動できるような
プログラムなら何でも、変更なしにスクリーン・セーバとして使えるのです。
スクリーン・セーバとして走らせられるプログラム側には、
スクリーン・セーバであるとは何を意味するのか。
といったような特別の知識は必要ありません。
LockVC
は、スター・フィールド (飛び散る星屑)
スクリーン・セーバと組になっている、コンソールをロックするプログラムです。
仮想コンソール上で LOCKVC を実行すると、
スター・フィールドが出現し、x, y, z 軸すべてについて回転を始めます。
(訳注: 財団法人 省エネルギーセンターでは、 国際エネルギースタープログラム としています。 本文書では、上記名称があまり一般的でないと思えること、 市販されている機器に張られているシールなどで `Energy Star' の表記が目に触れることが多いことから、 そのまま `Energy Star' を使っています)
Robert Horn <rjh@world.std.com> は書きました:
「以前、デスクトップ・プリンタの設計者たちと Energy Star について議論する機会がありました。 彼らは周辺機器によって決まる、許された待機電力の目標を満たしました。 というか、彼らは自分たちの目標についてしか知らなかったのですが。 しかし、興味深い意見を述べてくれました:
この節約効果は、各々の設計と、低消費電力の製品への要求から来るもので、 より良くて安価な低消費電力製品の設計を産みます。 (常時稼働している)1 個のモータにいろんなクラッチを組み合わせるといった 古いスタイルの設計 (例: タイプライター) は、 もはや最小のコストではないのです。
...」
電力消費をさらに抑えるため、Linux は idle cycle の間 CPU を halt します。 OS/2, Windows 3.1/95, NT, Linux に関する初期のリポートでは、 アイドル・ループをぶん回ってばかりで電気を食う DOS ベースの OS に比べ、 Linux は遥かに低い電力しか消費しないことが示されていました。 -- 検証には調査が必要でしょうから、この部分は書き替わるかもしれません。
ほとんどの Linux ユーザは、そうしてよければ、年がら年中コンピュータを
そのまま(動いたまま)にしておきがちです。
しかしながら、最近の BIOS には無人の電源オンをサポートしているものが
ありますし、cron
を使えば無人 shutdown
さえもできます。
コンピュータを毎晩つけっ放しにしておく必要はもうありません。