thinkpad X61风扇控制

夏天天气比较热, 笔记本散热问题比较突出. 不知道从什么时候开始, 我的x61在编译或用Virtualbox等比较占CPU的情况下, 会自动关机. 看/var/log/syslog, 发现有这么一行提示:
Critical temperature reached (128 C), shutting down

CPU温度128摄氏度? 太高了, 可以煎蛋了, 呵呵

Slackware带了lm-sensors, 其中有fancontrol脚本, 看了一下, 就是判断pwm和fan的值, 修改pwm参数来控制风扇. 但是用起来还是偶尔会出现自动关机的情况. 这个脚本并没有在温度极端情况下, 把风扇速度开到最大的功能.

所以我写了一个脚本, 10秒钟检测一次CPU温度,
在CPU超过一定温度的时候, 如90度, 把风扇设置为full-speed模式.
在降低到一定温度, 如60度, 把风扇设置为auto模式, 由BIOS控制风扇.
可以避免极端情况下CPU过热, 不过full-speed风扇声音可真大!

脚本/etc/rc.d/rc.fan, 在rc.local里面调用(控制风扇毕竟有一定风险, 请慎用):

#!/bin/bash                            
#DEBUG=1                               
tsens=/sys/class/hwmon/hwmon0/device/temp1_input
fan=/proc/acpi/ibm/fan
mint=60
maxt=90
while true
do
        read tval < ${tsens}
        let tval="($tval+500)/1000"

        level=$(cat $fan | grep "level:" | sed "s/level:\t\t//")
        if [ ! -z $DEBUG]
        then
                echo "temp  = $tval"
                echo "level = $level"
        fi

        if [ $level != "disengaged" ] && (( $tval >= $maxt ))
        then
                echo "to full speed"
                echo level disengaged > $fan
        fi

        if [ $level != "auto" ] && (( $tval <= $mint ))
        then
                echo "to auto speed"
                echo level auto > $fan
        fi

        read < <(exec sleep 10)
done
 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值