安装thinkfan
thinkfan的配置非常简单,它通过读取配置文件(/etc/thinkfan.conf)中的(FAN_LEVEL, LOWER_LIMIT, UPPER_LIMIT)
三元组来实现使用温度上下限来控制风扇转速级别。底层是需要有thinkpad_acpi内核模块的支持,
内核模块通过/proc/acpi/ibm/fan这个procfs节点给用户空间提供了风扇控制的具体方法。
打开thingkpad_acpi的风扇控制
首先要打开thinpad_acpi的风扇控制支持,具体做法是在加载这个内核模块的时候给它传递一
个打开风扇控制的变量。具体做法如下:
modprobe thinkpad_acpi fan_control=1 experimental=1
要实现开机加载模块时设置,则需要在/etc/modprobe.d/下增加一个配置文件thinkpad-acpi.conf,内容:
options thinkpad_acpi experimental=1 fan_control=1
安装thinkfan
安装Ubuntu软件仓库里面的thinkfan和sysfsutils(读取和设置sysfs属性)。
aptitude install thinkfan sysfsutils
thinkfan会在系统的运行级别中添加thinkfan的后台服务,这样就可实现开机运行。
配置和激活thinkfan
阅读/etc/thinkfan.conf可以知道它是通过thinkpad_acpi提供的风扇控制接口来实现风扇控制的,
它给风扇的转速级别对应了一个上下限温度, 【 Linux公社 www.Linuxidc.com 】 在这个上下限内就设置对应的转速。
安装后发现thinkfan并没有直接生效,阅读了/etc/init.d/thinkfan脚本后发现还需要设置/etc/default/thinkfan
文件中的START=yes。
到这里,thinkpad的风扇控制就应该打开了。
玩thinkpad_acpi的风扇控制接口
Ubuntu对于Thinkpad ACPI的驱动支持相当丰富,而这个模块提供了电脑上几乎所有会发热的部件的信息。
在Shell下运行 cd /proc/acpi/ibm/进入目录。其中的文件就是acpi当前的信息,包括各个指示灯是否亮着,快捷键的状态,是否连接了外设等等。用cat [parm] > filename就可以直接往文件里写数据,这个数据会影响到电脑。而其中的thermal就是显示温度的。运行cat thermal,得到结果如下:
temperatures: 48 39 39 43 28 -128 24 -128 39 40 -128 -128 -128 -128 -128 -128
这里的结果和Thinkpad型号有关,各个数字表示的部件温度也各不相同,在thinkwiki上可以查到资料。都是网友实验出来的,没有官方资料。现在比较确定的是第一个一般是CPU温度。其中-128(就是单字节有符号整数的最小值)表示读不到温度。比如有些读取电池温度而此时电池没装,有些读取Ultrabay扩展底座温度等。
好,接下来是风扇的问题。在同一目录下运行cat fan,将显示当前风扇状态:
status: enabled
speed: 3344
level: 1
commands: level <level> (<level> is 0-7, auto, disengaged, full-speed)
commands: enable, disable
commands: watchdog <timeout> (<timeout> is 0 (off), 1-120 (seconds))
其中speed的单位是rpm,level表示转速等级。0表示不转,7最高速。
有了这两个信息之后就是根据温度控制风扇速度了。thinkfan控制软件,配置文件在/etc/thinkfan.conf
我的X200配置如下:
sensor /proc/acpi/ibm/thermal (0, 3, 3, 2, 10, 0, 10, 0, 2, 2)
(0, 0, 45)
(1, 45, 48)
(2, 48, 55)
(3, 55, 58)
(4, 58, 60)
(5, 60, 63)
(6, 63, 65)
(7, 65, 32767)
第一行表示温度值的修正。因为thinkfan根据读取到的最高温度来控制风扇。而部件温度和承受力是不一致的。比如CPU在80度下也能正常工作,而硬盘此时就会挂掉。所以对于读取到的温度值需要修正,这个括号里的数字会直接加到响应的thermal的数字上,一一对应。然后用其中修正过最大温度值进行控制。
下面的配置的格式是(level, min, max),表示温度在min和max之间的时候启动相应的风扇级别。其中0和7一定要配置,而各个级别的区间要合并完整,否则就会在特定温度下失效了。其中0级别从0开始,表示在max温度以下时关闭风扇,而7级别的max一般设成顶值,表示在min温度以上时全速运行。
最后用sudo thinkfan命令启动控制软件。随心所欲的控制温度,延长风扇寿命。
根据实际情况来看,达到0级的上限后会启动比较轻微的1级风扇,如果此时只是上上网的话,温度会马上降下来,风扇就会停止。而如果在打游戏或者大型应用的话,温度会缓缓上去,然后根据配置,风扇级别会缓缓提升,直到最高级别。
注意:
1、这个温度宁愿保守也不要因为风扇比较吵而设的很高,散热问题是笔记本第一杀手。
2、这个控制软件有时候会出错,风扇会一直转或者不转。前一种情况无所谓,后一种就比较危险。如果察觉到电脑很热而风扇没动静的话就要查看是否控制出了问题。一般重启即可