可能行不通的事情

可能行不通的事情

我知道有一种叫做 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 fancontrolsudo pwm-config判断是否存在支持 pwm 的风扇

关于 smm 的说明

smm不再包含在最新版本中i8kutils。如果您的发行版已升级到最新版本,则必须手动获取旧版本。版本 1.41 包含 smm,而 1.43 不再包含它。

从 1.42 开始,smm 仅作为内核模块提供。

您可以在i8kutils 启动板页面

答案2

包裹流明传感器 安装 lm-sensors可能就是您正在寻找的。

正如你所建议的风扇控制 安装 fancontrol

确保您尝试通过软件控制的所有风扇都有 4 针连接器。

“PWM 风扇通常连接到 4 针连接器(引脚排列:接地、+12V、感应、控制)。”来源

当我运行pwmconfigfancontrol 的一部分时,我得到了

/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/

相关内容