问题描述
我怎样才能控制电脑的风扇速度?
在Windows上有一个叫做SpeedFan的精彩程序。
最佳解决方法
注意开始之前:
此功能取决于您的硬件和软件。如果您的硬件不支持风扇速度控制,或者不显示给操作系统,那么很可能您无法使用此解决方案。如果确实如此,但软件(又名内核)不知道如何控制它,那么你没有运气。
-
安装lm-sensors和fancontrol软件包。
-
配置lm-sensors
-
在终端类型
sudo sensors-detect
中,对所有是/否问题回答YES。 -
在sensors-detect的末尾,将显示需要加载的模块列表。键入”yes”将sensors-detect插入到/etc /modules中,或者自己编辑/etc /modules。
-
运行
sudo service module-init-tools restart
。这将读取您在步骤3中对/etc/modules
所做的更改,并将新模块插入到内核中。-
注意:如果您运行的是Ubuntu 13.04或更高版本,则此第三步命令应由
sudo service kmod start
替换。
-
-
-
配置风扇控制
-
终端类型
sudo pwmconfig
。该脚本将停止每个风扇5秒钟,以确定哪个风扇可以由哪个PWM控制。脚本循环遍历所有风扇后,可以配置哪个风扇对应于哪个温度。 -
在我的情况下,我将间隔设置为2秒。
-
-
设置fancontrol服务
-
运行
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-sensors和fancontrol软件包:
sudo apt-get install lm-sensors fancontrol
用于配置它们的文档可在其手册页上找到。
这是一个应该由ACPI-compliant BIOS提供的功能,但似乎大多数主板供应商都不屑遵循该标准。
第四种方法
对于多台戴尔计算机,您可以安装i8kutils软件包:
sudo apt install i8kutils
如果您有戴尔的non-tested(如我的戴尔XPS 14z),则可能必须强制加载内核模块:
sudo modprobe i8k force=1