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 installand 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
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.
At this point in time, the following motherboards seem to be compatible
with this driver:
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!]
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 :-)