Power Managment

A laptop without power control sucks. Period. ACPI, fan control, module speedstep-centrino …. all these are problems one needs to address for a fully working mobile laptop.

ACPI

From kernel version 2.4.22 ACPI is available. Kernel 2.6 should have even better and complete ACPI support but I didn’t install such a kernel yet. See the section migration to kernel 2.6.

To turn ACPI change your /etc/grub.conf from :

    kernel /boot/vmlinuz-<kernelversion> ro root=/dev/hda5

to :

    kernel /boot/vmlinuz-<kernelversion> ro root=/dev/hda5 ACPI=On APM=OFF

Don’t forget to install your boot configuration after modification. This can be done with :

    cmd> grub

After reboot acpi information is available in /proc. A simple :

    cat /proc/cpuinfo

returns the information about the cpu, it’s current clock speed, capabilities and so on. Just explore the /proc directory ­čÖé In KDE with ACPI the battery monitor in the task bar shows the current status (ac on/off ….)

Frequency control

The clockspeed of the Intel Pentium M can be adjusted to the computation power needed. There are many tools like cpufreq, cpuspeed available for this task.

On my system I use cpuspeed. Why? Well, it was the only program that reliably throttled the cpu speed during low load with AC=On. This leads to a cooler system and less fan activity. And it came preinstalled on my system. Here is the my /etc/cpuspeed.conf :

    VMAJOR=1
    VMINOR=1
    DRIVER="speedstep-centrino"
    #OPTS="-a /proc/acpi/ac_adapter/*/state -t /proc/acpi/thermal_zone/*/temperature 75"

Fan control

Fan control adjusts the fan speed to the temperature of the system. This saves energy and leads to a quiet system.

On my notebook I use the i8kutils . Installation with apt-get is a simple :

    apt-get install i8kutils

The init script is slightly buggy and complains about a missing k8.o object in the kernel tree. Modifiy line 30 in /etc/init.d/i8kbuttons to :

    /sbin/modprobe i8k force="1"

Running as a daemon the system checks /proc/acpi/thermal_zone/THM/temperature. If the temperature is above a defined level the fan speeds up and vice versa. The current status can be checked using the proc interface :

    cat /proc/acpi/i8k

Sleep and suspend modes

With kernel 2.4.25 the lid event is detected correctly. Suspend to disk and suspend to ram are reported to work properly only with a 2.6 series kernel. So, I guess I will work on this after the upgrade to a newer kernel. See Migrating to kernel 2.6.