在笔记本(ThinkPad T440)连续两天因过热而死机后, 对内核的风扇控制算法果断失去信心.

风扇的用户层控制接口是 /proc/acpi/ibm/fan, 但为防止用户控制不当烧坏机器, 默认情况下并没有对用户开放控制权. 这个由内核模块 thinkpad_acpi 控制, 可在加载该内核模块时传递参数 fan_control=1 打开风扇控制开关. 如果安装了 thinkfan 的话, 它包含文件 /usr/lib/modprobe.d/thinkpad_acpi.conf, 其文件内容为:

options thinkpad_acpi fan_control=1

这样以后在开启启动加载 thinkpad_acpi 模块时会自动传递参数 fan_control=1 以便打开用户层控制开关.

然后就可以向 /proc/acpi/ibm/fan 写如特定数据控制风扇了, 比如说:

  • echo enable/disable > /proc/acpi/ibm/fan: 启用/禁用风扇;
  • echo level 1-7 > /proc/acpi/ibm/fan: 设置风扇转速为 1-7 级, 等级越高转速越大;
  • echo level auto > /proc/acpi/ibm/fan: 由内核模块控制风扇转速(这就是默认配置, 烧死机了...);
  • echo level full-speed/disengaged > /proc/acpi/ibm/fan: 风扇启动最大转速(要的就是这种情况~~~);

注: /proc/acpi/ibm/fan 还支持其他很多控制参数, 详情可查阅 thinkpad_acpi 模块文档.

上面提到的 thinkfan 就是一个通过传感器检测硬件温度来实现自动控制风扇转速的工具. 它的配置文件是 /etc/thinkfan.conf, 支持两种格式:

  1. 简单模式;
  2. 复杂模式.

1. 简单模式:

# 配置传感器
hwmon /sys/devices/virtual/thermal/thermal_zone0/temp # 配置风扇控制接口(默认是: /proc/acpi/ibm/fan)
tp_fan /proc/acpi/ibm/fan # 配置风扇等级与温度之间的关系
(0, 0, 55)
(1, 48, 60)
(2, 50, 61)
(3, 52, 63)
(4, 56, 65)
(5, 59, 66)
(7, 63, 32767)

配置风扇等级与温度之间的关系时, 每一行分三列, 第一列是风扇转速等级, 第二列和第三列是启用当前等级的最低和最高温度. 注意每一级的最低和最高温度与上一级的最高温度和下一级的最低温度都有重合. 当配置有多个传感器时, 取值最大(温度最高)的一个.

这种模式配置简单, 但只支持配置 1-7 等级的转速, 不能配置 auto/full-speed.

2. 复杂模式:

复杂模式就要复杂一点, 它支持配置多个传感器, 支持为每个传感器设置温度阈值. 最重要的是, 它支持 auto/full-speed.

为了省电和降温, 就配置了两条温度规则:

# 配置传感器
hwmon /sys/devices/virtual/thermal/thermal_zone0/temp # 配置风扇控制接口(默认是: /proc/acpi/ibm/fan)
tp_fan /proc/acpi/ibm/fan { "level auto"
(0)
(55)
} { "level disengaged"
(50)
(100)
}

配置 OK 后重启 thinkfan 服务使之生效.


我最开始用的是 简单模式, 在最初几天相安无事, 但后来又发生了过热死机的问题, 于是切换到 复杂模式 的配置, 就靠上面两条规则达到低温省电高温全速转起来的效果~~~

参考链接:

Archlinux风扇设置的更多相关文章

  1. [adminitrative][archlinux][setfont] 设置console的字体大小

    电脑的分辨率高了之后,用命令行进入的时候,完全看不清楚,是否容易导致眼瞎. 第一步便把字体调大就成了很必要的操作. 使用一个命令能马上生效: setfont 使用配置文件 /etc/vconsole. ...

  2. Archlinux休眠设置

    2017-03-11 更新: 优化部分文字描述; 默认情况下禁用 swap 分区, 当执行休眠操作时先启用 swap 分区, 然后再执行休眠操作(给 /usr/bin/{swapon,swapoff} ...

  3. (二 -5) 天猫精灵接入Home Assistant-自动发现Mqtt设备--电风扇

    官网:https://www.home-assistant.io/components/fan.mqtt/ 1 添加配置文件 要在安装中启用MQTT风扇,请将以下内容添加到您的configuratio ...

  4. 轻量级桌面 openbox + tint2 + conky + stalonetray + pcmanfm + xcompmgr

    openbox+tint2+pnmixer+conky=轻量级archlinux桌面环境设置备忘 缘起 机器上的Ubuntu 12.04有一段时间没有使用了,最近在用的时候发现频繁死机的情况,开始以为 ...

  5. 3D打印切片软件Cura及CuraEngine原理分析

    引言 年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件. 自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的.我一向都觉得比起 ...

  6. Linux命令总结大全,包含所有linux命令

    使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...

  7. 为archlinux终端ls不同类型文件设置不同显示颜色

    title: 为archlinux终端ls不同类型文件设置不同显示颜色 date: 2017-11-13 20:53:55 tags: linux categories: linux archlinu ...

  8. ArchLinux 设置时间同步和硬件时间同步错误 No usable clock interface found

    笔记本不知道怎么了,总是时间对不上 硬件时间也设置不了,只能时间同步了 手动时间同步 ntpdate即可,ntp服务器在这里用这两个就好了 cn.ntp.org.cn 或 edu.ntp.org.cn ...

  9. ArchLinux下LXDE的安装与设置心得

    安装 首先安装基本的桌面环境: $ sudo pacman -S lxde 奇怪的是默认并没有安装面板lxpanel,而且源里也没有,只好从AUR安装之: $ yaourt -S lxpanel-sv ...

随机推荐

  1. python爬虫beautifulsoup4系列2【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 本篇详细介绍beautifulsoup4的功能,从 ...

  2. #417 Div2 E (树上阶梯博弈)

    #417 Div2 E 题意 给出一颗苹果树,设定所有叶子节点的深度全是奇数或偶数,并且包括根在内的所有节点上都有若干个苹果. 两人进行游戏,每回合每个人可以做下列两种操作中的一种: 每个人可以吃掉某 ...

  3. Android APP打包时,出错:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....

    "app_name" is not translated in "af" (Afrikaans), "am" (Amharic), &quo ...

  4. tomcat重启应用和tomcat重启是两回事。热部署就是重启应用

    tomcat重启应用和tomcat重启是两回事.热部署就是重启应用 tomcat重启应用和tomcat重启是两回事.热部署就是重启应用 tomcat可以设置检测到新的class后重启该应用(不是重启t ...

  5. 【spring boot】集成了druid后,同样的mybatis模糊查询语句出错Caused by: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'name LIKE '%' ? '%'

    druid版本是 <!-- https://mvnrepository.com/artifact/com.alibaba/druid 数据库连接池--> <dependency> ...

  6. vs2012 webservice创建

    第一步:打开VS2012,新建空项目,注意选择.NET Framework的版本.这里我选择的是.NET Framework 4 新建好项目后,在项目中添加一个WebService项 打开这个文件,我 ...

  7. lodop 控件实现web打印功能

    WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是“空手套”式的开 ...

  8. 64位Ubuntu 14.04 安装wps

    因为wps还没有提供64位版本号的wps,13.10開始又取消了ia32-libs的支持,经过自己測试,能够使用下面命令完毕安装 sudo dpkg -i 包名 sudo apt-get -f ins ...

  9. swift初探(供objective c开发人员參考)

    6月初的wwdc苹果推出了一门新的开发语言swift.系统10.9.3以上安装xcode6 beta版就可以体验swift. 苹果公司做了尽可能多的努力让这门语言迅速成为一个工业级的有用编程语言,而不 ...

  10. ES6里关于函数的拓展(三)

    一.箭头函数 在ES6中,箭头函数是其中最有趣的新增特性.顾名思义,箭头函数是一种使用箭头(=>)定义函数的新语法,但是它与传统的JS函数有些许不同,主要集中在以下方面: 1.没有this.su ...