<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daniel+x21</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daniel+x21"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Daniel_x21"/>
	<updated>2026-05-25T09:45:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_get_SpeedStep_working_on_Coppermine-piix4-smi_based_ThinkPads&amp;diff=20499</id>
		<title>How to get SpeedStep working on Coppermine-piix4-smi based ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_get_SpeedStep_working_on_Coppermine-piix4-smi_based_ThinkPads&amp;diff=20499"/>
		<updated>2006-03-02T11:27:24Z</updated>

		<summary type="html">&lt;p&gt;Daniel x21: /* How to get it work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Foreword==&lt;br /&gt;
APPLYING THIS HOWTO MAY MAKE YOU DUMB, CRASH YOUR CPU, YOUR MOTHERBOARD, MAKE YOUR GIRLFRIEND LEAVE YOU, OR MAYBE WORSE, USE IT AT YOUR OWN RISKS, I'M NOTHING OF A KERNEL HACKER, NEITHER A SMART GUY, THIS IS HOW I TRYED TO GET IT WORK, AND TILL NOW IT IS WORKING, MY PROPOSITION ARE ALMOST GUARANTED TO BE DUMB.&lt;br /&gt;
&lt;br /&gt;
This HowTo is intended for people having trouble getting SpeedStep working via CpuFreq on their Coppermine CPU with a piix4 mainboard. &lt;br /&gt;
ThinkPads known to have this configuration are the {{X20}}, {{X21}}, {{X22}}, {{T20}}, {{T21}}, {{T22}}, {{TransNote}} and possibly {{A20m}}, {{A20p}}, {{A21e}}, {{A21m}}, {{A21p}}, {{A22e}}, {{A22m}}, {{A22p}} models.&lt;br /&gt;
&lt;br /&gt;
The issue is that these CPUs do not repport correctly that they are SpeedStep capable.&lt;br /&gt;
&lt;br /&gt;
This Document is under the GNU/GPL v2+ Licence.&lt;br /&gt;
&lt;br /&gt;
==My case==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==============================================================================&lt;br /&gt;
 (this part is intended for Google matching of people having the same logs ). &lt;br /&gt;
==============================================================================&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
This is what i get:&lt;br /&gt;
I have a x21 IBM ThinkPad, and when trying the SpeedStep implementation of 2.6 kernels i got:&lt;br /&gt;
:{{cmduser|sudo modprobe speedstep-smi}}&lt;br /&gt;
:{{cmdresult|FATAL: Error inserting speedstep_smi    (/lib/modules/2.6.10-rc1-mm4-xa1/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.ko): No such device}}&lt;br /&gt;
&lt;br /&gt;
Rebooting with &amp;lt;tt&amp;gt;cpufreq.debug=7&amp;lt;/tt&amp;gt; ( 1 is for core, 2 is for ??, and 4 is for drivers, 7 = 1 + 2 + 4 ) gave:&lt;br /&gt;
:{{cmduser|sudo modprobe speedstep-smi}}&lt;br /&gt;
:{{cmdresult|FATAL: Error inserting speedstep_smi   (/lib/modules/2.6.10-rc1-mm4-xa1/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.ko): No such device}}&lt;br /&gt;
:{{cmduser|sudo tail /var/log/syslog}}&lt;br /&gt;
:{{cmdresult|[...]}}&lt;br /&gt;
:{{cmdresult|Nov 11 19:54:20 localhost kernel: speedstep-lib: x86: 6, model: 8}}&lt;br /&gt;
:{{cmdresult|Nov 11 19:54:20 localhost kernel: speedstep-lib: Coppermine: MSR_IA32_EBL_CR_POWERON is 0x44080020, 0x0}}&lt;br /&gt;
:{{cmdresult|Nov 11 19:54:20 localhost kernel: speedstep-lib: Coppermine: MSR_IA32_PLATFORM ID is 0x0, 0x540000}}&lt;br /&gt;
:{{cmdresult|Nov 11 19:54:20 localhost kernel: speedstep-smi: No supported Intel CPU detected.}}&lt;br /&gt;
&lt;br /&gt;
==How to get it work==&lt;br /&gt;
Note: to get this working on recent kernels you'll need:&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_RELAXED_CHECK = y&lt;br /&gt;
Easy =) just disable the speedstep-lib checks&lt;br /&gt;
:{{cmduser|1=sudo modprobe speedstep-lib relaxed_check=1}}&lt;br /&gt;
:{{cmduser|sudo modprobe speedstep-smi}}&lt;br /&gt;
Hurrah !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note (from Daniel_X21): I am using linux-image-2.6.15-1-686 and speedstep-smi won't load anymore. Again 'no such device' error. No idea why yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Debian ( and probably with others, please confirm ), you can automate the module parmeters by creating a {{path|/etc/modprobe.d/speedstep-lib}} file with:&lt;br /&gt;
 options speedstep-lib relaxed_check=1&lt;br /&gt;
&lt;br /&gt;
And then, you may add  these 2 lines to {{path|/etc/modules}}:&lt;br /&gt;
 speedstep-lib&lt;br /&gt;
 speedstep-smi&lt;br /&gt;
&lt;br /&gt;
==How to use it==&lt;br /&gt;
[[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
&lt;br /&gt;
==What's not working==&lt;br /&gt;
The speeds shown may be erroneous, which has dramatic consequances if you try to watch movies or applications that are (exact) time-depending (as the timer is all dizzy).&lt;/div&gt;</summary>
		<author><name>Daniel x21</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Dynamic_Frequency_Scaling&amp;diff=20498</id>
		<title>How to make use of Dynamic Frequency Scaling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Dynamic_Frequency_Scaling&amp;diff=20498"/>
		<updated>2006-03-02T11:26:11Z</updated>

		<summary type="html">&lt;p&gt;Daniel x21: /* Using Frequency Scaling Governors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General==&lt;br /&gt;
Linux supports dynamic frequency scaling for systems with the following processors:&lt;br /&gt;
*[[Intel Mobile Pentium III]]&lt;br /&gt;
*[[Intel Mobile Pentium III-M]]&lt;br /&gt;
*[[Intel Mobile Pentium 4]]&lt;br /&gt;
*[[Intel Mobile Pentium 4-M]]&lt;br /&gt;
*[[Intel Pentium M (Banias)]]&lt;br /&gt;
*[[Intel Pentium M (Dothan)]]&lt;br /&gt;
*[[Intel Core Solo (Yonah)]]&lt;br /&gt;
*[[Intel Core Duo (Yonah)]]&lt;br /&gt;
*Mobile Athlon&lt;br /&gt;
*AMD64&lt;br /&gt;
*Opteron&lt;br /&gt;
&lt;br /&gt;
==Configuring the Kernel==&lt;br /&gt;
===2.4 Kernels===&lt;br /&gt;
There were various frequency scaling implementations in the 2.4 series of kernels. They all were preliminary and a standard was rised with the introduction of the sysfs filesystem in 2.6 kernels. It is recommended to use a 2.6 kernel, if possible.&lt;br /&gt;
&lt;br /&gt;
===2.6 Kernels===&lt;br /&gt;
You need to enable the cpu frequency scaling for your kernel (usually your distros kernel will have this enabled):&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
You need to enable governors, if not already done in your distros default kernel:&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_PERFORMANCE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_POWERSAVE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_USERSPACE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
Since 2.6.10 there is the ondemand governor that does cpu frequency scaling in kernel and can be used as an alternative to powernowd etc.&lt;br /&gt;
It can be enabled with:&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_ONDEMAND|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
Since 2.6.12 there is the conservative governor that works similar to the ondemand governor.&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_CONSERVATIVE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
ondemand and conservative differ in the way they scale up and down. The ondemand governor switches to the highest frequency immediately when there is load, while the conservative governor increases frequency step by step. Likewise they behave the other way round for stepping down frequency when the CPU is idle.&lt;br /&gt;
&lt;br /&gt;
==Using the Sys Interface==&lt;br /&gt;
The files in {{path|/sys/devices/system/cpu/cpu0/cpufreq/}} provide information and a means of controlling the frequency scaling subsystem.&lt;br /&gt;
Seed values are given in Khz. You need to be root to access the /sys filesystem.&lt;br /&gt;
&lt;br /&gt;
Your max speed is at {{path|/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq}}.&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq}}&lt;br /&gt;
:{{cmdresult|700000}}&lt;br /&gt;
Your min speed is at {{path|/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq}}.&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq}}&lt;br /&gt;
:{{cmdresult|500000}}&lt;br /&gt;
If you are using the userspace governor, you can write to {{path|/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}} to change the current speed.&lt;br /&gt;
:{{cmdroot|echo 700000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}}&lt;br /&gt;
:{{cmdroot|cat /proc/cpuinfo  | grep &amp;quot;cpu MHz&amp;quot;}}&lt;br /&gt;
:{{cmdresult|cpu MHz         : 697.252}}&lt;br /&gt;
:{{cmdroot|echo 900000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}}&lt;br /&gt;
:{{cmdroot|cat /proc/cpuinfo  | grep &amp;quot;cpu MHz&amp;quot;}}&lt;br /&gt;
:{{cmdresult|cpu MHz         : 976.152}}&lt;br /&gt;
&lt;br /&gt;
==Using Frequency Scaling Governors==&lt;br /&gt;
You can compile the scaling governors into your kernel or compile it as module. You'll find the governors with 'make menuconfig' here:&lt;br /&gt;
:{{kernelconf||||CPU Frequency scaling|Power management options (ACPI, APM)|||}}&lt;br /&gt;
&lt;br /&gt;
After booting the new kernel you can get a list of available governors with (as root):&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors}}&lt;br /&gt;
:{{cmdresult|conservative ondemand powersave userspace performance}}&lt;br /&gt;
&lt;br /&gt;
A Short Overview over the available governors:&lt;br /&gt;
:;ondemand&lt;br /&gt;
::This driver is a dynamic cpufreq policy governor. It changes frequency based on the processor load and may not work on older laptops without Enhanced SpeedStep due to [http://lists.debian.org/debian-powerpc/2005/05/msg00542.html latency reasons].&lt;br /&gt;
:;conservative&lt;br /&gt;
::New since 2.6.12. Similar to ''ondemand''. Optimized for battery powered environments and AMD64. Again, this governor may not work on older ThinkPads like the T21.&lt;br /&gt;
:;powersave&lt;br /&gt;
::Like the name says, your battery would choose this one ;). It sets the Frequency always to the lowest available.&lt;br /&gt;
:;userspace&lt;br /&gt;
::You have to choose this one, if you want to set the frequency manually. Some [[#Using Frequency Scaling Daemons|frequency scaling daemons]] require this governor to operate correctly.  This will typically be the recommended one with older processors like A30p's pIIIm-1200.&lt;br /&gt;
:;performance&lt;br /&gt;
::This governor sets your Frequency always to the highest available.&lt;br /&gt;
&lt;br /&gt;
Now we set our governor:&lt;br /&gt;
What is our current governor?&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdresult|userspace}}&lt;br /&gt;
Set new governor and watch if it has changed&lt;br /&gt;
:{{cmdroot|echo conservative &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdresult|conservative}}&lt;br /&gt;
&lt;br /&gt;
Congrats! Your governor is active.&lt;br /&gt;
&lt;br /&gt;
You may set the governor in your rc.local, to make it used on every boot.&lt;br /&gt;
&lt;br /&gt;
==Using Frequency Scaling Daemons==&lt;br /&gt;
Frequency Scaling Daemons adapt the frequency policy to different situations. A typical configuration would be to use the ondemand governor running off batteries and performance otherwise, or combining powersave with conservative on laptops with heat problems. More sophisticated setups adapt to battery level, CPU temperature or even running programs. Some daemons are able to control other power management features like hard disks or graphic cards.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Daemons are optional. If you don't plan to change policies depending on the situation, you don't need one and you can stick to the &amp;lt;tt&amp;gt;ondemand&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;conservative&amp;lt;/tt&amp;gt; frequency scaling governors, available in kernels after 2.6.10 or 2.6.12 respectively. See [[#Using Frequency Scaling Governors|above]]. They require less configuration and have generally been experienced to flawlessly adapt to the situations at hand.}}&lt;br /&gt;
&lt;br /&gt;
Some daemons use the kernel governors (see above), others implement the functionality on their own. In the latter case you have to enable the userspace governor. If it is built as module, load it as &amp;lt;tt&amp;gt;cpufreq-userspace&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are plenty of userspace frequency scaling daemons available:&lt;br /&gt;
&lt;br /&gt;
*[[How to configure cpudynd | cpudynd]]&lt;br /&gt;
*[[How to configure cpufreqd | cpufreqd]]&lt;br /&gt;
*[[How to use cpufrequtils | cpufrequtils]]&lt;br /&gt;
*[[How to configure powernowd | powernowd]]&lt;br /&gt;
*[[How to configure powersaved | powersaved]]&lt;br /&gt;
*[[How to configure speedfreqd | speedfreqd]]&lt;br /&gt;
&lt;br /&gt;
==Debian notes==&lt;br /&gt;
Instead of compiling your own kernel, you can use the {{Debian}} &amp;quot;stock&amp;quot; kernel. In Unstable/SID the 2.6.12 kernel image with an {{path|/etc/modules}} file that includes:&lt;br /&gt;
&lt;br /&gt;
 battery&lt;br /&gt;
 ac&lt;br /&gt;
 thermal&lt;br /&gt;
 processor&lt;br /&gt;
 acpi-cpufreq&lt;br /&gt;
 cpufreq-userspace&lt;br /&gt;
&lt;br /&gt;
With the powernowd package and you should be setup.&lt;br /&gt;
&lt;br /&gt;
{{Debian}} has no {{path|rc.local}}, so read [http://www.debian.org/doc/FAQ/ch-customizing.en.html#s-custombootscripts this] and [http://www.debian.org/doc/FAQ/ch-customizing.en.html#s-booting this].&lt;br /&gt;
&lt;br /&gt;
A better alternative for Debian than modifying bootscripts, is to install the [http://packages.debian.org/cgi-bin/search_packages.pl?searchon=names&amp;amp;version=all&amp;amp;exact=1&amp;amp;keywords=sysfsutils sysfsutils package]. Then edit {{path|/etc/sysfs.conf}} (as root), where you can setup values to sysfs entries that you want to be modified automatically on boot.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
*If you have a Coppermine-piix-smi based ThinkPads like from the A2x, X2x and T2x series you need to enable the &amp;lt;tt&amp;gt;speedstep-smi&amp;lt;/tt&amp;gt; driver in the kernel and load it if it's built as module. You might want to look at [[How to get SpeedStep working on Coppermine-piix4-smi based ThinkPads | this page]].&lt;br /&gt;
&lt;br /&gt;
*If you have a p4-class celeron based ThinkPad like the R40e you might want to look at [[How to get SpeedStep working on P4-class-Celeron based ThinkPads | this page]]&lt;br /&gt;
&lt;br /&gt;
*You may need to set your BIOS to &amp;quot;maximum performance&amp;quot; if you are using Linux to set the CPU speed.  This is necessary to prevent odd behaviour (cpufreq 'freezing' at certain frequencies) with the T4x series.&lt;br /&gt;
&lt;br /&gt;
==Finetuning voltages and available frequencies==&lt;br /&gt;
See [[Pentium M undervolting and underclocking]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Daniel x21</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Dynamic_Frequency_Scaling&amp;diff=20497</id>
		<title>How to make use of Dynamic Frequency Scaling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Dynamic_Frequency_Scaling&amp;diff=20497"/>
		<updated>2006-03-02T11:24:57Z</updated>

		<summary type="html">&lt;p&gt;Daniel x21: /* Using Frequency Scaling Governors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General==&lt;br /&gt;
Linux supports dynamic frequency scaling for systems with the following processors:&lt;br /&gt;
*[[Intel Mobile Pentium III]]&lt;br /&gt;
*[[Intel Mobile Pentium III-M]]&lt;br /&gt;
*[[Intel Mobile Pentium 4]]&lt;br /&gt;
*[[Intel Mobile Pentium 4-M]]&lt;br /&gt;
*[[Intel Pentium M (Banias)]]&lt;br /&gt;
*[[Intel Pentium M (Dothan)]]&lt;br /&gt;
*[[Intel Core Solo (Yonah)]]&lt;br /&gt;
*[[Intel Core Duo (Yonah)]]&lt;br /&gt;
*Mobile Athlon&lt;br /&gt;
*AMD64&lt;br /&gt;
*Opteron&lt;br /&gt;
&lt;br /&gt;
==Configuring the Kernel==&lt;br /&gt;
===2.4 Kernels===&lt;br /&gt;
There were various frequency scaling implementations in the 2.4 series of kernels. They all were preliminary and a standard was rised with the introduction of the sysfs filesystem in 2.6 kernels. It is recommended to use a 2.6 kernel, if possible.&lt;br /&gt;
&lt;br /&gt;
===2.6 Kernels===&lt;br /&gt;
You need to enable the cpu frequency scaling for your kernel (usually your distros kernel will have this enabled):&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
You need to enable governors, if not already done in your distros default kernel:&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_PERFORMANCE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_POWERSAVE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_USERSPACE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
Since 2.6.10 there is the ondemand governor that does cpu frequency scaling in kernel and can be used as an alternative to powernowd etc.&lt;br /&gt;
It can be enabled with:&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_ONDEMAND|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
Since 2.6.12 there is the conservative governor that works similar to the ondemand governor.&lt;br /&gt;
:{{kernelconf|CONFIG_CPU_FREQ_GOV_CONSERVATIVE|&amp;lt;*&amp;gt;|||||}}&lt;br /&gt;
&lt;br /&gt;
ondemand and conservative differ in the way they scale up and down. The ondemand governor switches to the highest frequency immediately when there is load, while the conservative governor increases frequency step by step. Likewise they behave the other way round for stepping down frequency when the CPU is idle.&lt;br /&gt;
&lt;br /&gt;
==Using the Sys Interface==&lt;br /&gt;
The files in {{path|/sys/devices/system/cpu/cpu0/cpufreq/}} provide information and a means of controlling the frequency scaling subsystem.&lt;br /&gt;
Seed values are given in Khz. You need to be root to access the /sys filesystem.&lt;br /&gt;
&lt;br /&gt;
Your max speed is at {{path|/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq}}.&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq}}&lt;br /&gt;
:{{cmdresult|700000}}&lt;br /&gt;
Your min speed is at {{path|/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq}}.&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq}}&lt;br /&gt;
:{{cmdresult|500000}}&lt;br /&gt;
If you are using the userspace governor, you can write to {{path|/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}} to change the current speed.&lt;br /&gt;
:{{cmdroot|echo 700000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}}&lt;br /&gt;
:{{cmdroot|cat /proc/cpuinfo  | grep &amp;quot;cpu MHz&amp;quot;}}&lt;br /&gt;
:{{cmdresult|cpu MHz         : 697.252}}&lt;br /&gt;
:{{cmdroot|echo 900000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}}&lt;br /&gt;
:{{cmdroot|cat /proc/cpuinfo  | grep &amp;quot;cpu MHz&amp;quot;}}&lt;br /&gt;
:{{cmdresult|cpu MHz         : 976.152}}&lt;br /&gt;
&lt;br /&gt;
==Using Frequency Scaling Governors==&lt;br /&gt;
You can compile the scaling governors into your kernel or compile it as module. You'll find the governors with 'make menuconfig' here:&lt;br /&gt;
:{{kernelconf||||CPU Frequency scaling|Power management options (ACPI, APM)|||}}&lt;br /&gt;
&lt;br /&gt;
After booting the new kernel you can get a list of available governors with (as root):&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors}}&lt;br /&gt;
:{{cmdresult|conservative ondemand powersave userspace performance}}&lt;br /&gt;
&lt;br /&gt;
A Short Overview over the available governors:&lt;br /&gt;
:;ondemand&lt;br /&gt;
::This driver is a dynamic cpufreq policy governor. It changes frequency based on the processor load and may not work on older laptops without Enhanced SpeedStep due to [http://lists.debian.org/debian-powerpc/2005/05/msg00542.html latency reasons].&lt;br /&gt;
:;conservative&lt;br /&gt;
::New since 2.6.12. Similar to ''ondemand''. Optimized for battery powered environments and AMD64. Again, this governor may not work on older ThinkPads like the T21.&lt;br /&gt;
:;powersave&lt;br /&gt;
::Like the name says, your battery would choose this one ;). It sets the Frequency always to the lowest available.&lt;br /&gt;
:;userspace&lt;br /&gt;
::You have to choose this one, if you want to set the frequency manually. Some [[#Using Frequency Scaling Daemons|frequency scaling daemons]] require this governor to operate correctly.  This will typically be the recommended one with older processors like A30p's pIIIm-1200.&lt;br /&gt;
:;performance&lt;br /&gt;
::This governor sets your Frequency always to the highest available.&lt;br /&gt;
&lt;br /&gt;
Now we set our governor:&lt;br /&gt;
What is our current governor?&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdresult|userspace}}&lt;br /&gt;
Set new governor and watch if it has changed&lt;br /&gt;
:{{cmdroot|echo conservative &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdresult|conservative}}&lt;br /&gt;
&lt;br /&gt;
Congrats! Your governor is active.&lt;br /&gt;
&lt;br /&gt;
You may set the governor in your rc.local, to make it used on every boot.&lt;br /&gt;
&lt;br /&gt;
Note (from Daniel_X21): I am using linux-image-2.6.15-1-686 and speedstep-smi won't load anymore. Again 'no such device' error. No idea why yet.&lt;br /&gt;
&lt;br /&gt;
==Using Frequency Scaling Daemons==&lt;br /&gt;
Frequency Scaling Daemons adapt the frequency policy to different situations. A typical configuration would be to use the ondemand governor running off batteries and performance otherwise, or combining powersave with conservative on laptops with heat problems. More sophisticated setups adapt to battery level, CPU temperature or even running programs. Some daemons are able to control other power management features like hard disks or graphic cards.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Daemons are optional. If you don't plan to change policies depending on the situation, you don't need one and you can stick to the &amp;lt;tt&amp;gt;ondemand&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;conservative&amp;lt;/tt&amp;gt; frequency scaling governors, available in kernels after 2.6.10 or 2.6.12 respectively. See [[#Using Frequency Scaling Governors|above]]. They require less configuration and have generally been experienced to flawlessly adapt to the situations at hand.}}&lt;br /&gt;
&lt;br /&gt;
Some daemons use the kernel governors (see above), others implement the functionality on their own. In the latter case you have to enable the userspace governor. If it is built as module, load it as &amp;lt;tt&amp;gt;cpufreq-userspace&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are plenty of userspace frequency scaling daemons available:&lt;br /&gt;
&lt;br /&gt;
*[[How to configure cpudynd | cpudynd]]&lt;br /&gt;
*[[How to configure cpufreqd | cpufreqd]]&lt;br /&gt;
*[[How to use cpufrequtils | cpufrequtils]]&lt;br /&gt;
*[[How to configure powernowd | powernowd]]&lt;br /&gt;
*[[How to configure powersaved | powersaved]]&lt;br /&gt;
*[[How to configure speedfreqd | speedfreqd]]&lt;br /&gt;
&lt;br /&gt;
==Debian notes==&lt;br /&gt;
Instead of compiling your own kernel, you can use the {{Debian}} &amp;quot;stock&amp;quot; kernel. In Unstable/SID the 2.6.12 kernel image with an {{path|/etc/modules}} file that includes:&lt;br /&gt;
&lt;br /&gt;
 battery&lt;br /&gt;
 ac&lt;br /&gt;
 thermal&lt;br /&gt;
 processor&lt;br /&gt;
 acpi-cpufreq&lt;br /&gt;
 cpufreq-userspace&lt;br /&gt;
&lt;br /&gt;
With the powernowd package and you should be setup.&lt;br /&gt;
&lt;br /&gt;
{{Debian}} has no {{path|rc.local}}, so read [http://www.debian.org/doc/FAQ/ch-customizing.en.html#s-custombootscripts this] and [http://www.debian.org/doc/FAQ/ch-customizing.en.html#s-booting this].&lt;br /&gt;
&lt;br /&gt;
A better alternative for Debian than modifying bootscripts, is to install the [http://packages.debian.org/cgi-bin/search_packages.pl?searchon=names&amp;amp;version=all&amp;amp;exact=1&amp;amp;keywords=sysfsutils sysfsutils package]. Then edit {{path|/etc/sysfs.conf}} (as root), where you can setup values to sysfs entries that you want to be modified automatically on boot.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
*If you have a Coppermine-piix-smi based ThinkPads like from the A2x, X2x and T2x series you need to enable the &amp;lt;tt&amp;gt;speedstep-smi&amp;lt;/tt&amp;gt; driver in the kernel and load it if it's built as module. You might want to look at [[How to get SpeedStep working on Coppermine-piix4-smi based ThinkPads | this page]].&lt;br /&gt;
&lt;br /&gt;
*If you have a p4-class celeron based ThinkPad like the R40e you might want to look at [[How to get SpeedStep working on P4-class-Celeron based ThinkPads | this page]]&lt;br /&gt;
&lt;br /&gt;
*You may need to set your BIOS to &amp;quot;maximum performance&amp;quot; if you are using Linux to set the CPU speed.  This is necessary to prevent odd behaviour (cpufreq 'freezing' at certain frequencies) with the T4x series.&lt;br /&gt;
&lt;br /&gt;
==Finetuning voltages and available frequencies==&lt;br /&gt;
See [[Pentium M undervolting and underclocking]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Daniel x21</name></author>
		
	</entry>
</feed>