我的风扇不能在 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)