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.