Managing server and laptop temperatures is critical for hardware longevity and performance. While most operating systems ship with basic thermal policies, dedicated fan control daemons offer granular, customizable cooling strategies. This guide compares three popular Linux fan control solutions: thinkfan, NBFC-Linux, and Intel thermal_daemon.
What Are Linux Fan Control Daemons?
Fan control daemons run as background services on Linux systems, reading temperature sensors from the kernel’s hwmon (hardware monitoring) subsystem and adjusting fan speeds via PWM (pulse-width modulation) interfaces. Without proper fan control, servers can overheat under load or waste energy running fans at maximum speed during idle periods.
The Linux kernel exposes temperature sensors through /sys/class/hwmon/ and fan control interfaces through /sys/class/thermal/ and /sys/class/hwmon/hwmon*/pwm*. Fan control daemons read these values and apply configurable policies — typically step curves or PID control loops — to maintain target temperature ranges.
thinkfan — Minimalist Fan Control for ThinkPads and Beyond
thinkfan (695 stars) started as a ThinkPad-specific tool but now supports any Linux system with hwmon sensors. It uses a simple configuration file with temperature thresholds and fan speed percentages.
Installation
| |
Configuration
thinkfan uses a straightforward threshold-based configuration in /etc/thinkfan.conf:
| |
The configuration maps sensor paths to fan PWM outputs and defines speed levels with hysteresis to prevent fan oscillation at threshold boundaries.
Starting the Service
| |
NBFC-Linux — Notebook Fan Control for Multi-Vendor Laptops
NBFC-Linux (734 stars) is a Linux port of the Windows NoteBook FanControl application. It supports a wide range of laptop brands including Acer, ASUS, Dell, HP, Lenovo, MSI, and Toshiba through pre-built configuration profiles.
Installation
| |
Configuration
NBFC-Linux ships with hundreds of pre-built configs for specific laptop models:
| |
Docker Compose Deployment for Monitoring
While NBFC-Linux typically runs directly on the host, you can containerize a monitoring wrapper:
| |
Intel thermal_daemon — Intelligent Thermal Management for Intel Platforms
intel/thermal_daemon (634 stars) is Intel’s official thermal management daemon, designed primarily for Intel IA (Intel Architecture) platforms. It uses DPTF (Dynamic Platform and Thermal Framework) to coordinate thermal policies across CPU, GPU, and platform-level cooling.
Installation
| |
Configuration
thermal_daemon uses XML-based thermal zone definitions in /etc/thermald/thermal-conf.xml:
| |
For most users, thermal_daemon works effectively with zero configuration — it auto-detects thermal zones and applies conservative thermal policies based on the platform’s ACPI tables.
Comparison Table
| Feature | thinkfan | NBFC-Linux | Intel thermal_daemon |
|---|---|---|---|
| Stars | 695 | 734 | 634 |
| Primary Target | ThinkPads, generic hwmon | Multi-vendor laptops | Intel IA platforms |
| Config Format | YAML (threshold-based) | JSON profiles (per-model) | XML (thermal zones) |
| Sensor Support | hwmon, ACPI | Embedded Controller (EC) | DPTF, RAPL, ACPI |
| Fan Control | PWM via sysfs | EC register writes | RAPL power capping |
| Auto-Config | Manual sensor mapping | Pre-built model profiles | Auto-detect thermal zones |
| PID Control | No (threshold only) | No (threshold only) | Yes (adaptive) |
| GPU Cooling | Via hwmon | Limited | Via DPTF |
| Daemon Mode | systemd service | CLI + systemd service | systemd service |
| Best For | ThinkPad owners | Multi-brand laptops | Intel servers/desktops |
Docker-Based Fan Monitoring Stack
For a production monitoring setup that works alongside any of these tools, deploy a Prometheus-based thermal monitoring stack:
| |
With prometheus.yml:
| |
Why Self-Host Your Fan Control?
Running your own fan control daemon rather than relying on BIOS defaults provides several tangible benefits. First, noise reduction — most BIOS fan curves prioritize cooling over acoustics, running fans unnecessarily loud at moderate temperatures. A tuned daemon can keep a server library-quiet during idle and light workloads.
Second, hardware longevity — constant full-speed fan operation accelerates bearing wear. A properly configured fan curve reduces average RPM, extending fan lifespan by years. For homelab operators running 24/7, this translates to fewer hardware replacements.
Third, energy savings — fans consume measurable power. A 120mm server fan at full speed draws 5-12W; across multiple chassis, that adds up. Intelligent fan control can reduce this to 1-3W at idle. For a rack of 10 servers, that is 40-90W saved continuously — roughly 350-790 kWh per year.
Fourth, thermal optimization per workload — different workloads generate different heat profiles. A database server with bursty I/O needs different fan behavior than a continuously-compiling build server. Custom fan curves match cooling to actual usage patterns.
For bare-metal hardware monitoring that complements fan control, see our bare-metal hardware monitoring guide. If you need GPU-specific thermal monitoring, that comparison covers nvtop, DCGM-Exporter, and Netdata. For complete Linux hardware inventory, dmidecode, lshw, and hwinfo provide the sensor discovery data you need.
FAQ
Which fan control tool should I use for my ThinkPad?
For ThinkPads, thinkfan is the most mature and widely-used option. It integrates directly with the ThinkPad ACPI interface and has been bundled in major Linux distributions for years. If your model is supported by NBFC-Linux, that tool offers more granular per-fan control, but thinkfan’s simplicity makes it the default recommendation.
Can NBFC-Linux work on desktop servers?
NBFC-Linux is primarily designed for laptops because it communicates with the Embedded Controller (EC) chip found in portable systems. Most desktop motherboards do not have an EC in the same configuration. For desktop servers, use thinkfan (with hwmon sensors) or thermal_daemon (with DPTF/RAPL interfaces).
Does thermal_daemon work on AMD processors?
thermal_daemon is Intel-specific — it relies on DPTF (Dynamic Platform and Thermal Framework) and RAPL (Running Average Power Limit), which are Intel technologies. For AMD systems, use thinkfan with hwmon sensor paths, or the kernel’s built-in amd-pstate driver with the schedutil CPU frequency governor.
How do I find my temperature sensor paths for thinkfan?
Use sensors-detect from the lm-sensors package to discover all available sensors:
| |
The sensor paths will appear under /sys/class/hwmon/hwmon*/temp*_input.
Is it safe to let fans stop completely at low temperatures?
For laptop fans, yes — most ThinkPad BIOS designs allow the fan to stop entirely below a threshold (typically 45-50°C). For server chassis fans, running at a minimum of 10-20% is recommended to maintain positive air pressure and prevent dust accumulation. Configure your lowest threshold to a non-zero speed for server fans.
Can I run multiple fan control daemons simultaneously?
No — running multiple fan control daemons causes conflicts as they compete to write to the same PWM sysfs files. Choose one daemon per system. If you need features from multiple tools, use thermal_daemon for Intel power capping combined with thinkfan for chassis fan control, but ensure they manage different fan PWM outputs.
How does Docker hwmon monitoring relate to fan control?
Docker containers with --device access to hwmon interfaces can read temperature sensors but should not write to PWM controls — fan control should remain on the host. The Docker monitoring stack shown above reads sensors via node-exporter for visualization, while the fan daemon on the host manages actual speed control.