Table of Contents
#INTRODUCTION
To reduce power consumption is essential for portable computers but there are no reason not to use on desktop machines. You can save power turning off not needed hardware components like WiFi, Bluetooth, turning off or reduce monitor backlight, spinning down HDD and to control CPU frequency.
TC4 activates CPU frequency scaling by default at startup time in case of suitable CPU found and enables 'ondemand' governor, which will select automatically frequency based on applications demand.
In most cases it works fine and you do not need any additional action.
However, as there are certain setups where either not all required drivers are automatically loaded and/or where the 'ondemand' governor gets prevented from being enabled (due to latency being too high), it is a good idea to do a check - based on info which follows - whenever running TC4 for the first time with a specific processor or chipset.
#VIEW CPU FREQUENCY INFORMATION
If you want to view actual CPU frequency settings, install cpufrequtils.tcz extension and use command:
cpufreq-info
#GOVERNORS
Governors are kernel modules changing the CPU frequency. There are different governors implementing different rules:
powersave - sets the lowest possible frequency constantly
performance - sets the possible highest frequency constantly
ondemand - changes frequency automatically based upon actual demand of programs
conservative - same as ondemand but with a different algorithm, better for notebook battery use
userspace - allows userspace programs (or any process running as root) to set the frequency
Above governors are modules, loaded automatically when needed, but you can modprobe them before using. TC default is 'ondemand'.
For most systems, the 'ondemand' governor can provide the best compromise between heat emission, power consumption, performance, and manageability. When the system is only busy at specific times of the day, the 'ondemand' governor will automatically switch between maximum and minimum frequency depending on the load without any further intervention.
#CHANGING GOVERNOR
If you want to use a different governor the 'ondemand', install cpufreq-utils.tcz extension.
Use the 'cpufreq-set' command to activate one of the governors mentioned above, for example:
cpufreq-set -g performance
Please note, if you have a dual-core or multiple-core CPU, you must specify explicitely the CPU. There are CPU's where each core can run with different setting! Example for a dual-core CPU:
cpufreq-set -c 0 -g conservative cpufreq-set -c 1 -g conservative
You can explicitely specify the frequency also.
#MAN PAGES
You can read man pages here:
http://linux.die.net/man/1/cpufreq-info http://linux.die.net/man/1/cpufreq-set
#USER SPACE PROGRAMS
There are user space programs to manage not only cpu frequency but other components also. One of those, cpufreqd is available in the repository.
#TROUBLESHOOTING
The following relates to a Pentium M under TC3.8.4 (2.6.33.3 kernel) running on a Dell Precision M70
laptop, but may still be applicable if you run into a similiar problem.
Installed cpufrequtils and selected ondemand govenor. The policy line from the cpufreq-info command read:
current policy: frequency should be within 800 MHz and 800 MHz.
indicated that CPU was locked at 800Mhz. Executing the command:
cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit
returned the value 800000 (frequency in Khz). Using the boot code:
processor.ignore_ppc=1
fixed that. Now bios_limit contains 2267000 (2.267Ghz), the maximum speed for this CPU. Checking
\proc\cpuinfo several times showed that the frequency was bouncing between 800Mhz and 2.27Ghz
even though the machine was not doing anything. Changing the governor to conservative fixed that.
For links to bug reports that helped solve this problem, see:
http://forum.tinycorelinux.net/index.php/topic,14917.msg85013.html#msg85013