Penguin

The lmsensors package allows you to check some vital statistics of your motherboard, such as core voltage values, temperature readings and fan speed monitoring. Almost all motherboards since the PentiumII era have had this built on.

For comparison, my 1.1GHz Athlon system has a motherboard temperature of around 44 degrees Celsius and the CPU has a temperature of around 50 degrees Celsius on a warm spring's day. (These might be a tad higher than most people would find acceptable(?), but I don't have any extra case fans, only a fan on the heatsink and the PSU's fan).


This describes my experiences with lmsensors, in particular installing it under Debian Woody, on a Gigabyte 7VTXH

LM Sensors are very dependent on your:

This will require you to do nasty things to your machine, such as compile kernels, and possibly require you to get out a screwdriver to open up your machine to look at chips on the motherboard ! Not for the faint hearted !

I'm going to go over how I got it going on my motherboard, my kernel, and with Debian Woody. Add your experiances if they are different.

There are a number of steps to go through to get it going.

  1. Get your kernel compiled with i2c enabled

    • Config->Character Devices->I2C support
    • Enable everything as modules
    • build and install the kernel
  2. Install the debian packages for lm-sensors

    • apt-get install lm-sensors lm-sensors-source
  3. Build the kernel modules for the sensors and i2c busses

    • This is the tricky one. The debian system works well if you install your kernel through the kernel-package system. - I don't. Maybe I should, I can't be bothered. However this step is made hard because of it.
    • Debian places a file called lm-sensors.tar.gz in /usr/src
    • Read /usr/share/doc/lm-sensors-kernel if you use kernel-package

      • If you don't, extract the file lm-sensors.tar.gz in /usr/src
      • cd to /usr/src/modules/lm-sensors
      • type make all-kernel{,-chips,-busses}
      • type make install-kernel{,-chips,-busses}
  4. Figure out what sensors you have, load the correct modules.

    • Most people should be able to just run the program sensors-detect and follow instructions
    • If at the end of the process you try to run the sensors program and it tells you there are no sensors found, you may have to investigate what type of sensors you have.
    • For my Gigabyte board, I had to Google for answers, it turns out that sensors-detect found a LM78 chip on my board. That is completly wrong it has a IT8705 chip. If you are completly stuck, grap your mobo manual, see if it tells you the type of sensor chip on the board, and find the correct module. If not, open up your case, look for a medium sized chip, probably around .5 - 1 inch square. Read the chip ID number off of it, chuck it into google. If it comes back telling you that it's a voltage sensor, bingo ! If not, try another chip ! The final list of modules I had to use to make it work were:

      • i2c-viapro
      • i2c-isa
      • it87
  5. Configure /etc/sensors.conf to work out correct values and set error margins

    • This again will be dependant on you motherboard, if you run sensors and all of the values look sane, congratulations you are finished !
    • If not, edit /etc/sensors.conf
    • Look for a line that starts chip "<my sensor chip>-" eg, for my machine I looked for chip "it87-"

      • Disable any unconnected sensors, I had to disable in1, in5, in6 and in8, as the motherboard doesn't use them
      • Set the Vcore voltage to what your CPU uses, for my Duron 900, Vcore = 1.6v
      • read through the rest of the section and make sure it all makes sense.
  6. AFTER YOU EDIT /etc/sensors.conf AND EVERY TIME YOU BOOT, RUN sensors -s

    • This sets up the set fields, without it, you max, min and alarm values will not be set in the driver.

      • You must do this as root, it has to write to the kernel space driver.
  7. Set up Cacti to make pretty graphs of your CPU, motherboard temps, your voltages and fan speeds !
  8. Motherboard Notes

Gigabyte AMD boards (via southbridge based boards)

with some gigabyte boards (and possibly others), the module load order is important 7ZM (Socket A) requires that you load the modules in the order i2c-isa i2c-viapro via686a <-- the chip driver to via southbridge boards

you may also want to load i2c-proc and i2c-dev if you havnt built them into the kernel


Additional Experiences

GA-7VTXE motherboard

Following the excellent instructions above, I was able to fairly easily set up lm-sensors on my GA-7VTXE+ motherboard (which is very similar to the GA-7VTXH+ in the above section). Summary:

  1. build the sensors kernel module (I already had i2c support in my kernel for TvTunerCards support)
  2. # modprobe i2c-proc i2c-isa it87
  3. set up /etc/sensors.conf (see below)
  4. # sensors -s (as root, to initialise everything)
  5. $ sensors (to get a listing printed out)

I knew to use the it87 module and config from the above notes, but if I didn't, I would have looked at my motherboard's manual, for example, here.

The reading for the MB temp was consistent with the bios, but the reading for the CPU temp was way out. After a quick read of the documentation, it is because the default assumption is that the 2nd temperature sensor is a diode. Changing this setting to be a resistor made more realistic values appear. I had to add a line like

options it87 temp_type=0x38

to /etc/modules.conf so that the module uses different calculations. If you really want to know how I derived that option, read /usr/share/doc/lm-sensors/doc/chips/it87.gz (in debian, at least).

Here's a link to my /etc/sensors.conf file.

Abit KT7 motherboard

On an Abit KT7 motherboard, the chip is a "via686b" - you need to use the "via686a" driver. See the sensors.conf file for my setup for this.

Dell Servers

If you have a Dell server which you're wanting to use lm-sensors with, you're a bit out of luck. Dell motherboards do indeed have LM87 chips, but they are behind some fancy thingy, meaning only Dell software can access them (Dell OpenManage Server Administrator).

quote from a Dell employee; 'There are LM78's, but they are behind our own "inteligent" interface(uP). So the bad news is that lmsensors can't talk to PE servers sensors. The good news is that our systems management group has ported the software to allow access to all of this great info via SNMP. It even supports our older PE servers that only have TVM sensors (LM78's). It's actually a nice package, you can even re-Flash your BIOS from linux.'

The software to monitor via SNMP can be found at http://linux.dell.com/files/openmanage-contributions/debian/. If installing on Debian (woody?), you'll need to install v4.7.1 first (http://linux.dell.com/files/openmanage-contributions/debian/dellomsa_4.71-3653_i386.deb and http://linux.dell.com/files/openmanage-contributions/debian/dellomsa-drivers_4.71-3653_i386.deb) then v4.90 (or the program part of 4.90 at least, the 4.90 drivers didn't work for me so I stuck with 4.71)

Another helpful site is http://linux.dell.com/monitoring.shtml.