Difference between revisions of "How to get SpeedStep working on P4-class-Celeron based ThinkPads"

From ThinkWiki
Jump to: navigation, search
m (Use Todo template)
(using the sysfs interface)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Introduction==
+
{| width="100%"
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.
+
|style="vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;" | __TOC__
 
+
|style="vertical-align:top" |
 +
If you have a Pentium 4 class Celeron (or [[Intel Mobile Celeron (4)]] based ThinkPad (like some of the {{R32}}, {{R40}}, {{R40e}} models) you can use the P4-Clockmod scaling option from 2.6 kernels to set the cpu speed. Use any userspace daemon like powernowd or cpufreqd to get dynamic speedstepping to work.
 +
|}
 
==Kernel config==
 
==Kernel config==
 
  CONFIG_CPU_FREQ=y
 
  CONFIG_CPU_FREQ=y
Line 12: Line 14:
  
 
==using the sysfs interface==
 
==using the sysfs interface==
use the sys-interface to discover and set available frequencies
+
Use the sys-interface to discover and set available frequencies.
  
make sure to have sysfs mounted:
+
Make sure to have sysfs mounted, by adding
add
 
 
  none            /sys            sysfs          defaults                0      0
 
  none            /sys            sysfs          defaults                0      0
to your /etc/fstab (if not already there)
+
to your {{path|/etc/fstab}} (if not already there).
  
get available freqencies:
+
Get available freqencies with:
 
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies}}
 
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies}}
275000 550000 825000 1100000 1375000 1650000 1925000 2200000
+
:{{cmdresult|275000 550000 825000 1100000 1375000 1650000 1925000 2200000}}
 
 
set frequency:
 
:{{cmdroot|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:
 
:{{cmdroot|echo 825000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq}}
 
:{{cmdroot|echo 2200000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq}}
 
:{{cmdroot|/etc/init.d/powernowd start}}
 
 
 
On my {{R40e}} frequencies below 825000 make x almost unusable (mouse jumps around, until cpuspeed rises).
 
  
==cpufreqd==
+
Set a frequency:
{{Todo|...}}
+
:{{cmdroot|echo 825000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}} {{footnote|1}}
  
 +
You can use [[How to configure powernowd|powernowd]] (easier) or [[How to configure cpufreqd|cpufreq]] (more settings) to have cpuspeed dynamically adjusted.
  
[[Category:R40e]]
+
{{footnotes|
 +
#Frequencies below 825000 will make X almost unusable (mouse jumps around, until cpuspeed rises).
 +
}}

Latest revision as of 23:48, 17 January 2006

If you have a Pentium 4 class Celeron (or Intel Mobile Celeron (4) based ThinkPad (like some of the R32, R40, R40e models) you can use the P4-Clockmod scaling option from 2.6 kernels to set the 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, by adding

none            /sys            sysfs           defaults                0      0

to your /etc/fstab (if not already there).

Get available freqencies with:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
275000 550000 825000 1100000 1375000 1650000 1925000 2200000

Set a frequency:

# echo 825000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed 1

You can use powernowd (easier) or cpufreq (more settings) to have cpuspeed dynamically adjusted.


FOOTNOTES [Δ]
  1. Frequencies below 825000 will make X almost unusable (mouse jumps around, until cpuspeed rises).