Lazy loaded image
进阶教程
💨Unraid 温度监控与风扇控制完全指南:从原理到实践
字数 3264阅读时长 9 分钟
2025-8-20
2025-8-26
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 找到了两个主要的传感器芯片:
  • Nuvoton NCT6683D eSIO(新唐科技 NCT6683D 嵌入式超级输入输出芯片),所需驱动为 nct6683
    sensors-detect 给出的建议非常明确:
    modprobe coretemp 命令用于加载 coretemp 内核模块,modprobe nct6683 同理。这些模块正是让操作系统能够与传感器芯片通信的“桥梁”。
    总而言之,通过 sensors-detect 命令,我们能找到主板上的监控芯片,并根据其建议加载正确的内核驱动模块,这是实现硬件监控的第一步。

    2. Unraid 的温度监控和风扇控制

    2.1 显示系统温度和风扇转速

    在 Unraid 上,如果希望监控 CPU 和主板温度,通常需要安装 Dynamix System Temp 插件。
    notion image
    安装后,在插件设置页面点击 DETECT (检测),Available drivers (可用驱动)列表中就会显示当前设备可用的驱动:
    notion image
    这个列表中的 coretempnct6683,正与我们之前使用 sensors-detect 命令得到的结果一致。这说明,Dynamix System Temp 插件的底层原理正是调用 sensors-detect 来识别和加载驱动。
    检测到驱动后,点击 SAVE 保存配置,Unraid 界面上就会正确显示温度和风扇转速等信息:
    notion image
    notion image
    之后,你就可以在 Unraid 的底部状态栏中随时查看这些实时数据:
    notion image

    2.2 控制风扇转速

    要实现智能风扇调速,可以安装 Dynamix System Autofan 插件。但需要说明的是,此插件最近一次更新是在 2023 年,在很多时候已经不能满足使用需求,请大家斟酌使用。
    notion image
    notion image
    在驱动正确加载的前提下,选择对应的 PWM控制器(即风扇连接的接口),就可以根据硬盘温度来设定风扇转速:
    notion image
    选项说明:
    • PWM风扇 :插件检测到的、用于控制风扇转速的 PWM 控制器。
    • 最低PWM值:为确保风扇持续运转不至于停转,所设定的最低功率百分比。
    • 低温阈值(℃):当硬盘温度低于此值时,风扇将以最低 PWM 值设定的转速运行。
    • 高温阈值(℃):当硬盘温度达到或超过此值时,风扇将以 100% 功率全速运行。
    • 刷新间隔(分钟):插件根据温度变化调整风扇转速的频率。
    • 排除驱动器:适用于某些持续高温的硬盘,将其排除后,它们的高温不会影响整体风扇策略;
    举个例子
    notion image
    如图,最低PWM值=20,低温阈值(℃)=40,高温阈值(℃)=60:
    • 硬盘温度低于 40°C 时,风扇以 20% 功率运行。
    • 当温度在 40°C 到 60°C 之间时,风扇转速会随温度升高而线性提升。
    • 当温度达到 60°C 时,风扇将全速运转。

    2.3 另一个风扇控制插件:FanCtrl Plus

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

    3. 疑难解答:无法检测温度或控制风扇

    然而,在实际操作中,许多朋友会遇到无法正常显示温度或控制风扇转速的问题。这通常是驱动问题导致的。

    3.1 手动查找并加载驱动

    如前文所述,sensors-detect 是检测监控芯片的利器。但有时它可能无法识别出芯片所需的内核驱动,例如你可能会看到如下信息:
    这表示检测到了 Nuvoton NCT6683D eSIO 监控芯片,但它未被激活(not activated),即驱动未被加载或系统上缺少对应的驱动。
    如何确定芯片需要哪个驱动?
    主板上的传感器芯片主要来自两大厂商:ITE(联阳半导体)和 Nuvoton(新唐科技)。你可以通过观察主板上的芯片来确定型号:
    图注:芯片上的 NCT6798D 字样即为其型号
    图注:芯片上的 NCT6798D 字样即为其型号
    图注:芯片上的 ITE8689E 字样即为其型号
    图注:芯片上的 ITE8689E 字样即为其型号
    • ITE 芯片:常见驱动为 it87
    你可以在对应的内核文档链接中查找你的芯片型号。如果找不到,还可以前往 Linux 内核的官方代码仓库进行搜索。例如,搜索 NCT6798D 会发现它对应的驱动是 nct6775
    1. 搜索仓库
    1. 搜索仓库
    2. 查看搜索结果
    2. 查看搜索结果
    3. 找到对应的说明
    3. 找到对应的说明
    如果你也遇到了监控芯片未被激活(not activated)的情况,可以通过 Dynamix System Temp 插件手动加载驱动。在“可用驱动”栏填写检测或查询到的驱动名称(如 nct6775),点击“保存”并“加载驱动”:
    notion image
    此外,显示硬盘温度需要加载 drivetemp 驱动,显示 CPU 温度则需要 coretemp 驱动。通常,你可以将这几个驱动都加载上:
    notion image

    3.2 安装第三方驱动插件

    Unraid 自带的内核可能不包含对所有监控芯片的完美支持。但某些主板使用的监控芯片,其原生驱动可能并不完善。此时,我们可以通过安装社区开发者编译的驱动插件来解决。
    notion image
    notion image
    • Nuvoton NCT6687 DriverGithub):专门为 NCT6687D/NCT6687-R 等芯片优化,对微星、华硕的 B550, H410M, H510M 等系列主板有很好的支持(更多可支持的主板可看此 issues)。
    • ITE IT87 Driver:根据官方论坛帖子,此插件支持 IT86xx, IT87xx 等一系列 ITE 芯片。
    安装这些插件后,它们会自动处理内核模块的加载和冲突,无需手动干预。

    3.3 其他说明:acpi_enforce_resources=lax

    在某些情况下,即使驱动正确加载,硬件监控功能依然失效。你可能会在网上看到一个解决方案:在 Unraid 的启动参数中添加 acpi_enforce_resources=lax
    notion image
    这个参数的作用是放宽 ACPI 资源检查。简单来说,它能解决因主板 ACPI(高级配置与电源接口)固件与内核驱动(如 nct6775)争抢硬件访问权限而导致的驱动加载失败问题。
    然而,这种方式也可能给系统带来不稳定的风险(参考)。幸运的是,从 Linux 内核 5.16 版本开始,这个问题得到了逐步改善。建议将 Unraid 升级到 6.12 或更高版本(其内核为 6.1.x 或以上),大概率无需添加此参数即可解决问题
    华硕 X99 主板未完整显示温控情况解决办法
    有位群友表示他的华硕 EMPTY X99-E-10G WS 主板通过插件只检测到了两个传感器,最后通过添加 acpi_enforce_resources=lax 来解决。
    notion image

    4. 脚本控制风扇

    (正在施工)

    5. 总结

    本文系统性地梳理了在 Unraid (及其他 Linux 系统) 上实现硬件监控(如温度、电压、风扇转速)的原理与实践方法,其核心逻辑如下:
    1. 硬件监控依赖于 lm-sensors 工具集,而 sensors-detect 命令是识别主板监控芯片和所需驱动的关键。
    1. 通过 sensors-detect 获取芯片和驱动信息后,可以在相关技术文档中确认其对应关系。
    1. Unraid 用户可通过 Dynamix System TempDynamix System Autofan 和 FanCtrl Plus 等插件,方便地实现温度监控和风扇智能调速。
    1. 针对 Unraid 原生驱动无法完美支持某些主板芯片的情况,本文介绍了如何通过安装第三方插件 Nuvoton NCT6687 Driver 和 ITE IT87 Driver 来获取定制驱动,以获得更好的兼容性。
    1. 最后,解释了 acpi_enforce_resources=lax 参数的用途及风险,并建议通过升级 Unraid 版本来从根本上解决相关冲突。
     
    上一篇
    解决 Transmission 4.x 版本主题问题(transmission-web-control)
    下一篇
    Unraid OS 7.1.0 正式版发布:功能更成熟、体验更稳定,是时候升级了吗?

    评论
    Loading...