There is a fancontrol tool in Linux (Debian included), but it has no GUI. Nevertheless, it's more convenient and safe to let your motherboard control your fans, otherwise it's an easiest way to burn something inside your PC. Personally, I let my motherboard control fans in my PC, and I monitor their speeds using lm-sensors and conky GUI. Answer from Aristeo812 on reddit.com
There is a fancontrol tool in Linux (Debian included), but it has no GUI. Nevertheless, it's more convenient and safe to let your motherboard control your fans, otherwise it's an easiest way to burn something inside your PC. Personally, I let my motherboard control fans in my PC, and I monitor their speeds using lm-sensors and conky GUI. Answer from Aristeo812 on reddit.com
🌐
Flathub
flathub.org › home › system › fan control
Install Fan Control on Linux | Flathub
January 21, 1970 - You can add items with the buttons on the right of the app. To save a configuration, write a name in the "Configuration name" field, and click on the +. To modify the value of a fan, you must select it in a Control item (the left column), select a Behavior, and activate the swtich.
Discussions

How do I control fan speeds?
Back with another question! So on Windows I used SpeedFan and had no issues controlling the speeds. It was easy and straight forward. I am not sure how to do this on Linux though or what programs/setting options I have for it. I have a custom built gaming PC with 5 fans. More on linuxcommunity.io
🌐 linuxcommunity.io
1
1
February 4, 2023
Fan Control Software - Linux - Framework Community
Hi 🙂, just an info for all: Tamtamhero wrote some code in his fan control software fw-fanctrl for the Framework 16 - see Github PR Add AMD/16" support by TamtamHero · Pull Request #21 · TamtamHero/fw-fanctrl · GitHub and the Github Issue [Feature] Support for Framework 16 · Issue #20 ... More on community.frame.work
🌐 community.frame.work
14
March 12, 2024
Framework Control (Linux/Windows) - A tool for: Fan Control (Curve), Sensors, Power Control, Battery Information - Creators & Developers - Framework Community
Framework finally released a BIOS with the EC tool to allow fine-tuning! Here’s a GUI to do just that! 🤝 Here’s a link to the actual app: Framework Control Things to know: The latest BIOS for your laptop will be required for the best experience! All code belongs to me and is open. More on community.frame.work
🌐 community.frame.work
40
August 26, 2025
Is there any full featured fan control software for Linux, like SpeedFan in Windows?
My motherboard is intelligent enough to be able to handle ramping up RPMs when necessary. What's the purpose of babysitting fan speeds? More on reddit.com
🌐 r/linuxquestions
9
4
October 19, 2018
🌐
SourceForge
sourceforge.net › home › open source software › system › hardware › fan control software
Best Open Source Linux Fan Control Software 2026
The project also has a companion command-line version (tuxclocker-cli), broadening usability scenarios for scripting or headless setups. While the features and hardware support may vary by distribution and driver stack, TuxClocker fills a niche for integrated Linux performance tuning with a polished front end. ... Software control for the BitFenix Recon fan controller.
🌐
ArchWiki
wiki.archlinux.org › title › Fan_speed_control
Fan speed control - ArchWiki
5 days ago - A configuration example can be found in Gentoo:Fan speed control/thinkfan#Configuration. You can test your configuration first by running thinkfan manually (as root): ... When you have it configured correctly, start/enable thinkfan.service. The tool Lenovo Legion Linux allows to change the ...
🌐
UbuntuHandbook
ubuntuhandbook.org › home › howtos › control gpu/cpu fan speed with coolercontrol in ubuntu 24.04
Control GPU/CPU Fan Speed with CoolerControl in Ubuntu 24.04 | UbuntuHandbook
This tutorial shows how to install and use CoolerControl to control your CPU or graphics card fan speed in Ubuntu desktop computer or laptop.
Find elsewhere
🌐
OnWorks
onworks.net › home › software › app fancon fan control for linux systems
fanCON - Fan control for Linux systems
fanCON - Fan control for Linux systems
fanCON - Fan control for Linux systems free download and run online in OnWorks over Linux online like Ubuntu, Fedora, Debian, Kali Linux
Rating: 4 ​
Top answer
1 of 8
224

Note before starting:

This functionality depends on both your hardware and software. If your hardware doesn't support fan speed controls, or doesn't show them to the OS, it is very likely that you could not use this solution. If it does, but the software (aka kernel) doesn't know how to control it, you are without luck.


  1. Install the lm-sensors and fancontrol packages.

  2. Configure lm-sensors as follows:

    1. In terminal type sudo sensors-detect and answer YES to all YES/no questions.
      (Potentially, this can damage your system or cause system crash. For a lot of systems, it is safe. There is no guarantee that this process will not damage your system permanently, I just think that chance of such critical failure is really really low. Saving all your work for eventual crashes/freezes/restarts before handling system configuration is always good idea. If you feel unsure, read the comments and try to search a web and get some high-level overview before YES-ing everything, maybe being selective with your YES-es will still be enough)

    2. At the end of sensors-detect, a list of modules that need to be loaded will be displayed. Type "yes" to have sensors-detect insert those modules into /etc/modules, or edit /etc/modules yourself.

    3. Run sudo service kmod start This will read the changes you made to /etc/modules in step 2, and insert the new modules into the kernel.
      Note: If you're running Ubuntu 12.04 or lower, this 3rd step command should be replaced by sudo service module-init-tools restart

  3. Configure fancontrol

    1. In terminal type sudo pwmconfig . This script will stop each fan for 5 seconds to find out which fans can be controlled by which PWM handle. After script loops through all fans, you can configure which fan corresponds to which temperature.
    2. You will have to specify what sensors to use. This is a bit tricky. If you have just one fan, make sure to use a temperature sensor for your core to base the fancontrol speed on.
    3. Run through the prompts and save the changes to the default location.
    4. Make adjustments to fine-tune /etc/fancontrol and use sudo service fancontrol restart to apply your changes. (In my case I set interval to 2 seconds.)
  4. Set up fancontrol service

    1. Run sudo service fancontrol start. This will also make the fancontrol service run automatically at system startup.

In my case /etc/fancontrol for CPU I used:

Settings for hwmon0/device/pwm2:
(Depends on hwmon0/device/temp2_input) (Controls hwmon0/device/fan2_input)

INTERVAL=2
MINTEMP=40  
MAXTEMP=60  
MINSTART=150  
MINSTOP=0  
MINPWM=0  
MAXPWM=255 

and on a different system it is:

INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608
DEVNAME=hwmon1=coretemp hwmon2=nct6779
FCTEMPS=hwmon2/pwm2=hwmon1/temp2_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input
MINTEMP=hwmon2/pwm2=49
MAXTEMP=hwmon2/pwm2=83
MINSTART=hwmon2/pwm2=150
MINSTOP=hwmon2/pwm2=15
MINPWM=hwmon2/pwm2=14
MAXPWM=hwmon2/pwm2=255

This man page gives some useful info on the settings and what they really do.

2 of 8
63

If you own a ThinkPad, there's a piece of software called thinkfan that does exactly this. As the name obviously suggests, it is specifically made for ThinkPads (thinkpad_acpi).

The thinkfan software is available in the standard ubuntu software repositories, but it does require a few steps to configure.

Here is an easy step-by-step guide, which is basically a translated version of this German guide.

Relevant Information from Post

  1. Install the thinkfan software and the sensors:

    sudo apt-get install thinkfan lm-sensors
    
  2. Make sure that the daemon controls the fan by editing the thinkpad.conf file:

    sudo nano /etc/modprobe.d/thinkfan.conf
    

    by adding the following line:

    options thinkpad_acpi fan_control=1
    
  3. Make the daemon load automatically at start-up by editing the file:

    sudo nano /etc/default/thinkfan
    

    making sure that the START key is set to yes, i.e., there should be a line that says:

    START=yes
    
  4. Detect your laptop's sensors:

    sudo sensors-detect
    

    and just choose the default answers whenever you're prompted by hitting Enter.

  5. Load the new modules. From Ubuntu 13.10 this done by:

    sudo service kmod start
    

    while for previous versions like 13.04 you instead will need to do:

    sudo service module-init-tools start
    
  6. Figure out which sensors are in use:

    sensors
    

    (the ones that indicate 0 degrees are not in use, I don't know why those are "detected" too). Remember which ones are in use.

  7. Find out the full paths of these sensors:

    find /sys/devices -type f -name "temp*_input"
    

    The output should be a list of paths like /sys/devices/...

  8. Copy-paste the paths to the sensors into the configuration file /etc/thinkpad.conf. To do this, first open up the file:

    sudo nano /etc/thinkfan.conf
    

    There should already be a line like

    #sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) 
    

    (the #-symbol means that that line is commented out). Add a line starting with sensor (without the #-symbol) and copy-paste you first sensor. Repeat this if you have more than one sensor. For example, on my machine, the output in step 7 yields

    /sys/devices/virtual/hwmon/hwmon0/temp1_input
    /sys/devices/platform/thinkpad_hwmon/temp3_input
    /sys/devices/platform/thinkpad_hwmon/temp4_input
    /sys/devices/platform/thinkpad_hwmon/temp5_input
    /sys/devices/platform/thinkpad_hwmon/temp6_input
    /sys/devices/platform/thinkpad_hwmon/temp7_input
    /sys/devices/platform/thinkpad_hwmon/temp1_input
    /sys/devices/platform/thinkpad_hwmon/temp8_input
    /sys/devices/platform/thinkpad_hwmon/temp2_input
    /sys/devices/platform/coretemp.0/temp4_input
    /sys/devices/platform/coretemp.0/temp2_input 
    

    The ones that are in use in my machine are the ones in the first and the last two lines, so I added the three lines:

    sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
    sensor /sys/devices/platform/coretemp.0/temp4_input
    sensor /sys/devices/platform/coretemp.0/temp2_input 
    
  9. Finally, we can set the fan speed levels in the configuration file. Open the /etc/thinkpad.conf file if it wasn't open already.

    sudo nano /etc/thinkfan.conf
    

    The fan levels I use on my ThinkPad x201 are:

    (0, 0, 51)
    (1, 50, 52)
    (2, 51, 55)
    (3, 54, 58)
    (4, 56, 63)
    (5, 60, 70)
    (6, 66, 79)
    (7, 74, 92)
    (127, 85, 32767) 
    

    The last line ensures full fan speed (127 = "disengaged" i.e. unregulated). You can fiddle with these levels to fit your needs/wishes, but PLEASE BE CAREFUL!

  10. Reboot. Everything should work now. In order to check whether thinkpad is running correctly, use:

    sudo thinkfan -n
    

    Which starts thinkfan in verbose mode. You might want to stop the thinkfan daemon first:

    sudo /etc/init.d/thinkfan stop
    

    If you want to start the thinkfan daemon again, type:

    sudo /etc/init.d/thinkfan start
    

Just to be complete, my /etc/thinkfan.conf configuration file is:

# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#

# I use this on my T61p:
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

#(0, 0, 55)
#(1, 48, 60)
#(2, 50, 61)
#(3, 52, 63)
#(4, 56, 65)
#(5, 59, 66)
#(7, 63, 32767)


# My settings for my ThinkPad X201: (kris)

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767)
🌐
GitHub
github.com › ROHANSHAJ › LaptopFanControl-with-NBFC-for-linux
GitHub - ROHANSHAJ/LaptopFanControl-with-NBFC-for-linux: A simple Python GUI application for controlling laptop fans on Ubuntu/Debian systems using NBFC-Linux. It automates the setup of NBFC, lets you choose from available fan configurations, and provides an easy-to-use interface to adjust fan speeds and monitor system stats like CPU, GPU, and RAM usage. · GitHub
A simple Python GUI application for controlling laptop fans on Ubuntu/Debian systems using NBFC-Linux. It automates the setup of NBFC, lets you choose from available fan configurations, and provides an easy-to-use interface to adjust fan speeds ...
Starred by 14 users
Forked by 2 users
Languages   Python
🌐
Baeldung
baeldung.com › home › administration › controlling fan speed in linux
Controlling Fan Speed in Linux | Baeldung on Linux
2 weeks ago - Once that is done, fancontrol can now control fan speed according to the configurations defined in /etc/fancontrol. nbfc-linux is short for “Notebook Fan Control – Linux”. It’s a Linux implementation of the original nbfc, and it controls ...
🌐
Framework Community
community.frame.work › framework laptop 16 › linux
Fan Control Software - Linux - Framework Community
March 12, 2024 - Hi 🙂, just an info for all: Tamtamhero wrote some code in his fan control software fw-fanctrl for the Framework 16 - see Github PR Add AMD/16" support by TamtamHero · Pull Request #21 · TamtamHero/fw-fanctrl · GitHub and the Github Issue [Feature] Support for Framework 16 · Issue #20 · TamtamHero/fw-fanctrl · GitHub for more info.
🌐
AlternativeTo
alternativeto.net › software › speedfan
SpeedFan Alternatives for Linux: Top 11 System Information Utilities | AlternativeTo
SpeedFan is a program that monitors voltages, fan speeds and temperatures in computers and controls the fans if possible. ... CoreCtrl is a Free and Open Source GNU/Linux application that allows you to control with ease your computer hardware using application profiles.18 CoreCtrl alternatives
🌐
Framework Community
community.frame.work › creators & developers
Framework Control (Linux/Windows) - A tool for: Fan Control (Curve), Sensors, Power Control, Battery Information - Creators & Developers - Framework Community
August 26, 2025 - Here’s a GUI to do just that! 🤝 Here’s a link to the actual app: Framework Control Things to know: The latest BIOS for your laptop will be required for the best experience! All code belongs to me and is open.
🌐
Linux Man Pages
linux.die.net › man › 8 › fancontrol
fancontrol(8) - Linux man page
fancontrol is a shell script for use with lm_sensors. It reads its configuration from a file, then calculates fan speeds from temperatures and sets the ...
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › software & applications
Fan profile software for Linux Mint? - Linux Mint Forums
April 5, 2024 - Unfortunately, as far as I can see there are no fan controls/profiles available in the BIOS. You gotta be careful when buying hardware. If the hardware requires a Windows software to do BIOS updates, handle fan speed etc. then you won't have a good time running Linux on it.
🌐
SourceForge
sourceforge.net › projects › fancon
fanCON - Fan control for Linux systems download | SourceForge.net
March 26, 2013 - Download fanCON - Fan control for Linux systems for free. This software wants to be the Unix brother of Windows SpeedFan. Using the package lm-sensors it is able to monitor the system temperatures and the fan speeds and control them by easy commands.
Rating: 3.5 ​ - ​ 2 votes
🌐
nixCraft
cyberciti.biz › nixcraft › howto › centos › how to find fan speed in linux for cpu and gpu
How to find fan speed in Linux for CPU and GPU - nixCraft
September 12, 2024 - You need to use Linux monitoring sensors software called lm_sensors. It is an open-source software that provides commands and drivers for monitoring CPU/GPU temperatures, voltage, and fan speed.
🌐
Linux Mint Community
community.linuxmint.com › software › view › fancontrol
Linux Mint - Community
Lm-sensors is a hardware health monitoring package for Linux. It allows you to access information from temperature, voltage, and fan speed sensors. It works with most newer systems. This package contains a daemon that calculates fan speeds from temperatures and sets the corresponding PWM outputs ...
🌐
Reddit
reddit.com › r/linuxquestions › is there any full featured fan control software for linux, like speedfan in windows?
r/linuxquestions on Reddit: Is there any full featured fan control software for Linux, like SpeedFan in Windows?
October 19, 2018 -

The Linux kernel supports a wide variety of temperature monitoring and fan speed control. This stuff is available via the /sys file system, for example fan control via /sys/devices/virtual/hwmon/hwmon2/pwm1. However, this merely provides an interface for reading temperature or writing PWM values. User mode software is needed to actually set fan speeds based on current temperatures.

If you want to just see temperature, lm-sensors will show you that in a friendly way. But if you want to control fan speed, only very rudimentary tools seem available, like the fancontrol shell script. I just learned about https://github.com/hirschmann/nbfc which allows a fan control curve to be specified, but it has some limitations, like I can't see how to monitor different specific temperatures for one fan, it is designed to use I/O ports directly instead of the existing kernel interface, the configuration seems tedious, and it uses Mono.

In Windows I can simply use SpeedFan.