Solaris 'health' driver
This is the home page for the solaris "health" driver, a motherboard
temperature and fan speed monitor, for motherboards with the WinBond "w83781d"
family of enviromental monitor chips.
It is inspired by the
l*nux "health" driver, by
David Ludlow. However, it shares no code with that driver (apart from one
main similar data 'struct'), due to Solaris's vastly different driver API.
[I spelled it odd so that search engines dont misdirect people to this
page. But only changed it sept 20th, 2001. sorry folks.]
Using the driver
Right now, all you have to do is basicallly
(download the source code file) tar xvf health.tar cd health make make install
and you are done. One of these days, i might get around to making a pkg
for it. It's more likely to happen if you email and bug me about it :-)
Once the driver is installed, you can then use /usr/local/bin/printhealth,
to look at the temperature values and fanspeeds that your motherboard knows
about. The chip we talk to thinks it knows about three temperature gauges, and
three fanspeeds. You motherboard may or may not actually have all of
its sensors hooked up to something.
For example, this is the result on an ASUS P2B motherboard:
cyteen$ printhealth temperature #0 - 25.000000C, 77.000000F temperature #1 - 208.000000C, 406.400000F temperature #2 - 208.000000C, 406.400000F fan #0: 0.000000 fan #1: 10384.615385 fan #2: 0.000000 Vcore voltage is 2.050000
"temperature #1" and "#2" can reasonably be assumed to not be valid :-)
Sometimes you will see some apparently valid temperature readings, and you
will have no idea what they are for. One of them is probably an "ambient
temperature" sensor, or "motherboard temperature". Check with what your
BIOS says your CPU temperature is, and match it with the appropriate
temperature #
Additionally, while the speed for fan1 may not be accurate, you can at
least see it is working. If you want to set up a monitor for fan failures,
just check for if the fanspeed is less than 500. Or possibly just see if
it is equal to 0.000000
Latest download
The latest source code can be downloaded now.
Last updated July 4rd, 2001
Solaris 9+ warning!
You may need to change 'parent="isa"' to 'class="root"' in health.conf.
Or alternatively, 'parent="i86pc"'.
But if it works for you as-is, dont worry about it.
Compatibility list
At this point in time, the following motherboards seem to be compatible
with this driver:
- ABit BP6
- ASUS P2B,P2B-D (temp0=cpu)
- ASUS P5A (temp0=motherboard, temp1=cpu)
- Chaintech 6BTM
- Gigabyte 6BXD
- SuperMicro P4DC6 (w83627hf chip) (temp0=mb,fan0=cpu1fan, fan1=cpu0fan)
- SuperMicro P6DBE
- SuperMicro P6DBU
- SuperMicro P6DGE
- Tyan 2886 (temp0==cpu, temp1="ambient"; no fan data)
- AS Rock K7VT2 (temperature readings only)
Future
At some point, I would like to:1. Fix the fanspeed to be more accurate
2. integrate more with David's version, so that a common "printhealth" program can be used.
Unfortunately, at this time, David likes to use floating point in the kernel, which Solaris does not allow.
[later note: i hear David has sinced changed this. But I need encouragement to fix up the code!]
Derivative drivers
Gerhard Strangar was nice enough to put together a driver mod for those folks who have a WinBond chip on the other side of an "SMBus". For example, on a Gigabytes 7IXE-4 motherboard. You may download his 'ghealth' source code here. Read the enclosed README file for what to do with it, and some limitations of the driver.At some point, I would "like" to merge the two drivers together. but right now, I'm too busy working on Utah-GLX to do that sort of thing :-)
Aucun commentaire:
Enregistrer un commentaire