********************************************************* Mother Board Monitor Program for X Window System XMBmon ver.1.05 for FreeBSD (Linux with ISA IO port access). *********************************************************  最近はマザーボードに CPU の温度や CPU Fan の回転数などをモニター する機能がついたものが増えて来ています。Windows95/98/NT 上ではこの モニター機能を使ってリアルタイムに CPUの温度などをグラフ化する プログラムがありますが、X 上でそのような機能を持ったプログラムが ないようなので最低限の機能を持たせて作ってみました。 ./configure & make すれば mbmon Mother Board Monitor for tty-terminal xmbmon Mother Board Monitor for X の二つのバイナリができます。両方とも SMBus または ISA IO port に アクセスするので setuid root してパスの通ったところに置いておく 必要があります。Makefile の make install を参考にしてください。 <<<注意>>> このプログラムは SMBus または ISA IO port に問答無用で アクセスし、場合によってはシステムを crash させる場合があります。 特に、IO port 0x295, 0x296 へのアクセスは NE2000 互換ボードと 重なる場合がありますので、これらの port への書き込みが許されるか チェックしてください。私はこのプログラムによって起きた如何なる 問題にも責任は取れません。  このプログラムはマザーボードに積まれているハードウエアモニターチップ として Winbond の W83781D chip をメインに考えられています。このチップ では、温度が 3つ(Temp0, Temp1, Temp2)、電圧が 7つ(V0 - V6)、および FAN の回転数が 3つ(Fan0, Fan1, Fan2) 測定できるようになっています。 mbmon ではすべての情報をテキストで xmbmon では Temp0-2 および V0(Vcore) の情報をグラフで表示します。別のチップではこれらの情報のうちいくつかは サポートされていません。xmbmon の場合 Temp0,1,2 をそれぞれ "MB", "CPU", "chip" という項目で示しますが、それらは X の resource として変更可能 です(xmbmon.resources 参照)。場合によっては適切な項目名になっていない と思いますので、適宜変更してください。また、3つ目の温度センサーがない、 または、繋がっていない場合はこれを表示させないようにできます。その時は Makefile の DEFS 変数に -DNO_TEMP3 を付け加え、xmbmon.resources.no_temp3 を使ってください。  自分のマザーボードでどのようなハードウエアモニターチップが使われて いるかわからない場合は mbmon -d  xmbmon -debug という option でハードウエアモニターチップの情報を得ることができます。 これによって、これらが使えるかどうかがある程度判断できるでしょう。 なお、もしあれば SMBus によるアクセスを default としていますので、 InitMBInfo: Device not configured と出た場合は mbmon -d -I  xmbmon -debug -method I で、ISA IO port によるアクセスの方法を試してみてください。  一般に最近のマザーボードではハードウエアモニターチップにアクセス する方法として、SMBus (System Management Bus)と 古い ISA の IO port による方法がありますが、新しいチップ(例えば ASUS の P3B-F mother に 使われている AS99127F など)は SMBus のみでしか使えないようです。 FreeBSD 3.3-Stable 以上ではこの SMBus によるアクセスが device driver (intpm device) でサポートされています。3.3RELEASE 以前の場合はこの intpm device を CVS tree から取ってきて入れなければ SMBus の方法は 使えません。詳しくは 渡辺尊紀@神戸大 さんのページを御覧ください。 http://www.planet.sci.kobe-u.ac.jp/~takawata/smbus/ このように、SMBus が使えない場合(特に FreeBSD 2.2.x の場合は絶望的)、 ISA IO port が使えるマザーボードの時は上記の "I" option を使って ください。もし、/usr/include/machine/smb.h が configure 時にない場合 は自動的に ISA access の方が default になります。  開発は FreeBSD 3.3R上で上記の intpm device を付け加えた環境で行ない ましたが SMBus および ISA IO port にアクセスする部分を書き換えれば、 他の PC-UNIX でも動作させれられると思います。詳しくはプログラムを 御覧下さい。また、私が開発に使ったマザーボードは ASUS の P2B/P2B-F ですが、ハードウエアモニターチップとして、 WinBond社 W83781D, W83782D, W83783S ASUSTek社 AS99127F National Semiconductor社 LM78/LM79 が使われていれば、使用できると思います。私の試してみたマザーボードと その "debug" の結果については DEBUG_info file に載せてあります。  なお、これらチップの制御情報は Windows95/98/NT 上の Mother Board Monitor というプログラムの開発者 Alex van Kaam 氏の WWW http://members.brabant.chello.nl/~a.vankaam/mbm/ の情報を参考にさせていただきました。また、Winbond の chip の詳しい 情報は以下の pdf file にあります。 http://www.winbond.com.tw/sheet/w83781d.pdf http://www.winbond.com.tw/sheet/w83782d.pdf http://www.winbond.com.tw/sheet/w83783s.pdf または、linux での hardware monitor のホームページにもこれらの多くの チップの pdf file が集めてあります。 http://www.netroedge.com/~lm78/pdfs.html  version 1.05 の作成に当たり、SMBus 対応については 渡辺尊紀@神戸大 さん、configure への対応および linux への部分的対応は 岡村耕二@九大 さん、に協力していただきました。また、ASUS の chip AS99127F の制御情報 については Windows 上のモニターソフト LM78mon の作者である 米谷紀幸 (:p araffin.) (http://www.infoaomori.ne.jp/~paraffin/) さんに教えて いただきました。以上の方々に感謝いたします。  このプログラムは完全にフリーソフトです。どのように改変・変更 してもかまいませんし、コピー・配布も自由です。また、このプログラム を使ったために何か不都合なことが起きても作者は一切の責任を負い ません。今のところ、このプログラムをより一層発展させるつもりは ありません。ただ、もしこのプログラムを元によりよいものができた時 には作者にフィードバックしていただければ嬉しいです(もちろん全然 義務ではありません)。 1999年11月24日 九州大学理学研究化基礎粒子系専攻 清水良文 e-mail:yrsh2scp@mbox.nc.kyushu-u.ac.jp http://www.nt.phys.kyushu-u.ac.jp/shimizu/index.html