如何在Linux中手动启动风扇?


11

我的风扇无法在Linux中运行。我担心如果温度过高,笔记本电脑可能会关闭。

我运行了以下命令:

dmesg | grep -I fan

这给了我:

ACPI: Fan [FAN0] (off)
ACPI: Fan [FAN1] (off)

该目录/proc/acpi/fan不存在。我该怎么做才能使风扇正常工作?


我认为这将取决于您的内核和硬件。您是否需要插入任何与ACPI相关的内核模块来启动它们?例如,我有thinkpad_acpi使所有这些东西出现在/ proc中的模块。也。我认为您的风扇不会关闭(除非出现硬件问题)。
努法尔·易卜拉欣

这仅在Linux中吗?您是否看过您的个人简历对此有何评论?
Coren 2012年

Answers:


5

风扇通常不由CPU和OS控制,而是由系统管理控制器控制。即使操作系统发生故障,它也可以通过这种方式工作。

不幸的是,这意味着“扇出”错误通常是硬件问题。阅读:风扇(部件)需要更换。

唯一的例外是非常坏的ACPI实施会关闭风扇。在这种情况下,风扇将在BIOS中运行。我还没有听说过这样的配置。


2
我认为并非如此。例如,在我的macbook pro上,即使在冷启动后,风扇控件也比Windows旋转得多,但后来变慢了。在更新了Linux之后,它似乎与Windows的运行方式更加接近。风扇速度绝对是由软件驱动的。
Matt H

@MattH,经常主板供应商提供Windows软件,您可以安装该软件来控制风扇,但是默认情况下,它们由硬件控制。
psusi

4

风扇应该由ACPI管理,它允许内核与BIOS配合以使用BIOS提供的规则来监控温度并自动调整风扇速度。不幸的是,我还没有看到一个单一的BIOS供应商真正符合该标准。您可能会查看/ sys / class / thermal,并查看是否有风扇出现在下面,以及是否可以更改其设置。通常,BIOS ACPI表不提供风扇接口,仅将其交给硬件控制器进行管理。

lm-sensors软件包可以检测到许多这些硬件控制器。您运行sensors-detect,它将探测已知的控制器,并可以配置要加载的正确驱动程序来对其进行操作。这通常导致sensors能够报告各种温度和电压读数,并且fancontrol脚本(可单独包装在Debian / Ubuntu中)可以配置为响应温度读数来控制风扇速度。

其中许多模块要求您添加acpi_enforce_resources=lax到内核​​命令行以进行加载。


2

手动将1/0回显到cooling_device的cur_state文件将打开/关闭它:

for cdev in /sys/class/thermal/cooling_device*; do
   [ $(cat $cdev/type) == "Fan" ] && { echo 1 | sudo tee $cdev/cur_state; }
done

1

可以使用嵌入式控制器来控制风扇。一些CPU温度和风扇控制寄存器可能会暴露在ec中。在Linux中,您可以轻松访问并转储这些寄存器。我的笔记本电脑也无法正常工作,ACPI因设计问题而损坏,风扇主要由BIOS控制,并且可以永久打开。在Windows中,您可以下载RW Everything工具来检查ec。使用RW Everything工具,您还可以尝试修改一些值。这适用于我的盒子,我可以控制风扇的自动和手动模式以及速度。


-3

您可以通过按fn-1手动打开和关闭风扇。(Ubuntu 15.04)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.