--------------------------------------------- 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