Fixing CPU fan on Lenovo Thinkpad T520

Issue: CPU fan on Lenovo Thinkpad T520 is always on.

OS: Ubuntu 10.04.3 LTS Lucid Lynx with backported kernels from Oneiric.

Source used for solution: Ubuntu Forum , — thanks to user mejo


1. install thinkfan package:

$ sudo apt-get install thinkfan

2. add kernel module ‘coretemp’ to /etc/modules

$ sudo sh -c ‘echo coretemp >> /etc/modules’

3. load kernel module ‘coretemp’

$ sudo modprobe coretemp

4. add the following three sensor entries to /etc/thinkfan.conf just before the temperature levels:

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

[ edit the file /etc/thinkfan.conf with your favourite editor, e.g. ‘sudo gedit /etc/thinkfan.conf‘ ]

5. add the following to /etc/modprobe.d/thinkfan.conf: ‘options thinkpad_acpi fan_control=1’

$ sudo sh -c ‘echo “options thinkpad_acpi fan_control=1” >> /etc/modprobe.d/thinkfan.conf’

6. reload kernel module ‘thinkpad_acpi’

$ sudo modprobe -r thinkpad_acpi
$ sudo modprobe thinkpad_acpi

7. set START=”yes” in /etc/default/thinkfan

[ edit the file /etc/default/thinkfan with your favourite editor, e.g. ‘sudo gedit /etc/default/thinkfan‘ ]

8. start thinkfan:

$ sudo /etc/init.d/thinkfan start

9. check whether it works

$ sudo cat /proc/acpi/ibm/fan

if level has a value between 0 and 7, and changes by times, your thinkfan daemon works.

19 thoughts on “Fixing CPU fan on Lenovo Thinkpad T520”

  1. Hi mate, thanks for posting, clear and concise and it worked very well on my T420. But I had to edit /etc/rc.local to include the thinkfan start command, otherwise the fan control would be disabled on reboot.


  2. Hallo, it does not work for me, step 2 produces error message in Console
    jaime@jaime-ThinkPad-T510: sudo sh -c ‘echo coretemp >> /etc/modules’
    bash: /etc/modules’: Operace zamítnuta

    It says: “operation denied”…

  3. I can´t lode coretemp:

    sudo modprobe coretemp
    FATAL: Error inserting coretemp (/lib/modules/3.0.0-14-generic/kernel/drivers/hwmon/coretemp.ko): No such device

  4. Hi,

    Thank you so much for wonderful instructions! I successfully installed Ubuntu Lucid on T520 laptop. Only one problem left: internal microphone is not working 😦 Are you aware of solution?


    1. Hi Alexey.
      You are right. It doesn’t work no more for me neither. It worked before, I’m sure. Maybe it’s some issue on latest kernel. (?) (I’m using 3.0.0-15.)
      I’ll try to find some solution, and if I fond it I’ll post it here. If you are faster in solving this issue, please post it here.
      Thank you, Alexey.

  5. Hi, nice post.
    Solved for my Thinkpad X1 and ubuntu 12.04.

    Is there a way to retrieve the sensor values?


  6. Thanks! This helped me a lot!
    But do you know what is the “safe” temperature? I have the same laptop (T520) and even with minimal workload it sits on 62 °C (level 5) which seems quite a lot to me.

  7. Writing fro Ububtu 12.10 and Thinkpad L520.
    Generally it works.But while most of the time the fan is too silent there are momoents that speed a lot for 4 seconds and then stop again. That is a bit annoying. Also could you tell me what to do for auto start after the boot because by changing /etc/default/thinkfan is not enough.
    You mention to add in /etc/thinkfan.con some lines. But the command sensor what ecaxctly it is? I mean when I type in the terminal “sensor /sys/devices/platform/coretemp.0/temp1_input”, I get the answer “No command ‘sensor’ found, did you mean: …”

    Thanks for your article!!
    It was very helpful.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s