User Tools

Site Tools


faq

Frequently Asked Questions

These pages are based on version 2.18 of the old lm_sensors FAQ. All the questions and their answers were gathered by Frodo Looijaard, Philip Edelbrock, Mark D. Studebaker and Jean Delvare.

Introduction and Overview

PC and Sensor Overview

What sensors are available on my PC?

Most PC's built since late 1997 now come with a hardware health monitoring chip. This chip may be accessed via the ISA I/O ports or the SMBus, depending on the motherboard. Sometimes the monitoring block is embedded into a super I/O chip, often made by Nuvoton, Winbond, ITE or SMSC.

Check Installation and Management for details.

What can a sensor chip do?

They sense the temperatures, voltages and fans and provide this information to your operating system via a chip drivers. Sometimes they provide automatic fan control, which regulate fan speed depending on the temperature.

Where do I find out more about any of these chips?

Most semiconductor companies have comprehensive documentation, including complete datasheets, on their websites. Analog Devices, Maxim, and Texas Instruments have a wide selection of sensor chips. Their websites are:

Please see UsefulLinks for links to other companies' websites.

Sensor and Bus Basics

How are these sensors read?

Sensor chips reside on either the ISA bus, the SMBus, or both. See the file doc/chips/SUMMARY in our package for a list.

To communicate with chips on the ISA bus, the software uses simple I/O reads and writes. To communicate with chips on the SMBus, the software must use an SMBus interface device, explained below.

What is the SMBus? And the I2C bus?

The SMBus is the System Management Bus. More specifically, it is a 2-wire, low-speed serial communication bus used for basic health monitoring and hardware management. It is a specific implementation of the more general I2C (pronunciation: I-squared-C) bus. In fact, both I2C devices and SMBus devices may be connected to the same (I2C) bus.

The SMBus (or I2C bus) starts at the host controller, used for starting transactions on the SMBus. From the host interface, the devices communicated with are the slave devices. Each slave device has a unique 7-bit address which the host uses to refer to that device.

For each supported SMBus host, there is a separate kernel module which implements the communication protocol with the host. Some SMBus hosts really operate on the SMBus level; these hosts can not cope with pure I2C devices. Other hosts are in fact I2C hosts: in this case, we implement the SMBus protocol in terms of I2C operations. But these hosts can also talk to pure I2C devices.

I don't have an ISA bus!

We promise, you do, even if you don't have any old ISA slots. The “ISA Bus” exists in your computer even if you don't have ISA slots; it is simply a memory-mapped area, 64KB in size (0x0000 - 0xFFFF) where many “legacy” functions, such as keyboard and interrupt controllers, are found. It isn't necessarily a separate physical bus. See the file /proc/ioports for a list of devices living on the “ISA Bus” in your system. If you don't like the term “ISA Bus” think “I/O Space”.

What sensors do processors have?

Most new processors contain a thermal diode on the die itself. The electical properties of all diodes and transistors vary slightly with temperature. The thermal diode is exceptionally accurate because it is directly on the die. Newer temperature sensor chips, like the Analog Devices ADM1021 and clones, and the Winbond chips, have circuitry for measuring the the electrical properties of an external diode and converting this data to a temperature. Any sensor chip listed in doc/chips/SUMMARY in our package which has support for more than one temperature supports external temperature sensing.

Recent processors like AMD K8 and Intel Core or Intel Core2 have digital temperature sensors, which exports the temperature as digital number, rather than diode pins, resulting in greater precision.

Older motherboards even do not use the diode pins, but an thermistor placed inside the CPU socket. This is much less accurate.

How often are the sensor values updated?

Our drivers usually updates the values once a second or two. If you read the values faster than that, you will get the 'old' values again. It is not possible to make it faster for some chips due to their design.

Installation and Management

Why so many modules, and how do I cope with them?

We tried to make this package as modular as possible. This makes it easy to add new drivers, and unused drivers will take no precious kernel space. On the other hand, it can be a bit confusing at first.

Here are two simple guidelines:

  • Run sensors-detect and do what it tells you.
  • Always use modprobe, not insmod.
How do I know which chips I own?

We have an excellent program that scans all your hardware. It is called sensors-detect and is part of the lm-sensors package, available with all major distributions. Just execute this script, and it will tell you.

Chip detection in the drivers is fairly good. That means that it is usually harmless to insert more chip drivers than you need. However, this can still lead to problems, so we do not recommend it.

If sensors-detect didn't find any sensors, either you don't have any, or the ones you have, we don't support. (Look at your motherboard for candidates, then see Help)

What chips are on motherboard XYZ?

We have no idea. Here is what you should do:

  • Run sensors-detect. If that doesn't work read on:
  • Look at your motherboard.
  • Check the manufacturer's website or ask their support
  • Check the Motherboard Monitor website and the “links” page on our website some good cross-references.
Do you support motherboard XYZ?

We don't support boards, we support chips. See What chips are on motherboard XYZ.

Do you support chip XYZ?
Anybody working on a driver for chip XYZ?

Please see Supported Devices.

Which modules should I insert?

sensors-detect will tell you. Take the modprobe lines it recommends and paste them into the appropriate /etc/rc.d/xxxx file to be executed at startup.

You need one module for each sensor chip and bus adapter you own; if there are sensor chips on the ISA bus, you also need i2c-isa.o. for each type of chip you own. That's all. On my computer, I could use the following lines:

modprobe i2c-isa
modprobe i2c-piix4
modprobe lm78
modprobe lm75
modprobe i2c-dev
sensors -s
Help, I do not have smbus-arp!

You don't need it. This driver has not much use except for testing SMBus 2.0 ARP and PEC support in the i2c layer.

Do I need the configuration file /etc/sensors3.conf?

Yes, for any applications that use libsensors, including the sensors application included in our package. It tells libsensors how to translate the values the chip measures to real-world values. This is especially important for voltage inputs. The default configuration file should usually do the trick. It is automatically installed as /etc/sensors.conf, but it will not overwrite any existing file with that name.

The labels for the voltage and temperature readings in sensors are incorrect!

Every motherboard is different. You can customize the labels in the file /etc/sensors3.conf. That's why it exists! The default labeling (in lib/chips.c and /etc/sensors3.conf) is just a template.

The min and max for the readings in sensors are incorrect!

You can customize them in the file /etc/sensors3.conf. See above.

The min and max settings in /etc/sensors3.conf didn't take effect!

You forgot to run sensors -s. See above.

One sensor isn't hooked up on my board!

Use an ignore line in /etc/sensors3.conf so it isn't displayed in sensors.

I need help with sensors.conf!

There is detailed help at the top of that file.

Do you have a database of sensors.conf entries for specific boards?

No. Good idea though. If you would like to set one up on your website send us mail and we will set up a link to it.

How to Ask for Help

You can ask questions and raise problems on the lm-sensors mailing list, or you can create a new issue on GitHub.

How to Contribute

You can send patches to the lm-sensors mailing list, or you can submit a pull request on GitHub.

faq.txt · Last modified: 2018/09/01 10:37 by Ondřej Lysoněk