让ThinkPad寂静无声

手上有一台2010年前古董级别的ThinkPad笔记本,前段时间一切都还正常,最近开始风扇总是莫名满速,尽管电脑并没有运行太好资源的程序或观看视频。风扇机械声非常恼人,特别是在安静的实验室环境以及码代码码到心烦气燥的时候。

社区是个好地方,你想要的他都有。社区中有不少关于CPU风扇手动控制的软件供个人DIY,虽然不是面向解决风扇响声大的问题而开发,但用来解决这个问题简直堪称完美。今天这里记录自己使用的两款CPU风扇控制软件:thinkfanNoteBook FanControl。注意:软件控制风扇的前提条件是电脑必须支持acpi (Advanced Configuration and Power Management Interface)。

写在前面:

顾名思义 thinkfan 是专为ThinkPad而开发的风扇控制软件,由于不同的品牌电脑使用的风扇控制器硬件读取/写入端口不同,所以thinkfan的使用范围相对单一,其他品牌机的兼容性不得而知。NBFC (NoteBook FanController) 是一个跨平台的风扇控制服务,具有多元配置数据,可支持不同型号的Notebook,兼容性不错。

另外Thinkfan的Windows版界面设计太过简单,与Windows10的设计风格对比鲜明,因此不推荐在Windows上使用thinkfan,考虑替代产品NBFC吧。NBFC不仅设计上更加贴近时尚潮流,而且对笔记本的型号兼容性,操作起来也更加方便。相反,本文推荐在Linux上使用thinkfan而不是NBFC,原因是不管是NBFC还是thinkfan都没有Linux下的GUI版本(当然你要说使用Wine,那就另当别论啦),而且thinkfan提供online安装,NBFC却要手动编译,相比而言从安装到配置上thinkfan较thinkfan都更加适合Linux下使用。

总的来说:Thinkfan和NBFC是两个优秀的笔记本风扇控制软件,建议在Linux下使用thinkfan,在Windows下使用NBFC。

在Linux下使用thinkfan

为了方便观察使用thinkfan是否能有效控制风扇转速,建议先安装Psensor。Psensor是一款硬件状况检测软件,能够实时显示CPU,内存等主要部件的温度,包含CPU风扇当前转速。

安装thinkfan非常简单,直接使用apt or apt-get 安装即可

sudo apt install thinkfan

三个主要配置文件

/etc/thinkfan.conf

/etc/default/thinkfan

/etc/modprobe.d/thinkfan.conf

其中 /etc/modprobe.d/thinkfan.conf 文件用于加载thinkfan控制模块,该文件可能不存在,可使用touch 命令创建。在该文件中写入 以下参数

### 根据需要创建文件,这不是参数的一部分

# touch/etc/modprobe.d/thinkfan.conf 

## ------------------------------------------------

## 以下是参数

options thinkpad_acpi fan_control=1

文件/etc/default/thinkfan 设置 thinkfan的默认运行参数,为减轻管理负担可在该文件中设置开机自动加载thinkfan控制模块:修改START=no为yes

START=yes

如果只想手动管理,以下是手动加载thinkfan控制模块的命令

modprobe -rv thinkpad_acpi

modprobe -v thinkpad_acpi

文件/etc/thinkfan.conf 用于布局thinkfan的风扇调整策略 和 设置CPU温度来源。

## 这是文件中默认的8级工作模式 (级别,温度下届,温度上届)。当 温度下届 < 当前温度 < 温度上届 的时候,thinkfan工作在相应级别上。

(0,  0,  55)

(1,  48,  60)

(2,  50,  61)

(3,  52,  63)

(4,  56,  65)

(5,  59,  66)

(7,  63,  32767)   ## 保证当温度过高的时候风扇满转

软件获得的当前温度默认是通过 cat /proc/acpi/ibm/thermal 获取的当前CPU温度,我们可在/etc/thinkfan.conf中设置其他温度源以便thinkfan使用相应温度设置工作模式。其他温度源设置参考 “网友Thinkfan配置实例”。

三个配置文件设置好后,重启电脑将自动启动thinkfan服务(当/etc/default/thinkfan设置自动启动的时候)。在纯手动的情况下需执行 “加载thinkfan模块”---“开启thinkfan服务” 的步骤。手动加载模块方法见上文,手动开启服务命令如下

service thinkfan start

## 或者

/etc/init.d/thinkfan start

此时可通过安装的Psensor实时可视化查看当前各种硬件状态看thinkfan是否生效。当前的风扇工作模式可通过命令

cat /proc/acpi/ibm/fan

查询。我们也可以通过手动修改 /proc/acpi/ibm/fan 指定thinkfan的工作模式,示例如下:

echo level 0 | sudo tee /proc/acpi/ibm/fan (fan off)

echo level 2 | sudo tee /proc/acpi/ibm/fan (low speed)

echo level 4 | sudo tee /proc/acpi/ibm/fan (medium speed)

echo level 7 | sudo tee /proc/acpi/ibm/fan (maximum speed)

echo level auto | sudo tee /proc/acpi/ibm/fan (automatic - default)

echo level disengaged | sudo tee /proc/acpi/ibm/fan (disengaged)

至此thinkfan的配置基本完成。这里还有其他几个thinkfan工作模式配置供大家选择使用。

## 官方给出的样例温度配置

(0,  0,  42)

(1,  40,  47)

(2,  45,  52)

(3,  50,  57)

(4,  55,  62)

(5,  60,  67)

(6,  65,  72)

(7,  70,  77)

(127,  75,  32767)  #这一行,确保风扇全速

## 此种配置并非少写了6级风扇

(0,  0,  52)

(1,  46,  59)

(2,  54,  65)

(3,  58,  69)

(4,  62,  72)

(5,  65,  74)

(7,  68,  32767)

## 闭合式

(0,  0,  45)

(1,  45,  48)

(2,  48,  55)

(3,  55,  58)

(4,  58,  60)

(5,  60,  63)

(6,  63,  65)

(7,  65,  32767)

Windows下NBFC使用

NBFC为Windows提供了GUI版本的客户端(点击此处下载),界面清爽简洁,配置简单。NBFC与thinkfan类似,通过配置文件定义工作模式,启动后根据用户选定的配置文件中的模式设定工作。由于GUI版本配置比较直观,这里只说两点可能有帮助的建议:

1. NBFC默认适配了很多机型,基本机子都能找到对应的配置文件,如果所属机型的配置文件没有预定义,用户可以自行创建/DIY适合自己的配置。配置方法参见官方wiki。实际上,即使没有指定机型的配置文件,你几乎能在自带的配置文件列表中找到相似机型的配置文件,结合官方指南和相似机型的配置实例将大大减小配置文件设计阻力。

2. NBFC配置文件中主要需要指明的是温度读取地址和温度写入地址,这个对不同的品牌机型差异巨大,但相同机型一般不会有太大差距,配置时可根据现有同品牌机型配置进行尝试。


参考资料:

Thinkfan 官方配置说明网友的Thinkfan配置实例 | 网友的thinkfan配置实例 | 网友Thinkfan配置实例 | Thermal Sensors | 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容