我知道有一种叫做 fancontrol 的东西,它能让你控制系统的通风速度。我想让我的风扇转得快一点,因为我的笔记本电脑很容易发热。我找到的所有教程和资料都是针对旧版本的 Ubuntu 的,似乎不再有效了。
有人能向我解释或给我一个关于如何在 Ubuntu 上运行它的好链接吗?具有相同效果的其他东西也可以。
答案1
您很可能能够通过此答案中给出的方法解决使用其他方法覆盖 i8kctl fan 命令的问题。为了完整起见,我将提供一些有关戴尔笔记本电脑风扇控制的一般说明,以及完整的说明i8kutils
。
可能行不通的事情
控制笔记本电脑风扇的两种常见且直接的方法是通过 ACPI 和 PWM 引脚,然而不幸的是:
戴尔笔记本电脑缺乏交流电源接口风扇控制能力 (*1)
- 因此,尝试使用 ACPI 启动参数等将会失败
据我所知,戴尔 Latitude 笔记本电脑没有 pwm 可控风扇 (*2)
- 因此,
fancontrol
/pwmconfig
程序将无法运行
- 因此,
使用i8kutils
但是,有一个名为的软件包i8kutils
,用于通过以下方式控制 Dell Inspiron 笔记本电脑的风扇系统管理界面BIOS. 一些用户报告说他们的戴尔纬度笔记本电脑也是如此(我是其中之一,使用的是 Dell 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 会话将风扇速度调低了。幸运的是,有一种方法可以通过写入 SMM 寄存器禁用 BIOS 风扇控制。
警告:请参阅 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
smm
使用参数运行30a3
以禁用 SMM 风扇控制:
$ sudo ./smm 30a3
现在,BIOS 风扇控制应该被禁用。尝试使用 设置速度i8kctl
,听风扇的声音并确保速度持续。
笔记:此设置将保留重启和关机。可以使用 再次启用 BIOS 风扇控制$ sudo ./smm 31a3
。
*1:我看过官方资料,但目前找不到。如果您想验证您的硬件是否缺少此信息,请按照以下说明操作:https://wiki.ubuntu.com/DebuggingACPI
*2:为了验证这一点,运行 pwmconfig:,sudo apt-get install fancontrol
将sudo pwm-config
判断是否存在支持 pwm 的风扇
关于 smm 的说明
smm
不再包含在最新版本中i8kutils
。如果您的发行版已升级到最新版本,则必须手动获取旧版本。版本 1.41 包含 smm,而 1.43 不再包含它。
从 1.42 开始,smm 仅作为内核模块提供。
您可以在i8kutils 启动板页面。
答案2
包裹流明传感器 可能就是您正在寻找的。
正如你所建议的风扇控制 。
确保您尝试通过软件控制的所有风扇都有 4 针连接器。
“PWM 风扇通常连接到 4 针连接器(引脚排列:接地、+12V、感应、控制)。”来源
当我运行pwmconfig
fancontrol 的一部分时,我得到了
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
如果您有兼容的硬件,它将指导您。
这里是一些与生成的配置文件一起使用的脚本。我假设您可以在此处设置更高的值。
label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000
但是正如我所说的,我无法自己测试这个,因为我的硬件不支持它,我可以从 BIOS 控制我的风扇,但它是 3 级。我用它来保持我的风扇缓慢而安静。
答案3
i8kutils 用于控制我的 Dell Vostro 3350 笔记本电脑的风扇。
# 仅适用于戴尔笔记本电脑: $ sudo apt-get 安装 i8kutils $ i8kfan 1 2 # 将左侧风扇设置为低速(1);右侧风扇设置为高速(2)。
答案4
我有一台 Dell Latitude e4200,以下方法对我有用,因为 BIOS 覆盖了 i8kfan 设置。我的电脑的初始温度为 105 华氏度,使用这些步骤(风扇设置 = 2)后约 10 分钟,CPU/核心温度降至 96 华氏度。此过程已由某人发布:
步骤 1.下载并安装 i8ktutils:
# sudo apt-get install i8kutils
步骤 2. 覆盖 BIOS,以防止其中断自定义风扇设置。下载源代码并编译程序 (SMM) 来执行此操作:
# sudo apt-get build-dep i8kutils
然后:
# apt-get source i8kutils
步骤 3. 提取源代码并进入目录:
# 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 检查温度:
http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/