How to get SpeedStep working on P4-class-Celeron based ThinkPads
Introduction
If you have an P4-class Celeron based Thinkpad (like the R40e in my case) you can use the p4-Clockmod scaling option from 2.6 kernels to set cpu speed. Use any userspace daemon like powernowd or cpufreqd to get dynamic speedstepping to work.
Kernel config
CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_TABLE=y CONFIG_X86_P4_CLOCKMOD=y (for R40e, p4-class celeron, other tp's might need something different here)
make sure to have the sys interface built within your kernel
CONFIG_SYSFS=y
using the sysfs interface
use the sys-interface to discover and set available frequencies
make sure to have sysfs mounted: add
none /sys sysfs defaults 0 0
to your /etc/fstab (if not already there)
get available freqencies:
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
275000 550000 825000 1100000 1375000 1650000 1925000 2200000
set frequency:
# echo 825000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
You can use powernowd (easier) or cpufreq (more settings) to have cpuspeed dynamically managed.
Powernowd
for powernowd use the sys interface to set the min and max speed:
# echo 825000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
# echo 2200000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# /etc/init.d/powernowd start
On my R40e frequencies below 825000 make x almost unusable (mouse jumps around, until cpuspeed rises).
cpufreqd
TODO