Summary in English


電源ボタンでシャットダウン( Intel 82371AB/EB 専用, まだ実験段階です)


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