---------------------------------------------
ASUS Pentium 4 motherboards の問題
---------------------------------------------
ASUS の Pen4 マザーボードで ICH2(82801BA), ICH4(82801DB) チップセット
を使っているものは SMBus が使えないようになっているものがあります。
この場合、SMBus を有効にしなければハードウエアモニターは動作しません。
もし、mbmon/xmbmon が SMBus を見つけられなかった場合は、この可能性が
あります。そんなユーザーは次のようにしてください。
(1) チップセットのチェック
ICH2/ICH4 チップセットは以下のような PCI 情報を持ちます:
pci-device ID --- ICH2: vendorID = 0x8086, chipID = 0x2440
ICH4: vendorID = 0x8086, chipID = 0x24C0
pci-device ID --- ICH2(PM): vendorID = 0x8086, chipID = 0x2443
ICH4(PM): vendorID = 0x8086, chipID = 0x24C3
(PM というのは Management Controller の意味で、これが SMBus を司るチップ)
まず、次のコマンドで OS に認識された PCI bus 上のデバイスをリストして
調べます。
# pciconf -l (FreeBSD)
# pcitweak -l (Linux)
これにより、ICH2 または ICH4 がリストにあり、かつ、対応する ICH2(PM)
または ICH4(PM) がリストになければ、貴方のマザーボードはこの問題に
当てはまります。もし、そうでなければ、別の問題ですので以下の方法では
どうしようもありません。
(2) SMBus を有効にする
ICH2(PM)/ICH4(PM) を有効にするためには、ICH2/ICH4 の 0xF2 にある
LPC レジスターの(ゼロから数えて) bit 3 と 8 を落します。このために、
まず、0xF2 のバイトデータを読みとります:
# pciconf -r -h [selector of ICH2 or ICH4] 0xf2 (FreeBSD)
# setpci -d 8086:2440/24c0 f2.w (Linux).
(bit) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
word data at 0xF2 x x x x x x x * x x x x * x x x
次に、上のデータで bit 3 と 8 を落す、つまり、上のデータを VAL とすると
VAL & 0xFEF7 を電卓で計算し、それを改めて VAL としてデータを書き込みます:
# pciconf -w -h [selector of ICH2 or ICH4] 0xf2 VAL (FreeBSD)
# setpci -d 8086:2440/24c0 f2.w=VAL (Linux).
(3) ICH2(PM)/ICH4(PM) が有効になっているかを調べる
(1)で用いたのと同じコマンドで、今度はリスト中に ICH2(PM)/ICH4(PM) が
あるかどうかを調べます。もし、それがあれば、mbmon/xmbmon を起動してみて
ください。今度は SMBus のアクセスが可能になっているはずです。
[参考文献]:
http://www.lm-sensors.nu/
からダウンロード可能な lm_sensors package 中の次のファイル:
./prog/hotplug/README.p4b