- Install lm-sensors
andfancontrol
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 needs to be loaded will displayed. Type "yes" to have sensors-detect insert those modules into /etc/modules, or edit /etc/modules yourself.
- run
sudo /etc/init.d/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
.
- Note: If you're running Ubuntu 13.04 or higher, this 3rd step command should be replaced by
- 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 trought all fans, you can configure which fan corresponds to which temperature. - In my case I set interval to 2 seconds.
- In terminal type
-
Run fancontrol
sudo fancontrol
and leave it open in console,
In my case 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 ===================================================================================================================================
This is quick set up guide to control your laptop's fan speed running Ubuntu Linux.
by Kristian Holsheimer, January 2013
This is essentially a translated version of this guide, which was written in German. Before you go on, I would like to make clear that I will not be held accountable for any damage to your machine resulting from using this guide.
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.confby 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/thinkfanmaking 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-detectand just choose YES whenever you're prompted.
Step 5. Load the new modules:
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.confThere 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_inputThe 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.confThe 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!For those people out there familiar with Mathematica, I wrote a short notebook to generate these fan speed values.
Step 10. Reboot. Everything should work now. In order to check whether thinkpad is runnning correctly, use
sudo thinkfan -nwhich starts thinkfan in verbose mode. You might want to stop the thinkfan daemon first:sudo /etc/init.d/thinkfan stopIf 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)reference: http://askubuntu.com/questions/22108/how-to-control-fan-speed http://staff.science.uva.nl/~kholshei/thinkfan_guide/