ATX 電源を持つ PC なら、簡単な工作で、「電源ボタンでシャットダウン」が
出来ることは Oba-Q シリーズで示して来た。
その後、無改造の PC + Windows NT で、電源ボタンでシャットダウン出来る
物があるらしいという噂を聞いて、ちょっと気になっていた。
そんなある日のlilo の飲み会で、
教育用に Linux マシン( NT とデュアルブート) を大量導入したことで
有名になった「京都産業大学」のLinux マシンは、「電源ボタンでシャットダウン」
が出来ると言う衝撃の事実を聞いてしまった。
でも、納入業者の都合で、今のところそのソフトウェアのソースは公開出来ないと
聞いて、ちょっとがっかりだったが、Intel 82371 の機能を利用しているという、
ヒントを聞いちゃったので、もうこっちのもんだね(^_^)。
Intel のサイトに行って、Intel 82371AB のデータシート( 29056201.pdf ) を、
手に入れてみて、ちょっと遊んでみた結果、一応ソフトウェアで、電源ボタンが
押されたかどうか知ることが出来る所までこぎつけました。
これは、Intel 82371AB というチップを使用したマザーボードでしか、
対応できません。
$grep 82371AB /proc/pci
とかして、
Bridge: Intel 82371AB PIIX4 ACPI (rev 1).
なんて行が表示されるなら可能性大です。
マザーボードによって、うまく動作しないものがあるのでは無いかと思います。
バイオスの設定によっても、うまく動作したりしなかったりするような気もします。
用意したデバイスドライバのようなものは、kernel 2.0.*, 2.2.* のみに
対応しています。古いカーネル、開発系列には対応していません。2.1.*, 2.3.*
に対応したいときは、ソースを書き替えて下さい。
Intel 82371AB の後継チップがあったりして、互換性があったりするかも
しれませんが、手元にそういうマシンが無いので、どうにも出来ません。
ドライバのソースを書き替えて対応して下さい。
設定によっては、apm bios とコリジョンを起こす可能性も否定できないので、
細心の注意が必要です。
失敗したら、システムに甚大な被害を与えますので、その辺を良く理解した
上でお試し下さい。FD で起動して、root ファイルシステムを RAM DISK にした
ようなシステムで試すのが一番良いのですけどね。
と言うわけで、FD を作ってみました。面倒臭かったので、Plamo Linux の
インストールディスクをぱちって来ました。
diskimage-19990826.gz
"diskimage-19990826.gz" を取って来て、解凍して、FD に書き込みます。 $ls diskimage-19990826.gz ... $gzip -d diskimage-19990826.gz ルートになって #fdformat /dev/fd0u1440 #dd if=diskimage-19990826 of=/dev/fd0 この FD で、インストール時に使う mini Linux を起動して、 root でログインして、 chkpw コマンドを実行して下さい。 電源ボタンを押して下さい。"Power Button pressed ..." というメッセージが表示され たら成功です。このパッケージで、「電源ボタンでシャットダウン」が出来るでしょう。
大体こんなところでしょうか?
このデバイスドライバとサンプルプログラムのソースはこれです。少し新しくなりました。 piix4acpi-19990826.tar.gz
使い方は README.euc を参照して下さい。
これらの扱いは、 GPL 相当の扱いで良いです。
残念なことに、電源ボタンを 4秒以上押し続けると、強制的に電源が 切れてしまいます。これをキャンセルする方法を知りたいのだけど、 データシートにはそれらしき記述は見付かりませんでした。
さてさて、この後どうするかは、一切未定。今あるソースだけで十分な人は、 どんどん改造して、お役に立てて下さい。誰か、実用的な形にまとめてくれる ととっても嬉しいのですけどね。
このページに関する、ご意見、感想、苦情はこちらまで 松本 徳真 / matsu@netfort.gr.jp