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.
Install the lm-sensors and fancontrol packages.
- 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)
- 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.
sudo service module-init-tools restart. This will read the changes you made to
/etc/modules in step 3, and insert the new modules into the kernel.
- Note: If you're running Ubuntu 13.04 or higher, this 3rd step command should be replaced by sudo service kmod start.
- 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.
- 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.
- Run through the prompts and save the changes to the default location.
- 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.)
Set up fancontrol service
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)
and on a different system it is:
here is some useful info on the settings and what they really do
On reduce overheating:
TLP is my favorite power management tool in Linux. It’s a daemon that is pre-configured to reduce overheating as well as improve battery life. You just need to install TLP and restart your system. It will be auto-start at each boot and keep on running in background. I have always included installation of TLP in top things to do after installing Ubuntu for its simplicity and usefulness.
To install TLP in Ubuntu based Linux distributions, use the following commands:
sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
If you are using ThinkPads, you require an additional step:
sudo apt-get install tp-smapi-dkms acpi-call-dkms
Restart your system after installation. Check this page for installation instructions in other Linux distributions.
You may start to feel the difference in few hours or in couple of days. To uninstall TLP, you can use the following commands:
sudo apt-get remove tlp
sudo add-apt-repository --remove ppa:linrunner/tlp
Officially supported Ubuntu releases; as well as corresponding Linux Mint releases; but not LMDE (see Debian)
Add the TLP-PPA to your package sources:
See above commands
Debian oldstable, stable, testing and unstable; as well as Linux Mint Debian Edition (LMDE)
Execute the following steps in a root shell.
Debian stable, testing and unstable
TLP and ThinkPad-related packages below are available via the official Debian repository.
Note: due to the pending freeze of Debian 10.0 "Buster", the maintainer is currently not allowed to provide packages >= 1.2 in testing (Buster) and in stable (Stretch), oldstable (Jessie) via backports. Please download and install from unstable: tlp, tlp-rdw.
Debian 9.0 "Stretch"
TLP packages for the newest version are available via Debian Backports (read more).
Add the following line to your
deb http://ftp.debian.org/debian stretch-backports main
Debian 8.0 "Jessie"
TLP packages are available via Debian Backports only (read more).
Add the following line to your
deb http://ftp.debian.org/debian jessie-backports-sloppy main
Update package data:
Install the following packages:
- tlp (main) – Power saving
- tlp-rdw (main) – optional – Radio Device Wizard
- tp-smapi-dkms (main) – optional, ThinkPad only – provides battery charge thresholds, recalibration and specific status output in tlp-stat for older ThinkPads
- acpi-call-dkms (main) – optional, ThinkPad only – provides battery charge thresholds and recalibration for newer ThinkPads (X220/T420 and later)
The above packages may be installed via package management tools or with a terminal command:
apt-get install tlp tlp-rdw
For Debian Backports use:
apt-get install -t stretch-backports tlp tlp-rdw
apt-get install -t jessie-backports-sloppy tlp tlp-rdw
For ThinkPads an additional
apt-get install tp-smapi-dkms acpi-call-dkms