Archlinux风扇设置
在笔记本(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. 简单模式:
# 配置传感器
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风扇设置的更多相关文章
- [adminitrative][archlinux][setfont] 设置console的字体大小
电脑的分辨率高了之后,用命令行进入的时候,完全看不清楚,是否容易导致眼瞎. 第一步便把字体调大就成了很必要的操作. 使用一个命令能马上生效: setfont 使用配置文件 /etc/vconsole. ...
- Archlinux休眠设置
2017-03-11 更新: 优化部分文字描述; 默认情况下禁用 swap 分区, 当执行休眠操作时先启用 swap 分区, 然后再执行休眠操作(给 /usr/bin/{swapon,swapoff} ...
- (二 -5) 天猫精灵接入Home Assistant-自动发现Mqtt设备--电风扇
官网:https://www.home-assistant.io/components/fan.mqtt/ 1 添加配置文件 要在安装中启用MQTT风扇,请将以下内容添加到您的configuratio ...
- 轻量级桌面 openbox + tint2 + conky + stalonetray + pcmanfm + xcompmgr
openbox+tint2+pnmixer+conky=轻量级archlinux桌面环境设置备忘 缘起 机器上的Ubuntu 12.04有一段时间没有使用了,最近在用的时候发现频繁死机的情况,开始以为 ...
- 3D打印切片软件Cura及CuraEngine原理分析
引言 年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件. 自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的.我一向都觉得比起 ...
- Linux命令总结大全,包含所有linux命令
使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...
- 为archlinux终端ls不同类型文件设置不同显示颜色
title: 为archlinux终端ls不同类型文件设置不同显示颜色 date: 2017-11-13 20:53:55 tags: linux categories: linux archlinu ...
- ArchLinux 设置时间同步和硬件时间同步错误 No usable clock interface found
笔记本不知道怎么了,总是时间对不上 硬件时间也设置不了,只能时间同步了 手动时间同步 ntpdate即可,ntp服务器在这里用这两个就好了 cn.ntp.org.cn 或 edu.ntp.org.cn ...
- ArchLinux下LXDE的安装与设置心得
安装 首先安装基本的桌面环境: $ sudo pacman -S lxde 奇怪的是默认并没有安装面板lxpanel,而且源里也没有,只好从AUR安装之: $ yaourt -S lxpanel-sv ...
随机推荐
- C#的泛型委托Predicate/Func/Action
Predicate<T> 是一个委托,它代表了一个方法,它的定义是: namespace System { // 摘要: 表示定义一组条件并确定指定对象是否符合这些条件的方法. ...
- 杭电oj2012-2021
2012 素数判定 #include <stdio.h> #include <math.h> int main() { int x,y,i,j,a,flag; while(s ...
- eclipse块编辑
1. Windows > Preferences然后键入keys或浏览到General > Keys.根据该键输入filter text的block selection快速找到快捷方式上市 ...
- FolderSize磁盘占用详情工具
FolderSize
- flask框架基本使用(4)(钩子函数,异常,命令行运行)
flask 框架基本使用(1):https://www.cnblogs.com/chichung/p/9756935.html flask 框架基本使用(2):https://www.cnblogs. ...
- PDF笔记:内嵌字体
前几天投文章的时候,把docx文件保存为PDF提交.但是格式检查始终在报一个关于“font embed”的错误,意思是PDF文件中有些字体没有内嵌. 为了减小文件大小,WORD保存为PDF的时候默认不 ...
- [BZOJ 1806] Miners 矿工配餐
Link: BZOJ 1806 传送门 Solution: 为了使状态包含每个节点前所有必须的信息: 设$dp[i][a1][a2][b1][b2]$为配送到第$i$个,一厂前两个为$a1,a2$,二 ...
- 为添加了自定义域名的GitHub Pages添加SSL,启用强制HTTPS(小绿锁)
直奔主题 为什么要使用https协议? 提高网站访问安全性,网络连接都是加密的 (PS:虽然SSL并不是无懈可击的,但是我们应该尽可能提高窃听成本). 目前越来越多的浏览器会判断当前站点支不支持htt ...
- C语言基础之注释与常见错误
总结起来,注释有三种: 1.单行注释 1: //哈哈 单行注释 2.多行注释 1: /* 2: asdfasdfasdfasdfasdf 3: */ 其中多行注释如果这样写 1: /* 2: * 函数 ...
- iOS开发 Swift开发数独游戏(四) 游戏界面的界面与逻辑
一.游戏界面涉及到的功能点 1)数独格子的建模 (1)绘制数独格子要考虑到标记功能 所以要在每个格子内预先塞入9个标记数字,仅数独格子算下来就有9*9*9=729个格子且存在大量嵌套(这导致我在操作S ...