查看文章 |
使用powernowd为CPU降降温!
2008-07-10 8:38
使用powernowd为CPU降降温!
夏日炎炎,我们的电脑这个发热大户也不堪忍受高温,风扇整天嗡嗡地呻吟。高温不仅使得系统不稳定,使用者也必须忍受着来自电脑的热浪的侵袭。本文就介绍一 下在Linux下如何通过CPU频率调节为电脑降温,让电脑COOL一夏,让笔记本电池用得更长久一些,也希望可以为节能降耗作一份贡献。注:本文在Ubuntu 8.04下示范。 1.启用与CPU相对应的内核模块 查询相应模块是否已启用: # ls /sys/devices/system/cpu/cpu0
如果你看到一个名为cpufreq的文件夹,则说明频率调节功能已经启用,您可以直接跳至下一步。如果没有看到,则需要加载相应的内核模块。 # ls /lib/modules/`uname -r`/kernel/arch/*/kernel/cpu/cpufreq
你会看到一些模块文件,我的是这样的。acpi-cpufreq.ko longrun.ko powernow-k8.ko speedstep-smi.ko
不同的模块对应于不同类型的CPU,如下表所示。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
找到对应的内核模块后,用modprobe加载它。例如我的是nforce2。 # modprobe cpufreq-nforce2
注:模块名是不包含.ko的部分。如果没有出错信息,那么模块应该就加载成功了。 再按照上面的方法查询一下 # ls /sys/devices/system/cpu/cpu0
应该能看到一个名为cpufreq的文件夹。2.选择适当的调节器 调节器(Governer)是用来调节CPU频率的,让我们先看一下有那些调节器可用。
查看当前的调节器: # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
更改使用的调节器,需要加载相应的内核模块,再更改scaling_governor文件,例如:# modprobe cpufreq_ondemand
Ubuntu下需要先取得root权限。 # sudo su
提示输入密码,再执行: # echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
3.开机自动加载以上设置 1. 编辑 /etc/modules ,加入刚才modprobe挂载的内核模块 cpufreq-userspace 2. 安装sysfsutils, # sudo aptitude install sysfsutils 以超级用户权限编辑/etc/sysfs.conf # sudo gedit /etc/sysfs.conf 加入以下几行: devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand 如果是双核CPU,还应加入cpu1的内容,与cpu0类似。 4.使用powernowd管理CPU频率 除了内核模块的CPU频率管理功能外,我们也可以用软件来管理,可选的软件有: cpudynd
本 文以powernowd为例,powernowd是一个很小巧的频率管理软件,其管理方式和ondemand差不多,都是动态调节。具体就是在负载变大时 将频率调节到最大,然后在负载变小后将频率慢慢降低,降低频率时是以正弦函数曲线的方式进行的。powernowd是通过sysfs接口来调节频率的。cpufreqd cpufrequtils powernowd powersaved speedfreqd 安装powernowd: sudo aptitude install powernowd
powernowd需要使用userspace管理器。在root下执行:# echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
并且在/etc/sysfs.conf 中把 devices/system/cpu/cpu0/cpufreq/scaling_governor 设置成 userspace:devices/system/cpu/cpu0/cpufreq/scaling_governor = userspace # sudo /etc/init.d/powernowd start
这样CPU频率管理的任务就交给powernowd了。默 认情况下powernowd在INIT LEVEL 2 3 4 5下是自动启动的。另外你可以在/etc/default/powernowd中设置powernowd的各种选项,powernowd的启动脚本 /etc/init.d/powernowd会加载这些选项。 参考资料:
|
最近读者:

