自動 CPU 調頻節能控制
Ubuntu 10.04 以後的系統可以安裝 powernowd,(開機會自動執行 deamon)
週期的監控 CPU 使用率,可以設定上限值與下限,依據設定的 policy 自動調降/調升 CPU 頻率。
Ubuntu Linux 10.04 設定檔 ( /etc/default/powernowd )
man powernowd for details.
手動CPU 調頻控制
測試:
Lenovo Notebook X200, CPU (Pentium M) 支援四種頻率 ( 2401, 2400, 1600, 800 MHz)
CPU: Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
OS: Ubuntu 10.04 TLS (Linux kernel: 2.6.32-26-generic SMP)
Script code:
#!/bin/bash
# Lenovo x200 support: 800 MHz, 1600 MHz, 2400 MHz and 2401 MHz
# 可參考 /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_available_frequencies
num=$#
if [ $num -lt 2 ]; then
echo "$0 cpu_id cpu_freq"
exit 1;
fi
cpu="$1"
cpufreq="$2""000"
echo "Set CPU$cpu with $2 MHz"
# 可參考 /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_available_governors
echo "userspace" > /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_governor
# 設定 CPU 頻率下限
echo "800000" > /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_min_freq
# 設定 CPU 頻率上限
echo "2401000" > /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_max_freq
# 設定 CPU 頻率
echo "$cpufreq" > /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_setspeed
# 確認設定
echo "cat /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_setspeed"
out=`cat /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_setspeed`
echo $out
cat /proc/cpuinfo |grep "cpu MHz"
exit 0;Last updated