昨晚看了俩小时电影,关了播放器之后发现GPU温度飙到80多摄氏度。手摸在键盘上都能感觉到烧烧的,风扇出风口的铜片很烫手。为了小黑的健康,我决定折腾一下。
我的小黑是Thinkpad T61p,在装Ubuntu的时候相信是默认安装好thinkpad_acpi的,但是默认情况下,风扇的转速都是在“自动档”上的。要换成手动档你必须要在/etc/modprobe.d/下添加一个文件thinkpad_acpi.conf(老版本的可能是叫options)。在文件中要放:
接着重载模块:
这样一来就可以直接通过修改/proc/acpi/ibm/fan来改变转速了:
cat /proc/acpi/ibm/fan可以查看如何命令风扇:
commands: enable, disable
commands: watchdog <timeout> (</timeout><timeout> is 0 (off), 1-120 (seconds))
由此,可以根据你的需要来控制风扇了。
如果想要自定义自动化就有好多种办法了。一种比较简单的办法是直接安装thinkfan,在 /etc/thinkfan.conf修改好阀值和对应的转速级别(0–7 level值)。默认情况下,thinkfan是在deamon模式下运行的。不过有个缺点是好像它只能操控0–7的等级,不可以auto或full-speed。
还有一种自动化方法是使用自动脚本,但是我从源代码看貌似也只是能控制0–7的转速。
其实0–7或auto在常规任务的时候是足够的,温度一般在40–60度之间,但是像看电影这种损耗资源的任务就会开始升温。0–7的转速是不够的(level 7的转速应该只是3000多转吧),而且貌似这些软件和脚本检测的温度数据都只是CPU温度。所以几时GPU温度升到80度风扇还是慢慢悠悠两三千转……要解决这个问题其实也很方便。因为温度监测的接口就在/sys/devices/platform/thinkpad_hwmon/temp*_input,各部分温度对应的ID可以到这张网页上找到。
有了这些,相信写个适合自己小黑的bash code已经没有多少问题了。当然最佳还是利用现成的代码,稍作修改即可。
–EOF–


Pingback: wiloon