x61风扇: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_inputfan=/proc/acpi/ibm/fanmint=60maxt=90while truedo 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  

相关推荐

相关文章