The Pentium M in our machine is scalable from 600Mhz to the full-on 1.7Ghz via Intel's speedstep technology and ACPI. We can also adjust the screen brightness of the LCD; this is a huge factor in battery longevity. Our Vaio also has a hardware switch to turn the Wireless card on and off -- another good thing to do when not in use.
In order to take advantage of some of these features, you may need to recompile the kernel. The relevent bits are the 'sonypi' driver, which allows us to control the screen brightness and other vaio specific settings. In addition to the sonypi driver, you'll want to go under 'Power Management Options' in the kernel configurator.
Here you'll want to enable the following items:
These settings will allow us to utilize most of the powersaving features of the Pentium M. Now all we have left to do is setup some way of controlling the consumption of power.
The most basic of ways to control processor speed, or 'power profile', is by talking directly to files in /proc or /sys. Root can echo a setting to change to the relevant virtual-file and the computer will respond accordingly. Files of interest are:
If you take a look in scaling_available_governors within the /sys/.../cpufreq directory listed above, it will tell you we have a choice among 'ondemand conservative powersave userspace performance' (if you configured your kernel like mine). The 'conservative' power governer was added with the 2.6.12 kernel release. It works like ondemand, but uses a more graduated algorithm to set intermediate frequencies as well. To set this to the desired option of your choice manually, echo the desired governor to scaling_governor, like this:
echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
KDE includes a nice little app, klaptop, which can control all of these functions from the system tray. It can also control screen brightness via the sonypi driver. Another controller of screen brightness, called spicctrl, can be obtained from popies.net/sonypi. This is a command line utility useful for various tasks specific to the sonypi driver. You can also incorporate the use of it into startup scripts to obtain desired operation.
I also wrote a quick and dirty script which incorporates spicctrl and ACPI power management to help with setting the values more easily. power.sh. To run this as a user, you'll need to change the permissions to the scaling_governor entry under /sys (shown above) to 666.