From Indie IT Wiki
Jump to: navigation, search


Frequency Scaling

I thought I would write a little howto on how to get cpu frequency scaling to work directly with the kernel modules. These modules are generally more efficient for performance computing and battery life.


kernel >= 2.6.9

Step 1: Enable BIOS Support

Enter your BIOS at boot and make sure Cool'n'Quiet (AMD) or SpeedStep (Intel) is enable for you CPU. Some BIOS may not have option at all. If that is the case it is probably enabled by default. Other BIOS may have the option but it is listed as another name altogether. If that is the case check your BIOS manual for more info.

Step 2: Remove Userspace Scaling Software

powernowd sudo apt-get remove powernowd cpudyn sudo apt-get remove cpudyn

Step 3: Install CPU Module

Identify your cpu type by runnig the command cat /proc/cpuinfo You can also Check the following links

AMD CPU Chart - http://www.tomshardware.com/2005/11/21/the_mother_of_all_cpu_charts_2005/page20.html

Intel CPU Chart - http://www.tomshardware.com/2005/11/21/the_mother_of_all_cpu_charts_2005/page21.html

AMD Sempron/Athlon/MP ( K7 ) Socket Types: A, Slot A sudo modprobe powernow-k7 AMD Duron/Sempron/Athlon/Opteron 64 ( K8 ) Socket Types: 754, 939, 940, S1 ( 638 ), AM2 ( 940 ), F ( 1207 ) sudo modprobe powernow-k8 Intel Core Duo sudo modprobe speedstep-centrino Intel Pentium M sudo modprobe speedstep-centrino Others (Unknown) I'm not entirely sure which cpus are supported using this module. If your cpu doesn't work with one of the above methods try this one. sudo modprobe acpi-cpufreq

Step 4: Scaling Modules

sudo modprobe cpufreq_conservative sudo modprobe cpufreq_ondemand sudo modprobe cpufreq_powersave sudo modprobe cpufreq_stats sudo modprobe cpufreq_userspace

Step 5: Testing/Configuration

Show Available Governors

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

You should see output similar to

powersave conservative ondemand performance

conservative Description: CPU frequency is scaled based on load in incremental steps up and down.

sudo -s echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Advanced Configuration Options cd /sys/devices/system/cpu/cpu0/cpufreq/conservative

ondemand Description: CPU frequency is scaled based on load.

sudo -s echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Advanced Configuration Options cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand

performance Description: CPU only runs at max frequency regardless of load. Configuration Dir: N/A

sudo -s echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

powersave Description: CPU only runs at min frequency regardless of load. Configuration Dir: N/A

sudo -s echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Step 6: Load Modules at Boot

Add the following lines to the end of /etc/modules

cpufreq_conservative cpufreq_ondemand cpufreq_powersave cpufreq_stats cpufreq_userspace [Module from Step 3]

Step 7: Configure Modules at Boot

This step needs to be done in order for the modules to retain your settings. Make sure you have sysfsutils installed sudo apt-get install sysfsutils Then add the following lines to /etc/sysfs.conf devices/system/cpu/cpu0/cpufreq/scaling_governor=ondemand Where ondemand can be changed to another governor type (i.e. conservative, powersave, etc.). You can also add other configuration options that are specific to the governor selected.

Useful Links http://ubuntu.wordpress.com/2005/11/04/enabling-cpu-frequency-scaling/ http://martin.ankerl.org/category/linux/ http://gentoo-wiki.com/HOWTO_Undervolt_a_Pentium_M_CPU http://wejp.k.vu/projects/howto_cnq_athlon_64_x2/

Taken from: http://ubuntuforums.org/archive/index.php/t-248867.html