Lm sensors

From ArchWiki
Revision as of 20:49, 28 August 2011 by James Eder (talk | contribs) (Graphical Frontends: links for packages)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

lm_sensors (Linux-monitoring sensors), a free open source software-tool for Linux, provides tools and drivers for monitoring temperatures, voltage, and fans.

This document tells you how to install, setup, and use lm_sensors so that you can monitor CPU and/or motherboard temperature and fan speeds.

Notice for kernels >=2.6.31

A change in version 2.6.31 has made sensors stop working for some users. See this FAQ entry for a detailed explanation and for some example errors. To fix sensors, add the following to your kernel boot line and reboot your machine.

Warning: In some situations, this may be dangerous. Consult the FAQ for details.

If using grub, edit Template:Filename:

title           Arch Linux
root            (hd0,1)
kernel          /boot/vmlinuz-linux root=/dev/sda2 ro quiet acpi_enforce_resources=lax
initrd          /boot/initramfs-linux.img

If using grub2, edit Template:Filename and then rebuild Template:Filename. The following is an example of a completed grub.cfg:

menuentry 'Arch Linux, with Linux vmlinuz-linux' --class archlinux --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(/dev/sda,msdos2)'
        search --no-floppy --fs-uuid --set=root 1cc527cc-26a0-40c8-a7ec-364f7fcd0e41
        echo    'Loading Linux vmlinuz-linux ...'
        linux   /vmlinuz-linux root=/dev/disk/by-uuid/de78e45a-760e-4f39-8884-e3cf5b9b09fb ro quiet acpi_enforce_resources=lax
        echo    'Loading initial ramdisk ...'
        initrd  /initramfs-linux.img



Install the Template:Package Official package from [extra]:

# pacman -S lm_sensors

Setting up lm_sensors

Use sensors-detect to detect and generate a list of kernel modules:

# sensors-detect

This will create the Template:Filename configuration file which is used by the sensors daemon to automatically load kernel modules on boot. You will be asked if you want to probe for various hardware. The "safe" answers are the defaults so just hitting enter to all the questions will generally not cause any problems.

When the detection is finished, you will be presented with a summary of the probes. Here is an example summary from my system:

Now follows a summary of the probes I have just done.
Just press ENTER to continue:
Driver `it87':
  * ISA bus, address 0x290
     Chip `ITE IT8718F Super IO Sensors' (confidence: 9)
Driver `coretemp':
  * Chip `Intel Core family thermal sensor' (confidence: 9)

If you plan on using the daemon, be sure to answer YES when asked if you want to to generate Template:Filename.

To automatically load the kernel modules at boot time, add sensors to the DAEMONS array in Template:Filename

DAEMONS=(syslog-ng crond ... sensors ...)

Alternatively, instead of using the daemon, you can add the modules to the MODULES array in Template:Filename:

MODULES=(coretemp it87 acpi-cpufreq)

Testing your lm_sensors

To test your setup, load the kernel modules manually or by using the sensors init script. You do NOT have to do both. Example manually adding them

# modprobe it87
# modprobe coretemp

Example using the script

# /etc/rc.d/sensors start

You should see something like this when you run sensors

$ sensors
Adapter: ISA adapter
Core 0:      +30.0°C  (high = +76.0°C, crit = +100.0°C)  

Adapter: ISA adapter
Core 1:      +30.0°C  (high = +76.0°C, crit = +100.0°C)  

Adapter: ISA adapter
Core 2:      +32.0°C  (high = +76.0°C, crit = +100.0°C)  

Adapter: ISA adapter
Core 3:      +30.0°C  (high = +76.0°C, crit = +100.0°C)  

Adapter: ISA adapter
in0:         +1.17 V  (min =  +0.00 V, max =  +4.08 V)   
in1:         +1.31 V  (min =  +1.28 V, max =  +1.68 V)   
in2:         +3.28 V  (min =  +2.78 V, max =  +3.78 V)   
in3:         +2.88 V  (min =  +2.67 V, max =  +3.26 V)   
in4:         +2.98 V  (min =  +2.50 V, max =  +3.49 V)   
in5:         +1.34 V  (min =  +0.58 V, max =  +1.34 V)   ALARM
in6:         +2.02 V  (min =  +1.04 V, max =  +1.36 V)   ALARM
in7:         +2.83 V  (min =  +2.67 V, max =  +3.26 V)   
Vbat:        +3.28 V
fan1:       1500 RPM  (min = 3245 RPM)  ALARM
fan2:          0 RPM  (min = 3245 RPM)  ALARM
fan3:          0 RPM  (min = 3245 RPM)  ALARM
temp1:       +18.0°C  (low  = +127.0°C, high = +64.0°C)  sensor = thermal diode
temp2:       +32.0°C  (low  = +127.0°C, high = +64.0°C)  sensor = thermistor
temp3:       +38.0°C  (low  = +127.0°C, high = +64.0°C)  sensor = thermistor
cpu0_vid:   +2.050 V

Adapter: Virtual device
temp1:       +18.0°C  (crit = +64.0°C)

Reading SPD values from memory modules (Optional)

To read the SPD timing values from your memory modules, install Template:Package AUR from AUR. Once you have i2c-tools installed you will need to load the eeprom kernel module.

# modprobe eeprom

Finally you can view your memory information with

$ decode-dimms

Here is a partial output from my machine:

# decode-dimms version 5733 (2009-06-09 13:13:41 +0200)

Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in                             bank 1

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x583F)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 512
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     UDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
tCL-tRCD-tRP-tRAS                               7-7-7-33
Supported CAS Latencies (tCL)                   8T, 7T, 6T, 5T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      49.500 ns
Minimum Recovery Delay (tRFC)                   110.000 ns
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.500 ns
Minimum Four Activate Window Delay (tFAW)       30.000 ns

---=== Optional Features ===---
Operable voltages                               1.5V
RZQ/6 supported?                                Yes
RZQ/7 supported?                                Yes
DLL-Off Mode supported?                         No
Operating temperature range                     0-85C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              Yes
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         Not implemented
SDRAM Device Type                               Standard Monolithic

---=== Physical Characteristics ===---
Module Height (mm)                              15
Module Thickness (mm)                           1 front, 1 back
Module Width (mm)                               133.5
Module Reference Card                           B

---=== Manufacturer Data ===---
Module Manufacturer                             Invalid
Manufacturing Location Code                     0x02
Part Number                                     OCZ3G1600LV2G     


Using sensor data

Graphical Frontends

There are a variety of front-ends for sensors data.

From the AUR:

  • Template:Package AUR - an applet for the GNOME Panel to display readings from hardware sensors, including CPU temperature, fan speeds and voltage readings.
  • Template:Package AUR - a GNOME Panel applet that displays some sensors readings as well as other hardware monitoring.


There is an optional daemon called sensord (included with the lm_sensors package) which can log your data to a round robin database (rrd) and later visualize graphically. See the sensord man page for details.


Asus P8P67, Intel dh67cf motherboard

Issue: on Asus P8P67 and Intel DH67CF motherboard lm-sensors cannot detect fans. This related with lm-sensors yet not support NCT6776F chip.


  • Upgrade kernel26 to 2.6.39. The module w83627ehf includes support for the Nuvoton NCT6776F in the stock kernel despite what http://www.lm-sensors.org/wiki/Devices says as of 2011-05-20.
  • compile standalone driver.

You can download the source from http://mail.planet-ian.com/w83627ehf

Then execute:

$ cd <source dir>
$ make
# make install
# modprobe w83627ehf

You should add w83627ehf in MODULES array in Template:Filename.

Put your Template:Filename following text: Template:File

And execute:

sensors -s

K10Temp Module

Issue: There is a bug in k10temp with >=2.6.39 kernels that when loading the k10temp module an error is thrown: "k10temp unreliable CPU thermal sensor; monitoring disabled".


  • Load module with force=1
# rmmod k10temp
# modprobe k10temp force=1

Confirm with Lm_sensors#Testing your lm_sensors that the sensor is in fact valid and reliable, if it is you can then make it apply at boot: Edit "/etc/modprobe.d/k10temp.conf" and add:

options k10temp force=1

See also

  • hddtemp - Software to read temps of HDDs.
  • monitorix - Monitorix is a free, open source, lightweight system monitoring tool designed to monitor as many services and system resources as possible.