问题描述
我知道有一种叫做fancontrol的东西,可以让你控制系统通风的速度。因为我的笔记本电脑非常容易升温,所以我想让我的粉丝旋转得更快一些。我发现的所有教程和内容都是旧版本的Ubuntu,似乎不再适用了。
任何人都可以向我解释或给我一个很好的链接,我如何让它在Ubuntu上工作?不同的东西也有同样的效果。
最佳解决思路
i8kutils适用于控制戴尔Vostro 3350笔记本电脑的风扇。
# For Dell laptop only:
$ sudo apt-get install i8kutils
$ i8kfan 1 2 # Set the left-fan at low speed(1); the right one at high speed(2).
次佳解决思路
您最有可能通过本答案中给出的方法覆盖您的i8kctl风扇命令来解决您的问题。为了完整起见,我将在戴尔笔记本电脑上提供有关风扇控制的一般说明,以及i8kutils
的完整说明。
什么可能不会起作用
两种常见的和straight-forward控制笔记本电脑风扇的方法是通过ACPI和PWM引脚,不幸的是:
-
戴尔笔记本电脑缺乏ACPI风扇控制功能(* 1)
-
因此,尝试使用ACPI启动参数等将失败
-
-
据我所知,戴尔Latitude笔记本电脑缺乏pwm可控风扇(* 2)
-
因此,
fancontrol
/pwmconfig
程序将无法正常工作
-
使用i8kutils
但是,有一个名为i8kutils
的软件包,用于通过SMM BIOS控制Dell Inspiron笔记本电脑上的风扇。一些用户也报告了他们的戴尔Laitude笔记本电脑的成功(我是戴尔Latitude E7440上的其中之一) – 但是,通常需要一个技巧来摆脱干扰BIOS风扇控制。根据以前的评论你也会受到影响。
安装i8kutils
:
$ sudo apt-get install i8kutils
试试吧:
$ i8kfan 2 2 # set to max speed
$ i8kfan 0 0 # set to 0 speed
……听听它是否有效。
禁用BIOS风扇控制
如果它有效,但其他一些东西正在反击设定的速度(戴尔Latitude笔记本电脑上的许多用户报告),这是由于计划的SMM会话设置风扇速度。幸运的是,有一种方法可以使用disable BIOS fan control by writing to SMM registers。
警告:请参阅smm.c顶部的警告。此方法将写入SMM寄存器。但是,我没有看到有关此问题的用户报告导致问题。此外,所有关于尝试此操作的报告都表明在禁用BIOS风扇控制方面取得了成功。
i8kutils
包含程序源smm
,但i8kutils
包不包含已编译的二进制文件。我们要做的是下载i8kutils
的源代码,编译程序smm
,并使用适当的参数运行它以通过写入SMM寄存器来禁用BIOS风扇控制。
下载构建所需的包:
$ sudo apt-get build-dep i8kutils
下载i8kutils
源代码,解压缩并输入目录(具体名称取决于i8k版本):
$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/
编译smm
:
-
如果在32位系统上:
$ make
(上面将执行
gcc -g -O2 -Wall -I. -o smm smm.c
。) -
如果在64位系统上:
$ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
使用参数30a3
运行smm
以禁用SMM风扇控制:
$ sudo ./smm 30a3
现在,应禁用BIOS风扇控制。尝试使用i8kctl
设置速度,听取风扇并确保速度持续。
注意:这是一个将继续重新启动和power-off的设置。可以使用$ sudo ./smm 31a3
再次启用BIOS风扇控制。
* 1:我见过这方面的官方消息来源,现在找不到它。如果要验证硬件是否缺少,请按照此处的说明操作:https://wiki.ubuntu.com/DebuggingACPI
* 2:为了验证这一点,运行pwmconfig:sudo apt-get install fancontrol
,sudo pwm-config
将判断是否存在pwm-capable风扇
第三种解决思路
包含lm-sensors可能正是您要找的。
正如您所建议的那样,fancontrol。
确保您尝试通过软件控制的所有风扇都具有4针连接器。
“具有PWM功能的风扇通常连接到4针连接器(引脚排列:接地,+ 12V,感应,控制)。” source
当我运行pwmconfig
时,我得到了fancontrol的一部分
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
如果您有兼容的硬件,它将指导您。
Here是与生成的配置文件一起使用的一些脚本。我假设你可以在这里设置更高的值。
label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000
但正如我所说,我不能自己测试,因为我的硬件不支持它,我可以控制我的粉丝,但它是3级。我用它来保持我的粉丝缓慢和沉默。
第四种思路
好吧,这可能不是您正在寻找的答案,但是当通过在通风入口处放置真空吸尘器去除灰尘时,我的过热问题得以解决。如果您在低cpu-frequencies时遇到过热,这可能值得一试。请注意,可能会有小部件被吸入。如果您很幸运,这种方法可能会解决您的过热问题。
第五种思路
我有一个戴尔Latitude e4200,以下为我工作,因为BIOS覆盖了i8kfan设置。我的计算机的初始温度为105°F,使用这些步骤后约10分钟(风扇设置= 2)CPU /核心温度降至96°F。此程序已由某人发布:
步骤1.下载并安装i8ktutils:
# sudo apt-get install i8kutils
步骤2.覆盖BIOS以防止其中断自定义风扇设置。下载源代码并编译程序(SMM)来执行此操作:
# sudo apt-get build-dep i8kutils
然后:
# apt-get source i8kutils
步骤3.提取源代码并cd进入目录:
# tar xvf i8kutils_1.33.tar.gz
然后:
# cd i8kutils-1.33/
步骤4.编译SMM
For 32-bit systems:
# make SMM
(Output: # gcc -g -O2 -Wall -I. -o smm smm.c.)
For 64-bit systems
# make SMM:
(Output: # gcc -g -O2 -Wall -I. -o smm -m32 smm.c)
步骤5.使用参数执行SMM:
# sudo ./smm 30a3
步骤6.设置风扇速度:
# i8kfan 2 2 (Listen as this will set fans to maximum speed)
# i8kfan 1 1 (This will set fans to slow speed)
现在BIOS风扇控制不应该覆盖风扇设置。即使重新启动系统,此设置也将保留。要出于某种原因将控制权交还给BIOS,请执行以下步骤:
# sudo ./smm 31a3.
还有一种方法可以使用lm_sensors来检查temp:
http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/