Fan control on Asus eeePC netbooks


Updated: June 3, 2013

If you happen to have a netbook, like I do, then you probably want it to use its fans as little as possible to save battery time. On the other hand, you do want the fans to kick in now and then and clear off some of the heat, especially when it's already hot outside. Well, I faced this problem time and again with my eeePC.

This has to be the sorest point of all netbooks, how does one properly tweak their fans so they work at the right time, at the right temperature, at the right speed? Well, there's no simple answer, but I will definitely try to answer that in this tutorial.

Teaser

Note: Image courtesy of memegenerator.net.

Sensors & pwmcontrol

I will be demonstrating on Xubuntu 12.04 Precise Pangolin. The idea remains the same for most distributions out there, but please don't rage in anger if my method here somehow fails your usecase. Anyhow, let us begin.

The reason why you netbook might not be doing proper temperature & fan control is because it could be missing the right driver. To check whether your system is behaving properly, you need to check whether the coretemp module is loaded into kernel. This can be done using the lsmod command, as I've shown you way back in one of my Linux usage tutorials.

Coretemp module, lsmod

If it's not loaded, this is probably because there's no need for it, or there's no utility that ought to be using it. Indeed, before you can enable proper fan control, you need the right tools to poll your various sensors and report the numbers to the temperature & fan facility.

To that, you will need to install the lm-sensors package. Depending on your distribution of choice, the command will vary a little. Demonstrating using apt-get on the Debian family range, it goes thusly:

apt-get install lm-sensors

Now, your will have the sensors program available for use. But on its own, this program will not be too useful. One, the interface is a bit difficult for use by most people. Two, it might not be seeing all of the available sensors.

Sensors

Take a look at the example above. In my case, sensors report two devices that measure temperature. One is based on ACPI functionality, another on ISA. And then, we have the fan sensor that reports the built-in cooler is not spinning. We will somehow need to configure it, so that it kicks in, based on the reported CPU core temperature values.

To that end, you will need another package, named fancontrol. After you install using the same method as previously demonstrated, you're in theory ready to go. Unfortunately, the fancontrol package comes without any configuration and cannot be used by default. You will need to create a basic configuration file, under /etc/fancontrol, and then restart the service to make it run. You can manually do that, or better yet, use pwmconfig wizard to generate the correct configuration file.

pwmconfig

Run the wizard. First, it will report one or more HW monitoring facilities, and see which ones have controls. Then, it will try to manually spin the fans to max. speed and stop them. Once this step is complete, you will be able to set threshold values for the fans to spin, based on the temperature, and save the configuration, enabling proper fan control.

Sample /etc/fancontrol file

Fancontrol configuration files

I created two configuration files for you, one based on the ACPI sensor, and one on the internal sensor, using the coretemp module. You are free to use them as a baseline for your test.

INTERVAL=10
DEVPATH=hwmon0= hwmon1=devices/platform/eeepc
DEVNAME=hwmon0=acpitz hwmon1=eeepc
FCTEMPS=hwmon1/pwm1=hwmon0/temp1_input
FCFANS=hwmon1/pwm1=hwmon1/fan1_input
MINTEMP=hwmon1/pwm1=64
MAXTEMP=hwmon1/pwm1=80
MINSTART=hwmon1/pwm1=10
MINSTOP=hwmon1/pwm1=0

INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/eeepc
DEVNAME=hwmon1=coretemp hwmon2=eeepc
FCTEMPS=hwmon2/pwm1=hwmon1/device/temp2_input
FCFANS= hwmon2/pwm1=
MINTEMP=hwmon2/pwm1=45
MAXTEMP=hwmon2/pwm1=65
MINSTART=hwmon2/pwm1=150
MINSTOP=hwmon2/pwm1=0
MAXPWM=hwmon2/pwm1=60

Once you write a configuration file, restart the service:

/etc/init.d/fancontrol restart

You may also notice that after using pwmconfig, your fans might spin at max. speed until you turn the fancontrol on. And conversely, if you switch the service off, the fans will throttle up. Lastly, you can always issue manual commands under /sys, but this is not the recommended way of doing it, especially if you're not quite sure what you might be doing.

And that is all really, you now have a proper fan control on your netbook.

Fans are working

Conclusion

To recap what we've done here. You will need to install several packages, then run pwmconfig to poll all available sensors and configure them properly. At the end of the wizard, you will be able to create a fancontrol config file, based on the preferred device you want to use. Once the configuration file is saved, you will have temperature & fan modulation in place. You can also manually manage the service, or use the two configuration files as a baseline. Change the temperature values to suit your needs.

That would be all, but you get a bunch. One, a funny meme. Then, on top of that, how to check whether drivers are loaded into kernel, how to install several temperature and fan packages, how to use various utilities and services to configure and control the fan use on your netbooks. Overall, this guide is designed specifically for Asus eeePC devices, but it should be relevant for most brands out there. Well, that would be all.

Cheers.

RSS Feed icon

del.icio.us del.icio.us stumbleupon stumble digg digg reddit reddit slashdot slashdot



Advertise!

Would you like to advertise your product/site on Dedoimedo?

Read more

Donate to Dedoimedo!

Do you want to
help me take early retirement? How about donating
some dinero to
Dedoimedo?

Read more

Donate