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.
- 1 Usage
- 2 Using sensor data
- 3 Troubleshooting
- 4 See also
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:
This will create the Template:Filename configuration file which is used by the Template:Codeline 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 coretemp-isa-0000 Adapter: ISA adapter Core 0: +30.0°C (high = +76.0°C, crit = +100.0°C) coretemp-isa-0001 Adapter: ISA adapter Core 1: +30.0°C (high = +76.0°C, crit = +100.0°C) coretemp-isa-0002 Adapter: ISA adapter Core 2: +32.0°C (high = +76.0°C, crit = +100.0°C) coretemp-isa-0003 Adapter: ISA adapter Core 3: +30.0°C (high = +76.0°C, crit = +100.0°C) it8718-isa-0290 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 acpitz-virtual-0 Adapter: Virtual device temp1: +18.0°C (crit = +64.0°C)
Reading SPD values from memory modules (optional)
# modprobe eeprom
Finally you can view your memory information with
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
There are a variety of front-ends for sensors data.
- Template:Package Official - ksensors is nice lm_sensors frontend for KDE
- Template:Package Official - X11 interface to lm_sensors
- Template:Package Official - A lm_sensors plugin for the Xfce panel
- conky - Conky is an advanced, highly configurable system monitor for X based on torsmo
- Template:Package Official - Superkaramba is a tool which gives posibility to create different widgets for KDE desktop. Check the karamba section on kde-look.org for examples of making karamba 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.
Sensors not working since Linux 2.6.31
A change in version 2.6.31 has made some sensors stop working. See this FAQ entry for a detailed explanation and for some example errors. To fix sensors, add the following to your kernel boot line (e.g. in your GRUB/GRUB2 configuration file) and reboot your machine:
Note that in most cases the information is still accessible via other modules (e.g. via ACPI modules) for the hardware in question. Many utilities and monitors (e.g. Template:Filename) can gather information from either source. Where possible, this is the preferred solution.
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
$ cd <source dir> $ make # make install # modprobe w83627ehf
You should add w83627ehf in MODULES array in Template:Filename.
Some K10 processors have issues with their temperature sensor. From the kernel documentation (Template:Filename):
- All these processors have a sensor, but on those for Socket F or AM2+, the sensor may return inconsistent values (erratum 319). The driver will refuse to load on these revisions unless you specify the "force=1" module parameter.
- Due to technical reasons, the driver can detect only the mainboard's socket type, not the processor's actual capabilities. Therefore, if you are using an AM3 processor on an AM2+ mainboard, you can safely use the "force=1" parameter.
On affected machines the module will report "unreliable CPU thermal sensor; monitoring disabled". If you still want to use the module you can:
# rmmod k10temp # modprobe k10temp force=1
options k10temp force=1
This will allow the module to load at boot.