[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: lm_sensors

* On Mon, Feb 03, 2003 at 02:19:45PM -0500, karrottop (karrottop@fuse.net) wrote:
> I am re-posting this because I was made aware I sent it as a reply to
> another post.  Sorry about that, so without further adue here is my
> intended post now...
> I am having a great deal of trouble getting lm_sensors to work under
> debian.  I am pretty sure that I am about 75% on the way to getting this
> started but none the less, if someone could give me a bit of a
> walk-through to getting things running I would appreciate it.  My
> intention is mostly to monitor my hardware temp's etc, being that I am
> using a water cooled system, and I am a bit uneasy about not knowing the
> performance of my system, especially one that is overclocked.  If it
> matters I am using sid, a soyo motherboard with a via chipset, and
> kernel 2.4.20 ( I have built in everything in the i2c portion of
> charcter devices )
> -- 
> To UNSUBSCRIBE, email to debian-user-request@lists.debian.org 
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Got hardware sensors working on a few motherboards here and even
took notes on how it was done. Perhaps these notes might be useful to you.

Notes on Installing sensor support in a Debian system.

0) For the following, it is assumed that a new
   2.4.20 kernel was already compiled, installed and
   working. It is also assumed that the kernel was compiled
   using the debian kernel build system make-kpkg. The
   kernel source should be in /usr/src/linux either directly
   or by a symbolic link.

1) have a working 2.4 series kernel with module support
   included. Make sure that i2o items are NOT compiled
   in. Once this kernel is installed and working, the modules
   are ready to be included. Make sure you are running
   the kernel to which the modules are to be added. This
   seems to be the easiest way to make the module version
   numbers consistent with the kernel version number.

2) obtain the debian packages: i2c-source,lm-sensors,
      lm-sensors-source, and sensord. Optionally also
      get other monitors like sensor-sweep-applet,
      wmsensors or xsensors. The package xsensors is
      not in woody but getting the source and building
      it locally using apt-get source works fine.

3) Become root and change to the /usr/src directory.
   In this directory there will be tar files named
      i2c.tar.gz and lm-sensors.tar.gz. When these
      tar files are expanded they write themselves
      into the /usr/src/modules directory. This
      directory may already exist if other modules
      have already been installed in this kernel.

4) Extract the files by "tar zxf i2c.tar.gz" and
   "tar zxf lm-sensors.tar.gz"

5) cd /usr/src/linux and run the command
    "make-kpkg modules_image"
   When the build has completed there will be
   debian packages in /usr/src named

6) install these packages with the commands
     dpkg -i i2c-2.4.19_2.6.5-3+lb.custom.1.1_i386.deb
     dpkg -i lm-sensors-2.4.19_2.6.4-3+lb.custom.1.1_i386.deb

7) As root (as always) run the program sensors-detect.
   This tool sweeps the smbus and determines the devices
   that are on it. It then reports the chip types and
   the relevant modules that need to be loaded to get the
   hardware sensors system working. This program mostly
   works but does not always work. See the last step for
   suggestions if the modules were detected incorrectly.

8) Cut and paste the results from sensors-detect into 
   the relevant files as it requests. For one motherboard
   as an example,
   the lines:
# I2C adapter drivers
# I2C chip drivers
  have to be pasted into the file /etc/modules.
  Then the command update-modules has to be run.
  Then paste the lines
# I2C module options
alias char-major-89 i2c-dev
  into the file /etc/modutils/local

  Then run the command /etc/init.d/modutils

9) After these steps are completed, the required
   modules will be loaded. This can be checked by
   the output of the lsmod command. The output for
   this example is
Module                  Size  Used by    Tainted: P  
w83781d                19224   0  (unused)
i2c-proc                6416   0  [w83781d]
i2c-viapro              3860   0  (unused)
i2c-core               15052   0  [w83781d i2c-proc i2c-viapro]

10) Then reboot the system. If the module system
     is working correctly then after boot the loaded
     modules should be identical to the previous output
     of lsmod

11) To verify that the kernel interface is correctly tied
    to the hardware run the command "sensors"
    Typical output in this example is
Adapter: SMBus Via Pro adapter at e800
Algorithm: Non-I2C SMBus adapter
VCore 1:   +1.77 V  (min =  +1.74 V, max =  +1.93 V)              (beep)
VCore 2:   +2.51 V  (min =  +1.74 V, max =  +1.93 V)              (beep)
+3.3V:     +3.32 V  (min =  +3.13 V, max =  +3.45 V)              (beep)
+5V:       +5.07 V  (min =  +4.72 V, max =  +5.24 V)              (beep)
+12V:     +12.46 V  (min = +10.79 V, max = +13.19 V)              
-12V:     -12.29 V  (min = -13.21 V, max = -10.90 V)              
-5V:       -5.45 V  (min =  -5.26 V, max =  -4.76 V)              
V5SB:      +0.13 V  (min =  +0.13 V, max =  +0.13 V)              
VBat:      +0.08 V  (min =  +0.08 V, max =  +0.08 V)              
fan1:        0 RPM  (min = 3000 RPM, div = 2)                     (beep)
fan2:        0 RPM  (min =  187 RPM, div = 32)                     (beep)
fan3:        0 RPM  (min = 3000 RPM, div = 2)                     
temp1:       +32°C  (limit =  +60°C)                       sensor = thermistor           (beep)
temp2:     +33.5°C  (limit =  +60°C, hysteresis =  +50°C) sensor = thermistor           (beep)
temp3:    +255.5°C  (limit =  +60°C, hysteresis =  +50°C) sensor = 3904 transistor           
vid:      +1.850 V
          Sound alarm disabled

    It is pretty important to confirm these values by comparing
    them to the readings that the BIOS reports. If the numbers
    match all is well. If the numbers dont match then you have
    problems. One possibility is that the sensors-detect
    program detected the wrong kind of hardware. Confirm what the
    detected hardware matches the motherboard type. If the hardware
    is correct confirm that the correct hardware module type is
    enabled in the file "/etc/sensors.conf". This file controls the
    translation from hardware digital numbers to human readable
    floating point numbers. This file is heavily documented and
    modifying it should be self-explanatory.

12) At this point the hardware sensor system is operational
    and higher level tools like xsensors can be run. If the
    output is correct then the interface to /proc/sys/dev/sensors
    is also working

13) The highest level routines like sensord, ksensors, wmsensors, or
    sensor_sweep_applet can now be configured to run as desired.

14) One some (maybe many motherboards) the above is sufficient
    to get things working. But I had a couple of motherboard
    types that failed in different ways.
    On one motherboard sensors-detect correctly detected
    the hardware but on this motherboard (Asus P5A) the smbus is
    known to be broken but the isa bus works and the hardware can
    be accessed from there. Googling for "lm sensors Asus P5A"
    led right to the lm sensors documentation which explained
    that the problem is known and the workaround is to use the
    isa bus. No explanation given as to how to do that. More
    searching and tinkering led to the answer of putting the module
    i2c-isa into the /etc/modules file. Then things started working.

    On another motherboard, (Gigabyte 7ZMMH) sensors-detect reported
    the wrong hardware. Here the solution was to determine the actual
    hardware on the motherboard. I found the site
    to be helpful here. Then googling for combinations of the motherboard
    hardware chipset and lm sensors led to a page where someone
    kindly listed the modules required for this to work. After making
    this change everything started working


Reply to: