How to control fan speed?
up vote
157
down vote
favorite
How can I control the computer's fan speed?
On Windows there is a wonderful program called SpeedFan.
power-management lm-sensors
add a comment |
up vote
157
down vote
favorite
How can I control the computer's fan speed?
On Windows there is a wonderful program called SpeedFan.
power-management lm-sensors
1
I put simple cron solution for ATI cards here askubuntu.com/a/875241/375427
– Pavel Niedoba
Jan 23 '17 at 12:54
1
On linux,fancontrol
is configured usingpwmconfig
. Usewatch sensors
to observe sensors under CPU and GPU load. Use those values at idle and full load to setMINTEMP
andMAXTEMP
respectively, withINTERVAL=1
. This ramps your fans in realtime as load increases. This is the most active cooling, providing a baseline for further tweaking. Runpwmconfig
once, and then edit/etc/fancontrol
directly. Runsudo service fancontrol restart
after each tweak.
– Dominic Cerisano
May 29 '17 at 17:32
add a comment |
up vote
157
down vote
favorite
up vote
157
down vote
favorite
How can I control the computer's fan speed?
On Windows there is a wonderful program called SpeedFan.
power-management lm-sensors
How can I control the computer's fan speed?
On Windows there is a wonderful program called SpeedFan.
power-management lm-sensors
power-management lm-sensors
edited Feb 3 '17 at 19:49
Thompson Dawes
3841216
3841216
asked Jan 18 '11 at 11:26
GrizzLy
3,42551721
3,42551721
1
I put simple cron solution for ATI cards here askubuntu.com/a/875241/375427
– Pavel Niedoba
Jan 23 '17 at 12:54
1
On linux,fancontrol
is configured usingpwmconfig
. Usewatch sensors
to observe sensors under CPU and GPU load. Use those values at idle and full load to setMINTEMP
andMAXTEMP
respectively, withINTERVAL=1
. This ramps your fans in realtime as load increases. This is the most active cooling, providing a baseline for further tweaking. Runpwmconfig
once, and then edit/etc/fancontrol
directly. Runsudo service fancontrol restart
after each tweak.
– Dominic Cerisano
May 29 '17 at 17:32
add a comment |
1
I put simple cron solution for ATI cards here askubuntu.com/a/875241/375427
– Pavel Niedoba
Jan 23 '17 at 12:54
1
On linux,fancontrol
is configured usingpwmconfig
. Usewatch sensors
to observe sensors under CPU and GPU load. Use those values at idle and full load to setMINTEMP
andMAXTEMP
respectively, withINTERVAL=1
. This ramps your fans in realtime as load increases. This is the most active cooling, providing a baseline for further tweaking. Runpwmconfig
once, and then edit/etc/fancontrol
directly. Runsudo service fancontrol restart
after each tweak.
– Dominic Cerisano
May 29 '17 at 17:32
1
1
I put simple cron solution for ATI cards here askubuntu.com/a/875241/375427
– Pavel Niedoba
Jan 23 '17 at 12:54
I put simple cron solution for ATI cards here askubuntu.com/a/875241/375427
– Pavel Niedoba
Jan 23 '17 at 12:54
1
1
On linux,
fancontrol
is configured using pwmconfig
. Use watch sensors
to observe sensors under CPU and GPU load. Use those values at idle and full load to set MINTEMP
and MAXTEMP
respectively, with INTERVAL=1
. This ramps your fans in realtime as load increases. This is the most active cooling, providing a baseline for further tweaking. Run pwmconfig
once, and then edit /etc/fancontrol
directly. Run sudo service fancontrol restart
after each tweak.– Dominic Cerisano
May 29 '17 at 17:32
On linux,
fancontrol
is configured using pwmconfig
. Use watch sensors
to observe sensors under CPU and GPU load. Use those values at idle and full load to set MINTEMP
and MAXTEMP
respectively, with INTERVAL=1
. This ramps your fans in realtime as load increases. This is the most active cooling, providing a baseline for further tweaking. Run pwmconfig
once, and then edit /etc/fancontrol
directly. Run sudo service fancontrol restart
after each tweak.– Dominic Cerisano
May 29 '17 at 17:32
add a comment |
5 Answers
5
active
oldest
votes
up vote
130
down vote
accepted
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.
Configure lm-sensors
- In terminal type
sudo sensors-detect
and answer YES to all YES/no questions. - 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.
- Run
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 bysudo service kmod start
.
- In terminal type
Configure fancontrol
- 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 usesudo service fancontrol restart
to apply your changes. (In my case I set interval to 2 seconds.)
- In terminal type
Set up fancontrol service
- Run
sudo service fancontrol start
. This will also make the fancontrol service run automatically at system startup.
- Run
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
MINTEMP=40
MAXTEMP=60
MINSTART=150
MINSTOP=0
MINPWM=0
MAXPWM=255
102
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
6
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
5
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
5
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to addacpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36
– bukzor
Dec 23 '13 at 17:49
15
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
|
show 5 more comments
up vote
36
down vote
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's an easy step-by-step guide:
http://staff.science.uva.nl/~kholshei/thinkfan_guide/
(which is basically a translated version of this German guide:
http://thinkwiki.de/Thinkfan)
Relevant Information from Post:
Step 1. Install the thinkfan software and the sensors:
sudo apt-get install thinkfan lm-sensors
Step 2. Make sure that the daemon controls the fan by editting the thinkpad.conf file:
sudo nano /etc/modprobe.d/thinkfan.conf
by adding the following line:
options thinkpad_acpi fan_control=1
Step 3. Make the daemon load automatically at start-up by editting 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
Step 4. Detect your laptop's sensors:
sudo sensors-detect
and just choose the default answers whenever you're prompted by hitting Enter.
Step 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
Step 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.
Step 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/...
Step 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
Step 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!
Step 10. Reboot. Everything should work now. In order to check whether thinkpad is runnning 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)
2
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
2
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?
– Youda008
May 15 '17 at 18:43
|
show 1 more comment
up vote
12
down vote
For several Dell computers you can install i8kutils package:
sudo apt install i8kutils
If you have a non-tested Dell (like my Dell XPS 14z), you might have to force loading of kernel module:
sudo modprobe i8k force=1
2
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
1
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
add a comment |
up vote
7
down vote
Install and configure the lm-sensors and fancontrol packages:
sudo apt-get install lm-sensors fancontrol
Documentation for configuring them is available on their man pages.
This is a function that is supposed to be provided by a ACPI-compliant BIOS, but it seems that most motherboard vendors don't bother to follow the standard.
10
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
38
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
1
I think you have a misspelled username.
– markroxor
May 21 at 17:29
|
show 1 more comment
up vote
-1
down vote
Try looking in the UEFI setup (or BIOS setup) of your PC. There might be a setting for fan control where you can put your fan into Silent Mode
, Performance Mode
, Full Speed
, Customize
, etc.
How to access the UEFI settings: Reboot your PC and the key for entering them will likely show up in one of the corners (e.g. Press F2 to enter UEFI setup
)
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
add a comment |
protected by Community♦ Jul 17 '13 at 14:13
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
130
down vote
accepted
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.
Configure lm-sensors
- In terminal type
sudo sensors-detect
and answer YES to all YES/no questions. - 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.
- Run
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 bysudo service kmod start
.
- In terminal type
Configure fancontrol
- 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 usesudo service fancontrol restart
to apply your changes. (In my case I set interval to 2 seconds.)
- In terminal type
Set up fancontrol service
- Run
sudo service fancontrol start
. This will also make the fancontrol service run automatically at system startup.
- Run
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
MINTEMP=40
MAXTEMP=60
MINSTART=150
MINSTOP=0
MINPWM=0
MAXPWM=255
102
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
6
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
5
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
5
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to addacpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36
– bukzor
Dec 23 '13 at 17:49
15
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
|
show 5 more comments
up vote
130
down vote
accepted
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.
Configure lm-sensors
- In terminal type
sudo sensors-detect
and answer YES to all YES/no questions. - 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.
- Run
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 bysudo service kmod start
.
- In terminal type
Configure fancontrol
- 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 usesudo service fancontrol restart
to apply your changes. (In my case I set interval to 2 seconds.)
- In terminal type
Set up fancontrol service
- Run
sudo service fancontrol start
. This will also make the fancontrol service run automatically at system startup.
- Run
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
MINTEMP=40
MAXTEMP=60
MINSTART=150
MINSTOP=0
MINPWM=0
MAXPWM=255
102
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
6
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
5
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
5
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to addacpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36
– bukzor
Dec 23 '13 at 17:49
15
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
|
show 5 more comments
up vote
130
down vote
accepted
up vote
130
down vote
accepted
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.
Configure lm-sensors
- In terminal type
sudo sensors-detect
and answer YES to all YES/no questions. - 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.
- Run
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 bysudo service kmod start
.
- In terminal type
Configure fancontrol
- 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 usesudo service fancontrol restart
to apply your changes. (In my case I set interval to 2 seconds.)
- In terminal type
Set up fancontrol service
- Run
sudo service fancontrol start
. This will also make the fancontrol service run automatically at system startup.
- Run
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
MINTEMP=40
MAXTEMP=60
MINSTART=150
MINSTOP=0
MINPWM=0
MAXPWM=255
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.
Configure lm-sensors
- In terminal type
sudo sensors-detect
and answer YES to all YES/no questions. - 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.
- Run
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 bysudo service kmod start
.
- In terminal type
Configure fancontrol
- 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 usesudo service fancontrol restart
to apply your changes. (In my case I set interval to 2 seconds.)
- In terminal type
Set up fancontrol service
- Run
sudo service fancontrol start
. This will also make the fancontrol service run automatically at system startup.
- Run
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
MINTEMP=40
MAXTEMP=60
MINSTART=150
MINSTOP=0
MINPWM=0
MAXPWM=255
edited Apr 3 at 20:52
community wiki
15 revs, 12 users 51%
GrizzLy
102
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
6
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
5
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
5
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to addacpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36
– bukzor
Dec 23 '13 at 17:49
15
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
|
show 5 more comments
102
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
6
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
5
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
5
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to addacpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36
– bukzor
Dec 23 '13 at 17:49
15
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
102
102
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
I tried to follow your guide, but got stuck at step three with this error: /usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
– tamale
Dec 12 '11 at 15:54
6
6
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
I had the same problem with pwmconfig until I ran sudo sensors-detect
– Gearoid Murphy
Jan 1 '12 at 12:16
5
5
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
What to do if sudo sensors-detect doesn't come up with any sensors? --> Sorry, no sensors were detected. Either your system has no sensors, or they are not supported, or they are connected to an I2C or SMBus adapter that is not supported. If you find out what chips are on your board, check lm-sensors.org/wiki/Devices for driver status.
– H3R3T1K
Aug 1 '12 at 8:23
5
5
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to add
acpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36– bukzor
Dec 23 '13 at 17:49
If you're having trouble, be sure to check your dmesg for error messages. In my case, recent kernel changes prevented me from loading the necessary driver, and I had to add
acpi_enforce_resources=lax
to my kernel options to get the old functionality back. See also: goo.gl/tUcr36– bukzor
Dec 23 '13 at 17:49
15
15
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
I've tried this and I can't get any further than sudo pwmconfig, because I get: "There are no pwm-capable sensor modules installed". This is after the sensors-detect command does find an 'Intel digital thermal sensor'. I've also tried that kernel parameter. Can anyone suggest a solution?
– Sman789
Jun 2 '14 at 0:05
|
show 5 more comments
up vote
36
down vote
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's an easy step-by-step guide:
http://staff.science.uva.nl/~kholshei/thinkfan_guide/
(which is basically a translated version of this German guide:
http://thinkwiki.de/Thinkfan)
Relevant Information from Post:
Step 1. Install the thinkfan software and the sensors:
sudo apt-get install thinkfan lm-sensors
Step 2. Make sure that the daemon controls the fan by editting the thinkpad.conf file:
sudo nano /etc/modprobe.d/thinkfan.conf
by adding the following line:
options thinkpad_acpi fan_control=1
Step 3. Make the daemon load automatically at start-up by editting 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
Step 4. Detect your laptop's sensors:
sudo sensors-detect
and just choose the default answers whenever you're prompted by hitting Enter.
Step 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
Step 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.
Step 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/...
Step 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
Step 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!
Step 10. Reboot. Everything should work now. In order to check whether thinkpad is runnning 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)
2
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
2
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?
– Youda008
May 15 '17 at 18:43
|
show 1 more comment
up vote
36
down vote
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's an easy step-by-step guide:
http://staff.science.uva.nl/~kholshei/thinkfan_guide/
(which is basically a translated version of this German guide:
http://thinkwiki.de/Thinkfan)
Relevant Information from Post:
Step 1. Install the thinkfan software and the sensors:
sudo apt-get install thinkfan lm-sensors
Step 2. Make sure that the daemon controls the fan by editting the thinkpad.conf file:
sudo nano /etc/modprobe.d/thinkfan.conf
by adding the following line:
options thinkpad_acpi fan_control=1
Step 3. Make the daemon load automatically at start-up by editting 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
Step 4. Detect your laptop's sensors:
sudo sensors-detect
and just choose the default answers whenever you're prompted by hitting Enter.
Step 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
Step 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.
Step 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/...
Step 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
Step 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!
Step 10. Reboot. Everything should work now. In order to check whether thinkpad is runnning 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)
2
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
2
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?
– Youda008
May 15 '17 at 18:43
|
show 1 more comment
up vote
36
down vote
up vote
36
down vote
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's an easy step-by-step guide:
http://staff.science.uva.nl/~kholshei/thinkfan_guide/
(which is basically a translated version of this German guide:
http://thinkwiki.de/Thinkfan)
Relevant Information from Post:
Step 1. Install the thinkfan software and the sensors:
sudo apt-get install thinkfan lm-sensors
Step 2. Make sure that the daemon controls the fan by editting the thinkpad.conf file:
sudo nano /etc/modprobe.d/thinkfan.conf
by adding the following line:
options thinkpad_acpi fan_control=1
Step 3. Make the daemon load automatically at start-up by editting 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
Step 4. Detect your laptop's sensors:
sudo sensors-detect
and just choose the default answers whenever you're prompted by hitting Enter.
Step 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
Step 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.
Step 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/...
Step 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
Step 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!
Step 10. Reboot. Everything should work now. In order to check whether thinkpad is runnning 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)
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's an easy step-by-step guide:
http://staff.science.uva.nl/~kholshei/thinkfan_guide/
(which is basically a translated version of this German guide:
http://thinkwiki.de/Thinkfan)
Relevant Information from Post:
Step 1. Install the thinkfan software and the sensors:
sudo apt-get install thinkfan lm-sensors
Step 2. Make sure that the daemon controls the fan by editting the thinkpad.conf file:
sudo nano /etc/modprobe.d/thinkfan.conf
by adding the following line:
options thinkpad_acpi fan_control=1
Step 3. Make the daemon load automatically at start-up by editting 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
Step 4. Detect your laptop's sensors:
sudo sensors-detect
and just choose the default answers whenever you're prompted by hitting Enter.
Step 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
Step 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.
Step 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/...
Step 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
Step 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!
Step 10. Reboot. Everything should work now. In order to check whether thinkpad is runnning 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)
edited Jun 6 '16 at 9:08
answered Jan 8 '14 at 16:38
Kris
75569
75569
2
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
2
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?
– Youda008
May 15 '17 at 18:43
|
show 1 more comment
2
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
2
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?
– Youda008
May 15 '17 at 18:43
2
2
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
One comment: you want to have larger overlap of temperature values as in the table commented out. Especially in the 45-55 range. Otherwise, the fan speed keeps flipping. That's very disturbing. (Constant fan noise does not disturb so much as fluctuating noise.)
– HongboZhu
Feb 6 '15 at 16:36
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
We (the linux community) really suck at UX. :( Setting a fan speed shouldn't be a 10 step process.
– Alexander
Feb 28 '17 at 22:53
2
2
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Alexander If you feel strongly about this, you're free to write and maintain a little program to automate this process.
– Kris
Mar 2 '17 at 22:14
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
@Kris I'd be more inclined to modify the original program to not have such a nonsensical configuration process. Alas, I dont have a thinkpad, I was just passing by this post looking for thr fan control options available out there.
– Alexander
Mar 2 '17 at 22:18
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?– Youda008
May 15 '17 at 18:43
/etc/modprobe.d/thinkfan.conf
does not exist in my Ubuntu 14.04. What now?– Youda008
May 15 '17 at 18:43
|
show 1 more comment
up vote
12
down vote
For several Dell computers you can install i8kutils package:
sudo apt install i8kutils
If you have a non-tested Dell (like my Dell XPS 14z), you might have to force loading of kernel module:
sudo modprobe i8k force=1
2
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
1
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
add a comment |
up vote
12
down vote
For several Dell computers you can install i8kutils package:
sudo apt install i8kutils
If you have a non-tested Dell (like my Dell XPS 14z), you might have to force loading of kernel module:
sudo modprobe i8k force=1
2
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
1
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
add a comment |
up vote
12
down vote
up vote
12
down vote
For several Dell computers you can install i8kutils package:
sudo apt install i8kutils
If you have a non-tested Dell (like my Dell XPS 14z), you might have to force loading of kernel module:
sudo modprobe i8k force=1
For several Dell computers you can install i8kutils package:
sudo apt install i8kutils
If you have a non-tested Dell (like my Dell XPS 14z), you might have to force loading of kernel module:
sudo modprobe i8k force=1
answered May 14 '16 at 15:54
morhook
1,0301013
1,0301013
2
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
1
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
add a comment |
2
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
1
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
2
2
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
I have Dell XPS 14 L421X. <code>sensors</code> showed no fans. after installing i8kutils package, I get sensors coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +54.0°C (high = +87.0°C, crit = +105.0°C) Core 0: +50.0°C (high = +87.0°C, crit = +105.0°C) Core 1: +52.0°C (high = +87.0°C, crit = +105.0°C) i8k-virtual-0 Adapter: Virtual device Right Fan: 0 RPM CPU: +55.0°C
– philcolbourn
Jan 8 '17 at 22:21
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
Does this work for hp?
– Immortal Player
Sep 2 '17 at 7:35
1
1
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
@immortal-player , I think it won't. The kernel module is specifically designed for Dell machines.
– morhook
Sep 10 '17 at 13:06
add a comment |
up vote
7
down vote
Install and configure the lm-sensors and fancontrol packages:
sudo apt-get install lm-sensors fancontrol
Documentation for configuring them is available on their man pages.
This is a function that is supposed to be provided by a ACPI-compliant BIOS, but it seems that most motherboard vendors don't bother to follow the standard.
10
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
38
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
1
I think you have a misspelled username.
– markroxor
May 21 at 17:29
|
show 1 more comment
up vote
7
down vote
Install and configure the lm-sensors and fancontrol packages:
sudo apt-get install lm-sensors fancontrol
Documentation for configuring them is available on their man pages.
This is a function that is supposed to be provided by a ACPI-compliant BIOS, but it seems that most motherboard vendors don't bother to follow the standard.
10
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
38
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
1
I think you have a misspelled username.
– markroxor
May 21 at 17:29
|
show 1 more comment
up vote
7
down vote
up vote
7
down vote
Install and configure the lm-sensors and fancontrol packages:
sudo apt-get install lm-sensors fancontrol
Documentation for configuring them is available on their man pages.
This is a function that is supposed to be provided by a ACPI-compliant BIOS, but it seems that most motherboard vendors don't bother to follow the standard.
Install and configure the lm-sensors and fancontrol packages:
sudo apt-get install lm-sensors fancontrol
Documentation for configuring them is available on their man pages.
This is a function that is supposed to be provided by a ACPI-compliant BIOS, but it seems that most motherboard vendors don't bother to follow the standard.
edited Oct 2 '15 at 19:24
Peter Mortensen
1,03821016
1,03821016
answered Jan 18 '11 at 14:28
psusi
30.9k14986
30.9k14986
10
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
38
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
1
I think you have a misspelled username.
– markroxor
May 21 at 17:29
|
show 1 more comment
10
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
38
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
1
I think you have a misspelled username.
– markroxor
May 21 at 17:29
10
10
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
Can you provide more detailed instructions on how to install and use them?
– Stefano Palazzo♦
Jan 18 '11 at 14:43
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
You can find that in the man page, or at www.lm-sensors.org.
– psusi
Jan 18 '11 at 16:39
38
38
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
I know, I just thought this answer could be better :)
– Stefano Palazzo♦
Jan 19 '11 at 13:22
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
The link that @psusi gave doesn't work, the new link is here: github.com/groeck/lm-sensors
– Svetlana Belkin
Apr 12 at 0:13
1
1
I think you have a misspelled username.
– markroxor
May 21 at 17:29
I think you have a misspelled username.
– markroxor
May 21 at 17:29
|
show 1 more comment
up vote
-1
down vote
Try looking in the UEFI setup (or BIOS setup) of your PC. There might be a setting for fan control where you can put your fan into Silent Mode
, Performance Mode
, Full Speed
, Customize
, etc.
How to access the UEFI settings: Reboot your PC and the key for entering them will likely show up in one of the corners (e.g. Press F2 to enter UEFI setup
)
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
add a comment |
up vote
-1
down vote
Try looking in the UEFI setup (or BIOS setup) of your PC. There might be a setting for fan control where you can put your fan into Silent Mode
, Performance Mode
, Full Speed
, Customize
, etc.
How to access the UEFI settings: Reboot your PC and the key for entering them will likely show up in one of the corners (e.g. Press F2 to enter UEFI setup
)
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
add a comment |
up vote
-1
down vote
up vote
-1
down vote
Try looking in the UEFI setup (or BIOS setup) of your PC. There might be a setting for fan control where you can put your fan into Silent Mode
, Performance Mode
, Full Speed
, Customize
, etc.
How to access the UEFI settings: Reboot your PC and the key for entering them will likely show up in one of the corners (e.g. Press F2 to enter UEFI setup
)
Try looking in the UEFI setup (or BIOS setup) of your PC. There might be a setting for fan control where you can put your fan into Silent Mode
, Performance Mode
, Full Speed
, Customize
, etc.
How to access the UEFI settings: Reboot your PC and the key for entering them will likely show up in one of the corners (e.g. Press F2 to enter UEFI setup
)
answered Oct 26 at 10:12
xjcl
1194
1194
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
add a comment |
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
This is AskUbuntu not AskUEFI :)
– Maarten
yesterday
add a comment |
protected by Community♦ Jul 17 '13 at 14:13
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
1
I put simple cron solution for ATI cards here askubuntu.com/a/875241/375427
– Pavel Niedoba
Jan 23 '17 at 12:54
1
On linux,
fancontrol
is configured usingpwmconfig
. Usewatch sensors
to observe sensors under CPU and GPU load. Use those values at idle and full load to setMINTEMP
andMAXTEMP
respectively, withINTERVAL=1
. This ramps your fans in realtime as load increases. This is the most active cooling, providing a baseline for further tweaking. Runpwmconfig
once, and then edit/etc/fancontrol
directly. Runsudo service fancontrol restart
after each tweak.– Dominic Cerisano
May 29 '17 at 17:32