当前位置: 首页>>技术教程>>正文


如何控制风扇速度?

, ,

问题描述

我怎样才能控制电脑的风扇速度?

在Windows上有一个叫做SpeedFan的精彩程序。

最佳解决方法

注意开始之前:

此功能取决于您的硬件和软件。如果您的硬件不支持风扇速度控制,或者不显示给操作系统,那么很可能您无法使用此解决方案。如果确实如此,但软件(又名内核)不知道如何控制它,那么你没有运气。


  1. 安装lm-sensorsfancontrol软件包。

  2. 配置lm-sensors

    1. 在终端类型sudo sensors-detect中,对所有是/否问题回答YES。

    2. 在sensors-detect的末尾,将显示需要加载的模块列表。键入”yes”将sensors-detect插入到/etc /modules中,或者自己编辑/etc /modules。

    3. 运行sudo service module-init-tools restart。这将读取您在步骤3中对/etc/modules所做的更改,并将新模块插入到内核中。

      • 注意:如果您运行的是Ubuntu 13.04或更高版本,则此第三步命令应由sudo service kmod start替换。

  3. 配置风扇控制

    1. 终端类型sudo pwmconfig。该脚本将停止每个风扇5秒钟,以确定哪个风扇可以由哪个PWM控制。脚本循环遍历所有风扇后,可以配置哪个风扇对应于哪个温度。

    2. 在我的情况下,我将间隔设置为2秒。

  4. 设置fancontrol服务

    1. 运行sudo service fancontrol start。这也将使fancontrol服务在系统启动时自动运行。

在我使用CPU的情况下:

Settings for hwmon0/device/pwm2:  
Depends on hwmon0/device/temp2_input  
Controls hwmon0/device/fan2_input  
MINTEMP=40  
MAXTEMP=60  
MINSTART=150  
MINSTOP=0  
MINPWM=0  
MAXPWM=255 

次佳解决方法

如果您拥有ThinkPad,那么有一款名为thinkfan的软件可以完成这项工作。正如名称明显表明的那样,它专门用于ThinkPad(thinkpad_acpi)。

thinkfan软件在标准的ubuntu软件库中可用,但它需要几个步骤来配置。

这是一个简单的step-by-step指南:

http://staff.science.uva.nl/~kholshei/thinkfan_guide/

(这基本上是这个德国指南的翻译版本:http://thinkwiki.de/Thinkfan)


帖子相关信息:

第1步。安装thinkfan软件和传感器:

sudo apt-get install thinkfan lm-sensors

第2步:确保守护程序通过编辑thinkpad.conf文件来控制风扇:

sudo nano /etc/modprobe.d/thinkfan.conf

通过添加以下行:

options thinkpad_acpi fan_control=1

第3步。通过编辑文件,在start-up中自动加载守护进程:

sudo nano /etc/default/thinkfan

确保START键设置为yes,即应该有一行说:

START=yes

第4步。检测您的笔记本电脑的传感器:

sudo sensors-detect

只要按Enter键提示,只需选择默认答案。

第5步。加载新模块。从Ubuntu 13.10这完成了:

sudo service kmod start

而对于像13.04这样的以前的版本,你需要做的是:

sudo service module-init-tools start

步骤6.找出哪些传感器正在使用中:

sensors

(指示0度的不使用,我不知道为什么那些也是”detected”)。记住哪些正在使用中。

第7步。找出这些传感器的完整路径:

find /sys/devices -type f -name "temp*_input"

输出应该是/sys /devices /等路径列表。

第8步。Copy-paste将传感器的路径导入配置文件/etc/thinkpad.conf。要做到这一点,首先打开文件:

sudo nano /etc/thinkfan.conf

应该已经有一个像

#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) 

(#符号表示该行被注释掉)。添加一行以传感器(不带#符号)和copy-paste开始的第一个传感器。如果您有多个传感器,请重复此操作。例如,在我的机器上,步骤7中的输出产生

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp3_input
/sys/devices/platform/thinkpad_hwmon/temp4_input
/sys/devices/platform/thinkpad_hwmon/temp5_input
/sys/devices/platform/thinkpad_hwmon/temp6_input
/sys/devices/platform/thinkpad_hwmon/temp7_input
/sys/devices/platform/thinkpad_hwmon/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp8_input
/sys/devices/platform/thinkpad_hwmon/temp2_input
/sys/devices/platform/coretemp.0/temp4_input
/sys/devices/platform/coretemp.0/temp2_input 

在我的机器中使用的是第一行和最后两行中的那些,所以我添加了三行:

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input 

第9步。最后,我们可以在配置文件中设置风扇速度级别。如果它尚未打开,请打开/etc/thinkpad.conf文件。

sudo nano /etc/thinkfan.conf

我在ThinkPad x201上使用的风扇级别为:

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767) 

最后一行确保全扇速(127 = “disengaged”,即未调节)。你可以摆弄这些关卡以适应你的需要/愿望,但请小心!

第10步。重新启动。一切都应该现在工作。为了检查thinkpad是否运行正常,请使用

sudo thinkfan -n

以详细模式启动thinkfan。您可能首先要停止thinkfan守护进程:

sudo /etc/init.d/thinkfan stop

如果您想要再次启动thinkfan守护进程,请输入:

sudo /etc/init.d/thinkfan start

为了完整,我的/etc/thinkfan.conf配置文件是:

# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#

# I use this on my T61p:
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

#(0, 0, 55)
#(1, 48, 60)
#(2, 50, 61)
#(3, 52, 63)
#(4, 56, 65)
#(5, 59, 66)
#(7, 63, 32767)


# My settings for my ThinkPad X201: (kris)

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767)

第三种解决方法

安装并配置lm-sensorsfancontrol软件包:

sudo apt-get install lm-sensors fancontrol

用于配置它们的文档可在其手册页上找到。

这是一个应该由ACPI-compliant BIOS提供的功能,但似乎大多数主板供应商都不屑遵循该标准。

第四种方法

对于多台戴尔计算机,您可以安装i8kutils软件包:

sudo apt install i8kutils

如果您有戴尔的non-tested(如我的戴尔XPS 14z),则可能必须强制加载内核模块:

sudo modprobe i8k force=1

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/355.html,未经允许,请勿转载。