Howto: Reduce fan noise level on the eee pc 901 / 1000 / 1000H

Owners of the Asus eee pc 901 may have noticed that it makes quite alot of noise when the fan is on. In Ubuntu / Xubuntu / Kubuntu there are ways to control the fan that (almost) eliminates this. Read on for more.

Update: version two of eeefan has been released. Check it out here

Every blog post should have a nice image. This shows an eee pc and a fan.

An old friend once told me, that every blog post should have a nice image. This one shows an eee pc and a fan.


The first thing you need to do is to install Adams custom kernel for the eeepc. He has a nice guide on how to do that here. Then, we need to do is to load the Asus drivers and turn on manual fan contro. Issue the following commands in a terminall

sudo modprobe asus_eee
sudo echo 1 > /proc/eee/fan_manual

To set the fan to run at 100% and 0% respectively run

sudo echo 100 > /proc/eee/fan_speed
sudo echo 0 > /proc/eee/fan_speed

To automate the fan adjustment, I have written a small script (with the name eeefan) which can be seen below. You may copy-paste it, or download it here. I suggest that you put it in you ~/bin/ folder. Once you have done this, add the following line to the file /etc/crontab:

*/1 * 	* * * 	root 	sh /home/username/bin/eeefan

Remember to replace username by your real user name. Also, add the line

asus_eee

to the file /etc/modules. Now, the fan speed will be automatically adjusted every 10 seconds. Try to play around with the value of TEMP_CRITICAL to get the best results.

eeefan Code:

#!/bin/sh
# K.H. Jensen 2008
# Released under the GPL
# eeefan - eee pc 901 / 1000 / 1000H fan control utility

temperature_reading=/proc/eee/temperature
fan_control=/proc/eee/fan_speed
fan_manual_switch=/proc/eee/fan_manual
# Set critical temperature where the fan starts
TEMP_CRITICAL=62
# Set fan speed above TEMP_CRITICAL
FAN_SPEED_CRITICAL=65
# Set fan speed below TEMP_CRITICAL
FAN_SPEED_SUBCRITICAL=25

eeefanupdate() {
    # Get temperature reading
    TEMP=$(cat $temperature_reading)
    # Compa re to the critical temperature
    if [ $TEMP -ge  $TEMP_CRITICAL ];then
        # High fan speed
        echo $FAN_SPEED_CRITICAL > $fan_control
    else
    # Low fan speed
        echo $FAN_SPEED_SUBCRITICAL > $fan_control
    fi
}

# cron jobs can only be executed once every minute,
# so we have to use the sleep command
# Turn on manual fan control
echo 1 > $fan_manual_switch
# Run eeefanu, then wait 10 seconds.
eeefanupdate
sleep 10
eeefanupdate
sleep 10
eeefanupdate
sleep 10
eeefanupdate
sleep 10
eeefanupdate
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google

8 thoughts on “Howto: Reduce fan noise level on the eee pc 901 / 1000 / 1000H

  1. are there any patches for 2.6.26/2.6.27-rcX kernels, that allow to control the fan on other linux distros? (i would need it especially for my eee 1000H / 901 on gentoo)

  2. Pingback: Howto: Reduce fan noise level on the eee pc 900 / 1000 / 1000H : Part II at hartvig.de :: suprnova.dk

  3. Thanks for this utility. I was wondering if anyone knows how to supplement the fan control with a CPU underclock so it’s temerature doesn’t reach high temperatures that may wear it fast.

  4. Pingback: Controlling fanspeeds in Linux on PWM motherboards, Thinkpads and ASUS Eee PC | tjansson.dk

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>