type
status
date
slug
summary
tags
category
icon
password
许多朋友在 Unraid 的风扇控制上遇到问题,为此我系统整理了相关资料,梳理成这篇指南分享给大家。本文将带你从底层原理出发,一步步完成设置,并解决常见的疑难杂症。文中若有疏漏,欢迎在评论区交流指正。
1. 系统是如何监控设备温度和风扇转速的?
在包括 Unraid 在内的 Linux 系统上,主要通过一款名为
lm-sensors
的软件包来监视 CPU 温度、风扇转速等系统状态数据。lm-sensors
提供了读取数据的工具(如 sensors
命令),但它本身无法直接识别主板上具体的传感器芯片。因此,在 lm-sensors
能正确运行前,需要使用 sensors-detect
命令来探测主板上可能存在的各种传感器芯片。sensors-detect
是一个交互式程序,它会引导用户扫描系统,以探测 lm-sensors
工具集所支持的各种硬件监控芯片。它通过询问一系列问题(例如是否扫描特定总线),最终给出加载相应内核模块的建议,从而让系统能够识别并驱动这些硬件。在 Unraid 终端中运行以下命令即可自动检测:
例如,在我的 Unraid 主机上运行该命令后,得到如下关键信息:
完整内容
从输出信息中可以看到,
sensors-detect
找到了两个主要的传感器芯片:- Intel digital thermal sensor(英特尔数字温度传感器),所需驱动为
coretemp
:
- Nuvoton NCT6683D eSIO(新唐科技 NCT6683D 嵌入式超级输入输出芯片),所需驱动为
nct6683
:
sensors-detect
给出的建议非常明确:modprobe coretemp
命令用于加载 coretemp
内核模块,modprobe nct6683
同理。这些模块正是让操作系统能够与传感器芯片通信的“桥梁”。总而言之,通过
sensors-detect
命令,我们能找到主板上的监控芯片,并根据其建议加载正确的内核驱动模块,这是实现硬件监控的第一步。2. Unraid 的温度监控和风扇控制
2.1 显示系统温度和风扇转速
在 Unraid 上,如果希望监控 CPU 和主板温度,通常需要安装 Dynamix System Temp 插件。

安装后,在插件设置页面点击
DETECT
(检测),Available drivers
(可用驱动)列表中就会显示当前设备可用的驱动:
这个列表中的
coretemp
和 nct6683
,正与我们之前使用 sensors-detect
命令得到的结果一致。这说明,Dynamix System Temp 插件的底层原理正是调用 sensors-detect
来识别和加载驱动。检测到驱动后,点击
SAVE
保存配置,Unraid 界面上就会正确显示温度和风扇转速等信息:

之后,你就可以在 Unraid 的底部状态栏中随时查看这些实时数据:

2.2 控制风扇转速
要实现智能风扇调速,可以安装 Dynamix System Autofan 插件。但需要说明的是,此插件最近一次更新是在 2023 年,在很多时候已经不能满足使用需求,请大家斟酌使用。


在驱动正确加载的前提下,选择对应的
PWM控制器
(即风扇连接的接口),就可以根据硬盘温度来设定风扇转速:
选项说明:
PWM风扇
:插件检测到的、用于控制风扇转速的 PWM 控制器。
最低PWM值
:为确保风扇持续运转不至于停转,所设定的最低功率百分比。
低温阈值(℃)
:当硬盘温度低于此值时,风扇将以最低 PWM 值设定的转速运行。
高温阈值(℃)
:当硬盘温度达到或超过此值时,风扇将以 100% 功率全速运行。
刷新间隔(分钟)
:插件根据温度变化调整风扇转速的频率。
排除驱动器
:适用于某些持续高温的硬盘,将其排除后,它们的高温不会影响整体风扇策略;
举个例子

如图,
最低PWM值
=20,低温阈值(℃)
=40,高温阈值(℃)
=60:- 硬盘温度低于 40°C 时,风扇以 20% 功率运行。
- 当温度在 40°C 到 60°C 之间时,风扇转速会随温度升高而线性提升。
- 当温度达到 60°C 时,风扇将全速运转。
2.3 另一个风扇控制插件:FanCtrl Plus

FanCtrl Plus 同样可以根据硬盘(HDD & NVMe)温度自动调整风扇转速,设置方法大同小异,读者可自行探索:
请注意:该插件明确建议用户应让主板 BIOS 的温控策略来管理 CPU 风扇,而不是通过插件基于 CPU 温度来控制。

3. 疑难解答:无法检测温度或控制风扇
然而,在实际操作中,许多朋友会遇到无法正常显示温度或控制风扇转速的问题。这通常是驱动问题导致的。
3.1 手动查找并加载驱动
如前文所述,
sensors-detect
是检测监控芯片的利器。但有时它可能无法识别出芯片所需的内核驱动,例如你可能会看到如下信息:这表示检测到了
Nuvoton NCT6683D eSIO
监控芯片,但它未被激活(not activated),即驱动未被加载或系统上缺少对应的驱动。如何确定芯片需要哪个驱动?


- ITE 芯片:常见驱动为 it87 。



如果你也遇到了监控芯片未被激活(not activated)的情况,可以通过 Dynamix System Temp 插件手动加载驱动。在“可用驱动”栏填写检测或查询到的驱动名称(如
nct6775
),点击“保存”并“加载驱动”:
此外,显示硬盘温度需要加载
drivetemp
驱动,显示 CPU 温度则需要 coretemp
驱动。通常,你可以将这几个驱动都加载上:
3.2 安装第三方驱动插件
Unraid 自带的内核可能不包含对所有监控芯片的完美支持。但某些主板使用的监控芯片,其原生驱动可能并不完善。此时,我们可以通过安装社区开发者编译的驱动插件来解决。


- Nuvoton NCT6687 Driver(Github):专门为 NCT6687D/NCT6687-R 等芯片优化,对微星、华硕的 B550, H410M, H510M 等系列主板有很好的支持(更多可支持的主板可看此 issues)。
- ITE IT87 Driver:根据官方论坛帖子,此插件支持 IT86xx, IT87xx 等一系列 ITE 芯片。
安装这些插件后,它们会自动处理内核模块的加载和冲突,无需手动干预。
3.3 其他说明:acpi_enforce_resources=lax
在某些情况下,即使驱动正确加载,硬件监控功能依然失效。你可能会在网上看到一个解决方案:在 Unraid 的启动参数中添加
acpi_enforce_resources=lax
。
这个参数的作用是放宽 ACPI 资源检查。简单来说,它能解决因主板 ACPI(高级配置与电源接口)固件与内核驱动(如
nct6775
)争抢硬件访问权限而导致的驱动加载失败问题。然而,这种方式也可能给系统带来不稳定的风险(参考)。幸运的是,从 Linux 内核
5.16
版本开始,这个问题得到了逐步改善。建议将 Unraid 升级到 6.12 或更高版本(其内核为 6.1.x 或以上),大概率无需添加此参数即可解决问题华硕 X99 主板未完整显示温控情况解决办法
有位群友表示他的华硕 EMPTY X99-E-10G WS 主板通过插件只检测到了两个传感器,最后通过添加
acpi_enforce_resources=lax
来解决。
4. 脚本控制风扇
(正在施工)
5. 总结
本文系统性地梳理了在 Unraid (及其他 Linux 系统) 上实现硬件监控(如温度、电压、风扇转速)的原理与实践方法,其核心逻辑如下:
- 硬件监控依赖于
lm-sensors
工具集,而sensors-detect
命令是识别主板监控芯片和所需驱动的关键。
- 通过
sensors-detect
获取芯片和驱动信息后,可以在相关技术文档中确认其对应关系。
- Unraid 用户可通过 Dynamix System Temp, Dynamix System Autofan 和 FanCtrl Plus 等插件,方便地实现温度监控和风扇智能调速。
- 针对 Unraid 原生驱动无法完美支持某些主板芯片的情况,本文介绍了如何通过安装第三方插件 Nuvoton NCT6687 Driver 和 ITE IT87 Driver 来获取定制驱动,以获得更好的兼容性。
- 最后,解释了
acpi_enforce_resources=lax
参数的用途及风险,并建议通过升级 Unraid 版本来从根本上解决相关冲突。
上一篇
解决 Transmission 4.x 版本主题问题(transmission-web-control)
下一篇
Unraid OS 7.1.0 正式版发布:功能更成熟、体验更稳定,是时候升级了吗?
- 作者:JackieWu
- 链接:https://www.jackiewu.top/article/unraid-temp-monitor-fan-control-guide
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。