CPU頻率調節(SpeedStep, PowerNow)

此頁由 Linux Wiki用戶Chenxing 於 2012年12月18日 (星期二) 08:01 的最後更改。 在Bccd的工作基礎上。

出自Linux Wiki

提示:此文已超过 12 年(4387 天)未更新,如发现内容过时或有误,欢迎改进:)

目錄

前言

現在的CPU耗電很大,按需調節CPU頻率有對節能有重要的意義,目前多數Linux發行版都已經默認啟用了這個功能,但是Debian 4.0和Archlinux還沒有,需要經過簡單的設置才行。,

Debian 4.0和Archlinux的內核已經編譯了調節CPU頻率的模塊,但是默認沒有啟用,所以要做就是啟用相關的模塊,並安裝CPU頻率調節程序(可選)。

選擇並啟用與CPU相對應的內核模塊

為確保接下來的工作是有意義的,首先確保您的CPU頻率調節功能還沒有啟用~

# cd /sys/devices/system/cpu/cpu0
# ls -l

如果你看到一個名為cpufreq的文件夾,則說明頻率調節功能已經啟用,您可以直接跳至下一步。

如果沒有看到名為cpufreq的文件夾,則先看一下可以用的驅動:

# ls /lib/modules/`uname -r`/kernel/arch/*/kernel/cpu/cpufreq

在我的電腦看到的是這樣的,估計你的也差不多。

acpi-cpufreq.ko     longrun.ko      powernow-k8.ko         speedstep-smi.ko
cpufreq-nforce2.ko  p4-clockmod.ko  speedstep-centrino.ko
gx-suspmod.ko       powernow-k6.ko  speedstep-ich.ko
longhaul.ko         powernow-k7.ko  speedstep-lib.ko

這些都是可選的驅動,但是與不同的CPU相匹配。 常用的是:

p4-clockmod.ko Intel P4的處理器
speed-centrino.ko 迅弛,很多筆記本都是這個
powernow-k*.ko AMD處理器用的
acpi-cpufreq.ko 如果所有的都行,試試這個,(但2.6.20或以上的內核推薦優先使用該項)

上表列出的只是常用的,如果不行,試一下其它的。

試的方法是:

1. 加載該內核模塊,如

#modprobe p4-clockmod

又如

#modprobe powernow-k8

注意是模塊名是把上面的文件名去掉.ko。

2. 如果沒有錯誤信息,就對了。如果要確認,看一下

# cd /sys/devices/system/cpu/cpu0
# ls -l

是否有cpufreq。

Hint.gif
提示:
可以用cat看一下cpufreq文件夾下的文件,可以得到一些有用的信息

選擇適當的調節器

調節器即Governor,用它來控制CPU頻率。可選的有

內核模塊 調節器名稱 功能
cpufreq_ondemand ondemand 按需調節,內核提供的功能,不是很強大,但有效實現了動態頻率調節
cpufreq_powersave powersave 省電模式,通常以最低頻率運行,
cpufreq_userspace userspace 用戶模式,一些調頻工具軟件需要在此模式下才能運行
cpufreq_conservative conservative “保守”模式,類似於ondemand,但調整相對較緩
N/A performance 不降頻

查看當前的調節器:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

更改使用的調節器,需要加載相應的內核模塊,再更改scaling_governor文件,例如:

# modprobe cpufreq_conservative
# echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Note.gif
注意:
如果使用的CPU比較老,使用speedstep-smi做為動態頻率的模塊,則不能使用ondemand等實時調頻軟件,原因是其調頻延時較長。

當然也可以用GNOME的工具來調節,請參見後面的介紹。

使用軟件管理CPU頻率

內核模塊的CPU頻率管理功能已經很強大了,當然你也可以應用軟件來管理,可選的軟件有:

  1. cpudynd
  2. cpufreqd
  3. cpufrequtils
  4. powernowd
  5. powersaved
  6. speedfreqd

這些源里是有的,不過我認為都不怎麼好用,感覺Fedora的cpuspeed比較好,不過源里沒有。

使用gnome的CPU頻率範圍監視器

在gnome的面板上按右鍵,選擇“添加到面板”,加入“CPU頻率範圍監視器”。 在那個圖標上按右鍵,“首選項”,可以選擇顯示和調速的方式。 普通用戶默認不能調節CPU頻率,要解決這個問題,請參閱為普通用戶提供CPU調頻權限

設置開機自動加載以上設置

Debian 4.0

1. 編輯 /etc/modules ,加入剛才modprobe掛載的內核模塊

cpufreq-userspace
cpufreq-ondemand
cpufreq-powersave
cpufreq-conservative
speedstep-centrino  #请修改为相应的频率调节模块

2. 安裝sysfsutils,

#apt-get install sysfsutils

以超級用戶權限編輯/etc/sysfs.conf,文件內容:

devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 1800000   #请修改为您的CPU的最高频率

如果是雙核CPU,還應加入cpu1的內容,與cpu0完全類似。多線程CPU無需進行此項操作。

Archlinux

  • 在/etc/rc.conf的MODULES變量中加入剛才modeprobe掛載的內核模塊
cpufreq-userspace
cpufreq-ondemand
cpufreq-powersave
cpufreq-conservative
speedstep-centrino  #请修改为相应的频率调节模块
  • 可以安裝cpudyn和acpid,並
# /etc/rc.d/cpudyn start
# /etc/rc.d/acpid start

啟動自動調節,也可以把它們加到rc.conf中,讓其自動啟動。

參考資料

--Chenxing 14:47 2007年4月29日 (CST) --Chenxing 11:39 2007年7月18日 (CST)

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
简体繁体转换