The primary mission for our project is to provide the best and most complete hardware health monitoring support for Linux, in the form of kernel drivers and a user-space library. We strive to produce well organized, efficient, safe, flexible, and tested code free of charge to all Linux users. The project attempts to support as many related devices as possible (when documentation is available), especially those which are commonly included on PC mainboards.
Our drivers provide the base software layer for utilities to acquire data on the environmental conditions of the hardware. We also provide a user-space access library and a sample text-oriented utility built on top of said library to display sensor data. While this simple utility is sufficient for many users, others desire more elaborate user interfaces. We leave the development of these GUI-oriented utilities to others. See our useful links page for references.
We welcome comments and suggestions and, in fact, rely on them to provide support for what the Linux community wants. We are also a non-profit project which depends on free samples and documentation from manufacturers to support their devices. Luckily most manufacturers familiar with Linux have eagerly provided us with samples, documentation, and even in some cases access to support engineers and code.
Our software is very flexible and can be used in a wide range of scenarios:
- PC users curious of knowing the hardware health status of their machine.
- PC users interested in making their computer quieter by controlling the speed of the fans.
- PC users overclocking their machine. While we do not support nor encourage overclocking per se, being able to closely monitor the system's hardware health as you attempt to get more performance out of it is obviously a good thing.
- Unattended high-end server, router or other mission-critical machine automated monitoring. Easily create a cron job to query the status of your hardware and email you in the event of a problem before it becomes critical. That way, you can be alerted within seconds of a failing critical component such as a power supply, fan, other cooling mechanism, or even detect if the case has been opened.
- Embedded systems running Linux. These can use this package to monitor voltages, temperatures, fan speeds, etc. using off-the-shelf components and utilizing a range of bus interfaces (e.g. ISA, SMBus, I2C or SPI).
- More generally, data acquisition. Easily measure various types of data (rotational speeds, voltages, temperatures, etc.) using cheap off-the-shelf parts. Very useful for systems automation (in the home, workshop, weather station, you name it).
Our package also contains a daemon using the Round Robin Database package (RRDTool) to automatically generate graphs like this on a web server:
- ISA hardware monitoring chips.
- I2C/SMBus hardware monitoring chips.
- SPI hardware monitoring chips.
- Hardware monitoring features integrated in Super-I/O chips.
- Hardware monitoring features integrated in south bridges.
- Thermal sensors integrated in CPU.
- Thermal sensors integrated in memory modules.
These days, most PC motherboards have either a Super-I/O chip with integrated sensors or a hardware monitoring chip on the SMBus (sometimes both). Laptops most often don't (thermal management is hidden behind ACPI). Of course we make no promise to support every existing component falling into either of the above categories. See the Devices page for an up-to-date list of supported devices.
For devices which are connected to a secondary bus (I2C, SMBus or SPI), a bus master driver is required in addition to the hardware monitoring chip driver. These drivers are developed and maintained in the Linux kernel tree and are no longer under our direct control. Almost all PC motherboards include an SMBus master.
Our drivers typically support the monitoring of the following:
- Speed of fans which support rotation speed sensing and which are connected to a 3-pin or 4-pin fan header on the motherboard.
- System voltages.
- Temperatures of the sensor chip itself and/or remote thermal sensors (thermistors or diodes).
- VID lines (target CPU operating voltage).
- Fan speed control. Not supported by libsensors.
What features are available and what exactly is monitored depends on the exact hardware setup. That is, it depends not only on the hardware monitoring chip but also on how the chip in question is wired on the motherboard. This means in particular that your motherboard may lack a feature which your hardware monitoring chip has, just because the manufacturer did not make use of it.
Additional features implemented by some hardware monitoring chips:
- Limit settings to alert the system that a sense value has exceeded its limit(s).
- Some chips have buzzer support.
- Power sensors (lm-sensors >= 3.1.0).
- Energy sensors (lm-sensors >= 3.0.2).
- Current sensors (lm-sensors >= 3.1.0).
- Chassis intrusion detection by a micro-switch, if installed (lm-sensors >= 3.3.0).