Home » linux相关

Ubuntu系统CPU频率调节

13 06月 2010 Views: No Comment Tags:

选择并启用与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。

提示:可以用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

注意:如果使用的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中,让其自动启动。

原创文章如转载,请注明:转载自Xixis Blog [ http://www.xixis.net/ ]
本文链接地址:http://www.xixis.net/archives/ubuntu-system-cpu-frequency-scaling.html

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.