QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1377|回复: 8

请问如何让CPU在空闲时自动挂起

[复制链接]
发表于 2005-5-16 04:09:27 | 显示全部楼层 |阅读模式
系统为fc3,运行正常,就是本本的风扇转个不停,但CPU占用率几乎为0。
而以前在win2000下,只要CPU闲置,风扇几乎每隔一两分钟才转上一小会儿。
所以请问怎么让linux像win2000一样在CPU空闲时执行挂起指令以减少散热?
多谢多谢!
发表于 2005-5-16 04:12:00 | 显示全部楼层
你是笔记本吗?什么cpu?有没有加载speedstep/powernow之类的内核驱动模块?有没有运行cpufreqd之类的根据负载改变cpu频率的程序?
回复

使用道具 举报

 楼主| 发表于 2005-5-16 04:15:03 | 显示全部楼层
[quote:8d4c855f8a="erzhong"]你是笔记本吗?什么cpu?有没有加载speedstep/powernow之类的内核驱动模块?有没有运行cpufreqd之类的根据负载改变cpu频率的程序?[/quote]

是笔记本,P4 2.0G。
装好fc3后什么都没做的系统。
需要编译内核吗?
回复

使用道具 举报

发表于 2005-5-16 06:13:46 | 显示全部楼层
你需要加载对应Mobile P4的speedstep内核模块,安装cpufreqd之类的控制程序。如果你安装的内核里有这相应的模块,就没必要重新编译内核。
lsmod看看结果里有没有speedstep之类,或者是p4-clockmod之类。
我在网上查到,P4对应的内核模块好像是p4-clockmod,要加载这个模块,并且安装cpufreqd之类的控制程序东西。

我用的是Ubuntu5.04,笔记本cpu是Pentium M 1.7GHz,控制cpu频率的内核模块是speedstep-centrino。似乎是系统自己认出来并自动加载的。cpu频率是由powernowd管理的。原来在使用Mandrake10.1时,是在/etc的某个内核模块配置文件里加上这个,然后安装cpufreqd,设置好后,在mandrake控制中心里让这个服务在开机时自动运行。

我没用过FedoraCore,所以也不知道FedoraCore的内核模块加载是在那里设置的。你得自己查查。cpufreqd应该会有为Fedora打的包。装好之后你看看它的说明文档,配置还是比较简单的。
回复

使用道具 举报

 楼主| 发表于 2005-5-16 18:27:35 | 显示全部楼层
谢谢!
开始用lsmod查不到相关模块,后来重新编译内核(2.6.11.6),把speedstep和cpufreqd都加上去了,
但结果lsmod还是查不到,而且运行新内核好像也是风扇转的厉害:
Module                  Size  Used by
autofs4                14852  0
ipt_REJECT              5632  1
ipt_state               1664  1
ip_conntrack           35896  1 ipt_state
iptable_filter          2304  1
ip_tables              17664  3 ipt_REJECT,ipt_state,iptable_filter
nls_utf8                1792  1
nls_cp936             126336  1
vfat                   11008  1
fat                    34972  1 vfat
button                  5008  0
battery                 7684  0
asus_acpi               9620  0
ac                      3460  0
ohci1394               29700  0
ieee1394               87604  1 ohci1394
ohci_hcd               18184  0
snd_intel8x0           27968  0
snd_ac97_codec         71416  1 snd_intel8x0
snd_pcm_oss            47392  0
snd_mixer_oss          16896  1 snd_pcm_oss
snd_pcm                76552  3 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_timer              19716  1 snd_pcm
snd                    43748  6 snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore               6880  1 snd
snd_page_alloc          7428  2 snd_intel8x0,snd_pcm
sis900                 17028  0
ext3                  113672  3
jbd                    46744  1 ext3
回复

使用道具 举报

发表于 2005-5-16 22:31:15 | 显示全部楼层
我不知道FC3自带的内核是什么样的,不过一版新发行版的内核里都应该有这类的模块。起码Mandrake和Ubuntu都有。

你的cpu是p4,所以speedstep-centrino不是给你的cpu用的,而是给pentium m的cpu用的。P4用的好象是是p4-clockmod。cpufreqd应该有为FC3做的rpm包。Mandrake和Ubuntu都有这个包。

多用google搜索一下吧。当年我的T23的speedstep就是google搜索装好的。而且这样装好后,以后其他这类问题就很好解决了。
回复

使用道具 举报

 楼主| 发表于 2005-5-17 14:44:01 | 显示全部楼层
谢谢!
我已经把p4-clockmod、speedstep_smi、cpudyn加载上了,又添加了 gnome-cpufreq-applet,能看到cpu工作在60%-100%之间自动调整。
可是风扇还是停不下来,我明明把“make cpu idle call when idle”编进了内核啊?为什么没有作用呢?
另外,请问如何把cpu固定在60%的工作频率下?多谢多谢!
回复

使用道具 举报

发表于 2005-5-18 00:58:45 | 显示全部楼层
如果你想让cpu固定在一个频率,那就必要用cpudyn。用google查一下,似乎是在/sys/devices/system/cpu/cpu0/下面,用echo的命令直接改。你可以在网上查一下,具体针对FedoraCore3的命令该是什么样的。
至于风扇,似乎和你的系统温度和风扇管理有关。你看一下/proc/acpi/thermal_zone/THM0/,用cat看一下里面各个文件的值,再在网上查查吧。
比如我的机器
cat /proc/acpi/thermal_zone/THM0/temperature
结果是
temperature:             40 C
cat /proc/acpi/thermal_zone/THM0/cooling_mode
结果是<setting not supported>
cooling mode:   passive
我的笔记本的风扇管理是有IBM的内嵌管理芯片管理的,与操作系统无关。内嵌管理芯片自动根据系统温度控制风扇转速。你的笔记本是什么样的,你得自己查查。还有,如果你能够通过操作系统管理风扇运作,一定要小心。温度过高对系统可是很危险的。
回复

使用道具 举报

 楼主| 发表于 2005-5-18 04:36:48 | 显示全部楼层
我在系统上运行结果是这样:
cat /proc/acpi/thermal_zone/THRM/temperature
temperature:             42 C
cat /proc/acpi/thermal_zone/THRM/cooling_mode
<setting not supported>
cooling mode:   active
好像都没问题

又设定了echo 1200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
这下cpu终于停在了1.2G上,活活
而且出人意料的是风扇也正常了,和win2000上一样,每隔近两分钟才转一次
呵呵,好开心,没想到这么快就能让linux在本本上安定了
实在非常非常感谢erzhong兄的指点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 05:47 , Processed in 0.052660 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表