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

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

我的风扇不能在 Linux 上运行。我担心如果温度变得非常高,笔记本电脑可能会关闭。

我运行了以下命令:

dmesg | grep -I fan

这给了我:

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

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

答案1

风扇通常不是由 CPU 和操作系统控制,而是由系统管理控制器控制。这样,即使操作系统出现故障,它也能正常工作。

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

唯一的例外是 ACPI 实现非常糟糕,可以关闭风扇。在这种情况下,风扇将跑步在BIOS中。不过我还没有听说过这样的配置。

答案2

粉丝们是应该由ACPI管理,允许内核与BIOS配合,利用BIOS提供的规则自动监控温度并调节风扇转速。不幸的是,我还没有看到任何一家 BIOS 供应商真正遵守该标准。您可以查看 /sys/class/ Thermal 并查看下面是否显示任何风扇以及是否可以更改其设置。一般来说,BIOS ACPI 表不提供风扇接口,而将其留给硬件控制器来管理。

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

其中许多模块需要您添加acpi_enforce_resources=lax到内核命令行来加载。

答案3

手动将 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

答案4

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

相关内容