So I was really annoyed that my Mum's Elonex Webbook with Windows XP on was doing CPU frequency scaling out of the box and so was getting battery life nearer 4 hours than the 2 my Ubuntu Webbook was achieving.
I spent a couple of hours this evening searching for ways to get CPU frequency scaling working, and at last I've managed to find the information I was looking for. As such I thought I'd share it with you.
Download, extract and compile the following source code:
$ wget http://www.a110wiki.de/wiki/images/6/65/Cpufreq-2.6.25_backport.tar.bz2
$ tar xfvj Cpufreq-2.6.25_backport.tar.bz2
$ cd cpufreq
$ make
Now you need to create the following directory:
$ sudo mkdir /lib/modules/`uname -r`/cpu
Then copy the compiled kernel module into this direcotry...
$ sudo cp e_powersaver.ko /lib/modules/`uname -r`/cpu/
You're nearly good to go....
$ depmod -ae
$ modprobe e_powersaver
You will now have CPU frequency scaling support. You can add 'e_powersaver' to your /etc/modules file so that it loads automatically every time your computer starts.
Other tools that are useful include:
$ sudo apt-get install cpufrequtils
You can now do things like this:
$ /usr/bin/cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: e_powersaver
CPUs which need to switch frequency at the same time: 0
hardware limits: 399 MHz - 1.60 GHz
available frequency steps: 399 MHz, 499 MHz, 599 MHz, 698 MHz, 798 MHz, 898 MHz, 998 MHz, 1.10 GHz, 1.20 GHz, 1.30 GHz, 1.40 GHz, 1.50 GHz, 1.60 GHz
available cpufreq governors: ondemand, conservative, userspace, powersave, performance
current policy: frequency should be within 399 MHz and 1.60 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.60 GHz.
And to change the power modes etc you can do this:
$ sudo cpufreq-set -g powersave
$ sudo cpufreq-set -g conservative
So, I hope this is of some help to someone. I should point out that the original source of this information was http://www.a110wiki.de/wiki/CPU.