๐งฐ Hardware Support โ
Overview โ
CoolerControl automatically discovers supported Linux hardware drivers and connects to devices that expose compatible sensor interfaces (e.g., hwmon, NVML, liquidctl). It does not ship device drivers or access hardware directly.
Note: Some hardware lacks Linux support or is only partially supported. Additionally, some drivers expose sensor readings but do not support fan control. In these cases CoolerControl will show a warning in the UI and/or log an error when attempting to apply changes. See the sections below for steps to improve detection and support. Additionally, you can join our Discord for community troubleshooting and to share your experience.
If you notice that CoolerControl has not detected all your available hardware, here are some steps you can take to maximize hardware coverage:
Load All Applicable Kernel Modules โ
Built-in Super-I/O Detection โ
CoolerControl includes built-in Super-I/O detection that automatically identifies and loads kernel modules for common hardware monitoring chips (ITE, Winbond/Nuvoton, SMSC, National Semiconductor). This covers much of what sensors-detect from lm_sensors traditionally handled for motherboard Super-I/O chips.
- On x86_64 systems, detection runs automatically at daemon startup and loads drivers such as
it87,nct6775, andw83627hfwhere applicable. - Detection requires
/dev/portaccess, which is automatically available when running as a systemd service. - To disable automatic detection, set
sensors_auto_detect = falsein/etc/coolercontrol/config.toml, or toggle it in the UI under Settings โ General.
You can also run detection manually using the detect subcommand without starting the full daemon:
sudo coolercontrold detect # probe chips only, no module loading
sudo coolercontrold detect --load # probe and load detected kernel modulesThis is useful for diagnosing whether a Super-I/O chip is recognized and which driver it needs.
lm_sensors (complementary) โ
- Install
lm_sensorsand runsudo sensors-detectfor hardware not covered by built-in Super-I/O detection, or for chips requiring manual intervention. For more details see the Arch Wiki. Additionally, you can check out the official lm-sensors repository for tips on manually loading unofficial kernel modules for hardware that isn't supported out-of-the-box yet. - Install the latest kernel available for your distro.
Motherboard Fans โ
- Motherboard manufacturers provide no drivers nor datasheets for the fan, sensor and rgb chipsets in modern desktop motherboards, so we rely on drivers that have been reverse engineered by enthusiasts that often need to be installed from external sources.
- For newer motherboards, install the latest available kernel for your distribution to get the most up-to-date hwmon drivers.
- Make sure to follow the instructions above.
- Some newer boards require out-of-tree hwmon kernel drivers for even partial support. Common examples include:
- it87 (ITE) (e.g., Gigabyte)
- nct6687 (Nuvoton) (e.g., MSI/ASUS)
- Consult your distribution or the driver README for DKMS/build instructions.
- Additionally, you can seek help from the community in our Discord Server.
USB AIOs, Liquid Coolers, and Fan Hubs โ
- Install the
liquidctlpackage provided by your distribution (prefer the latest available version). - Many devices expose both a
hwmondriver and aliquidctlbackend. Follow the instructions above to load all applicable kernel modules so CoolerControl can detect thehwmoninterfaces. - Check the liquidctl hardware support list for the state of liquidctl support for your device. Many devices are considered to be only experimentally supported.
- Verify that the
liquidctlpackage version available on your distro supports your hardware. For example, some hardware may require a version newer than what your distro offers. In these cases, you may need to upgrade liquidctl manually to support your hardware. CoolerControl offers aliquidctl-gitconvenience package for debian-based distros that only have older versions of liquidctl available.
NVIDIA GPU โ
- Make sure you have installed the NVIDIA proprietary driver for your card. Your distro should have documentation on the recommended method, and NVIDIA also provides a Driver Installation Guide for Linux.
- Fan control works on most cards with the proprietary driver. CoolerControl automatically uses NVML and the CLI tools
nvidia-settings/nvidia-smias a fallback. - Specific controls and sensors depend on NVML support for your particular GPU.
- Hotspot (junction) temperature is supported on some cards via NVAPI. When available, it appears as an additional temperature sensor alongside the standard GPU temperature.
AMD GPU โ
- Older cards (e.g., Radeon โค 6000 series) and integrated graphics typically work out of the box.
- Newer cards (RDNA3/4, e.g., RX 7000/9000 series) use updated firmware that requires the
PP_OVERDRIVE_MASKkernel parameter to be set before CoolerControl can control the fans.- A Linux kernel โฅ 6.12 is required.
- Depending on your kernel version and specific GPU model, there may be a minimum temperature threshold before fans will spin up.
- Recommended: use the GPU Overdrive button in the device's Advanced Device Settings. CoolerControl will configure the kernel parameter automatically for your distro and regenerate initramfs where needed. A reboot is required afterward.
- Manual alternative: run the following command and append its output to your bootloader's kernel parameters:bashGuides for setting kernel boot parameters by distro:
sh -c 'printf "amdgpu.ppfeaturemask=0x%x\n" "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask) | 0x4000))"' - For newer AMDGPU cards, it is also recommended to enable the Firmware-controlled Profile Device Channel Setting on your GPU's fan page in CoolerControl. This delegates fan control to the GPU firmware's built-in curve, which works more reliably with the newer firmware. Note that this mode does not support Custom Sensors, Mix, or Overlay Profiles.
TIP
If you notice micro-stutters or power spikes during GPU fan updates, try one of the following:
- Enable the
Firmware-controlled ProfileDevice Channel Setting on your GPU's fan page in CoolerControl. This delegates control to the GPU firmware's internal fan curve instead of applying manual speeds. Trade-off: advanced features such as Custom Sensors, Mix, and Overlay Profiles can not be applied. - If you prefer manual control, smooth your custom fan curve (reduce steep jumps) around temperature transition points to minimize frequent RPM changes.
Conflicts with LACT โ
LACT (Linux AMD GPU Control Application) is a popular tool for AMD GPU overclocking and power management. On newer AMDGPU cards (those affected by the firmware fan control limitations described above), the newer firmware introduces restrictions that cause problems when multiple applications attempt to manage fan control simultaneously. This does not affect older cards.
WARNING
Do not run LACT and CoolerControl in fan-control mode at the same time for the same newer AMDGPU card. The firmware limitations can cause erratic fan behavior, with each application's settings being overwritten by the other.
If you use LACT for overclocking or power management, set the fan profile to the Default Profile in CoolerControl so that CoolerControl no longer attempts to control the fan and there isn't a conflict.
Laptops โ
- ThinkPads, some ASUS, and some HP Laptops are known to have supported Linux drivers, but support is spotty and not all models are supported. If your laptop has a hwmon kernel driver, then CoolerControl will use it automatically. Otherwise, fan control for your laptop is most likely not supported.
ThinkPad โ
ThinkPad laptops use the thinkpad_acpi kernel module. When detected, CoolerControl exposes two additional settings in the device's Advanced Device Settings menu:
- Fan Control โ enables ACPI fan control via
thinkpad_acpi. Disabled by default for safety, enable only if you intend to use CoolerControl to manage the fans. - Full Speed โ when set to 100%, spins fans at their absolute hardware maximum instead of the normal manual ceiling. This runs fans out of specification and increases wear, use with caution.
HDDs & SSDs โ
- Newer NVMe and SSD drives generally have hwmon support enabled by default. For older HDDs, however, there exists a kernel module called
drivetempthat one can use to enable reading temperatures for these drives:
Load the module:
sudo modprobe drivetempRestart CoolerControl to detect the new driver:
sudo systemctl restart coolercontroldLoad the module on boot:
echo drivetemp | sudo tee /etc/modules-load.d/drivetemp.confNote: Verify with your distribution's documentation about how to enable modules by default
Drive Power State โ
Enable Settings โ Daemon โ Drive Power State to have CoolerControl report a spun-down drive's temperature as 0ยฐC instead of its last known value. When the drive supports power state detection, fan Profiles can use this to reduce fan speeds while the drive is idle.
Advanced Device Settings โ
Each device has an advanced settings menu accessible via the gear icon next to its name in the device list.
Command Delay โ
Some devices have trouble processing multiple commands sent in rapid succession, which can result in missed updates, incomplete writes, or communication errors. The Command Delay setting introduces a minimum pause between consecutive commands sent to that device.
To configure it, open the device's advanced settings and adjust Command Delay (0โ250 ms, in 10 ms steps). The change takes effect after a daemon restart, which CoolerControl will prompt for automatically.
TIP
Start with a small value (10โ30 ms) and increase only if you continue to see issues.
GPU Overdrive โ
For AMD RDNA3/4 GPUs that need the PP_OVERDRIVE_MASK kernel parameter to enable fan control. When CoolerControl detects that overdrive is not yet enabled, an Enable button appears here.
CoolerControl configures the parameter automatically for your distro (including atomic Fedora variants) and triggers any required initramfs regeneration in the background - you'll be notified when it's done. A system reboot is required to apply the change.
WARNING
NixOS and Guix are not supported by the automatic configuration. Use the manual steps instead.
ThinkPad Fan Control โ
ThinkPad devices expose two additional toggles in the Advanced Device Settings menu.
Fan Control
Enables ACPI fan control for the ThinkPad. When off, the BIOS/firmware retains full authority over the fans and CoolerControl cannot set speeds. Enabling this writes options thinkpad_acpi fan_control=1 to /etc/modprobe.d/thinkpad_acpi.conf and reloads the module.
Full Speed
When the fan speed is set to 100%, Full Speed mode sets pwm_enable to 0 (hardware maximum) instead of the normal manual value. This allows fans to spin beyond their normal specification for maximum airflow, but increases mechanical wear.