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

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




Nice hack – now if I only had a Eee to try it on.
Nice! I’ll be sure to try this with Backtrack 3 on my 701. Thanks
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)
@coolpheonix
Yes, you would have to get the eeepc linux module from here(http://code.google.com/p/eeepc-linux/) and insert it into the kernel. Then it should work.
thanks, after following the issues on that site i could build/insert v0.3 successfully! finally a quiet laptop
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.