免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6570 | 回复: 5
打印 上一主题 下一主题

[FreeBSD] FreeBSD下thinkpad降频及风扇控制[转自www.cqumzh.cn] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-07 09:54 |只看该作者 |倒序浏览
目的:cpu降频,控制风扇当cpu超过某一温度时才转,cpu低于这一温度不转.
环境:FreeBSD 7.0-release,thinkpad r61e(cpu: intel celeron-m).

1 加入ibm的acpi支持
需要内核有(默认的内核已经支持)
device acpi
device acpi_ibm
编辑/boot/loader.conf 加入下面一行,是为了在启动时加入acpi_ibm的模块.
#vi /boot/loader.conf
acpi_ibm_load="YES"

2 cpu降频支持
需要内核有(默认的内核已经支持)
device cpufreq
编辑/etc/rc.conf 加入下面二行,是为了在启动时自动启动powerd进程
#vi /etc/rc.conf
powerd_enable="YES"  #表示开机自动启动powerd进程
powerd_flags="-a adaptive -b adaptive -n adaptive"  #表示在有外接电源时,电池时,当外接电源的状态未知的情况都自动调节cpu频率(-a表示AC,即外接电源,-b表示电池,-n表示当AC的状态未知的情况,adaptive表示自动调节).

重启之后,输入命令
#top    #查看系统进程和其他信息
会看到powerd进程。
用下面的命令分别查看cpu的当前频率、温度、风扇速度.你会看到风扇一直在转.
#sysctl -a | grep dev.cpu.0.freq
#sysctl -a | grep temperature
#sysctl -a | grep fan_speed

sysctl 是一个用来在系统运行时查看及调整系统参数的工具,它的配置文件为/etc/sysctl.conf,要使更改的参数开机生效,需要写入到/etc/sysctl.conf文件中.
不是所有的参数都可以调,有些参数要调整必须重启.
上面的命令是用sysctl -a输出所有的参数,通过grep筛选出含有dev.cpu.0.freq temperature fan_speed的参数.
3 cpu风扇速度控制
(1)安装perl和perl的Proc::Daemon模块
先查看是否安装了perl
#pkg_info | grep perl
如果没有输出,说明没有安装,用下面命令安装
#pkg_add -r perl  
下面安装Proc::Daemon模块
#perl -MCPAN -e shell
一直回车,当问到选mirror站点的时候选亚洲-中国-第一个站(只有一个站),选的时候是输入它们前面的数字,这之后还有一个选备用mirror的(因为前一个站点的软件可能不全),输入ftp://ftp.cpan.org/pub/CPAN/,回车以后,它会下载一些东西
当出现cpan>时,输入
install Proc::Daemon
来安装Proc::Daemon模块,安装完后,输入exit退出安装模块的界面
如果中间出错,可以删除Config.pm文件,命令如下
#rm /usr/local/lib/perl5/5.8.8/CPAN/Config.pm
再重新安装模块.

(2)风扇控制的脚本
fancontrol是控制风扇速度的perl脚本(这个脚本我是根据网上的稍微修改的,它的原始程序不能运行),fancontrol.sh是用于让fancontrol在开机自动启动的sh脚本.
假定这两个脚本下载在/tmp目录下
#cp /tmp/fancontrol /usr/local/bin   #把fancontrol拷贝到/usr/local/bin/目录下面
#chmod 555 /usr/local/bin/fancontrol #使fancontrol的权限为555(即属主,文件所属的组,其他用户的权限都为:读和执行,没有写的权限)
#cp /tmp/fancontrol.sh /usr/local/etc/rc.d/
#chmod 555 /usr/local/etc/rc.d/fancontrol.sh

重启或者这个时候手动启动风扇控制进程, 输入
#/usr/local/etc/rc.d/fancontrol.sh start
查看进程是否启动,输入
#top
会发现perl5.8.8的进程.
用sysctl查看
#sysctl -a | grep dev.cpu.0.freq
#sysctl -a | grep temperature
#sysctl -a | grep fan_speed
你会发现有时dev.acpi_ibm.0.fan_speed为0

注:为了上传,附件后缀改为zip,它们不是压缩文件,请去掉后缀即可.

[ 本帖最后由 tyqchina 于 2009-3-7 09:57 编辑 ]

fancontrol.sh.zip

230 Bytes, 下载次数: 140

fancontrol.zip

5.24 KB, 下载次数: 137

论坛徽章:
0
2 [报告]
发表于 2009-03-07 10:55 |只看该作者
谢谢楼主分享

论坛徽章:
0
3 [报告]
发表于 2010-07-28 22:36 |只看该作者
先要装perl,我试一下。

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
4 [报告]
发表于 2010-07-30 21:53 |只看该作者
回复 3# chengqingtanyue


    perl不是系统自带的吗

论坛徽章:
0
5 [报告]
发表于 2010-07-31 01:49 |只看该作者
回复  chengqingtanyue


    perl不是系统自带的吗
beyondfly 发表于 2010-07-30 21:53



    刚学ob,不了解,不好意思。

论坛徽章:
2
IT运维版块每日发帖之星
日期:2015-10-05 06:20:00操作系统版块每日发帖之星
日期:2015-10-05 06:20:00
6 [报告]
发表于 2010-07-31 16:15 |只看该作者
嗯,这个要好好关注下。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP