Skip to content

FanControl 1.4.1 —— 黑苹果主板风扇调速(Nuvoton NCT679x)

Choose a tag to compare

@glassecho glassecho released this 12 Oct 01:38
· 5 commits to main since this release

FanControl 1.4.1

macOS 下的主板风扇调速工具(面向 Hackintosh)。给主板 Super I/O 芯片 Nuvoton NCT679x
补上 SMC 写能力,让黑苹果也能按温度曲线调速。

English? Jump to the English section ↓


下载哪个?

文件 给谁用
FanControl-1.4.1.dmg 普通用户装这个 —— 双击即可
FanControl-1.4.1.pkg 同上,也可以用命令行装
FanControl-1.4.1-src.zip 想自己编译的人

⚠️ 本软件没有 Apple 开发者签名(作者没有证书),Gatekeeper 会拦。
右键点安装包 → 打开 → 再点一次「打开」即可;
或到「系统设置 → 隐私与安全性」拉到底点「仍要打开」。


适用条件(缺一不可)

条件 要求
系统 Hackintosh(能改 OpenCore 的 config.plist)—— 真 Mac 不适用
主板 Super I/O Nuvoton NCT679x:NCT6790D…NCT6798D、NCT679BD,或 NCT6779D
架构 Intel —— Apple Silicon 不适用

macOS 13 / 14 / 15 / 26 均可。


这一版有什么

1.4.1(本版)

  • 🆕 菜单栏面板里可以直接开关「开机自启」 —— 走系统的登录项机制(SMAppService),
    在「系统设置 → 通用 → 登录项」里也能看到和关掉,不用再手动加。
  • 🔧 修了五处内部隐患:
    • 版本号改为单一来源(以前 5 处各写一遍,改漏一处界面就显示旧版本号)
    • 消除子进程管道死锁隐患(原来先读完 stdout 再读 stderr,stderr 写满 64KB 会互等)
    • 传感器面板改为动态发现 CPU 核心(原来写死 8 个,核心数不同的机器会漏显示)
    • 临时配置文件改用唯一文件名 + 私有目录(原来固定路径,多实例互相覆盖)
    • 发布版二进制不再包含本机开发路径

1.4.0

  • 🆕 菜单栏常驻显示:可任选「风扇图标 / CPU 温度 / GPU 温度 / CPU 占用 / 内存 /
    风扇转速 / 显卡风扇 / 网络」中的几项显示在菜单栏上,每项各自带图标,
    点图标弹出面板可随时增删。

1.3.0

  • 🆕 「监控」页:8 个可独立开关的面板 —— CPU(总占用 / 每核心 / 负载 / 走势图)、
    显卡、内存、存储、网络、进程、传感器、系统。开关会记住,全部只读、不需要 root。

1.2.0

  • 🆕 显卡监控(只读):风扇转速 / 占空比 / 温度 / 功耗 / 核心频率 / 占用率。

装完必须做两件事

  1. 把 /usr/local/share/fancontrol/SMCSuperIO.kext 放进 EFI/OC/Kexts,替换同名文件,
    并在 config.plist → Kernel → Add 里注册 ——
    它必须排在 VirtualSMC.kext 之后(OpenCore 按顺序注入,依赖没就位的会被静默跳过)。
  2. 核对水泵通道:pump_channel 默认是 ch6(作者本机布局),换机器必须确认。

装完跑一次自检确认:

zsh /usr/local/sbin/fancontrol-check

详见仓库里的 移植说明.md。


校验(SHA-256)

b024942aeda6eafa6049bca91b59c9832caf81c9fb19294b6efc1cca2866b041  FanControl-1.4.1.dmg
54f8c08851a698a5138b02eb2e03bee57f323969f9b4972dbad45dac624445e1  FanControl-1.4.1.pkg
1ea7510cb43a37e3fddc082d2a165a9e1fb3426b5e5d58da4667286a1743ddd1  FanControl-1.4.1-src.zip

已知限制

  • 显卡风扇只能看、不能调 —— 由显卡固件的 PowerPlay 表 + 驱动管理,
    macOS 没有对外开放的写入接口。
  • 真 Mac、Apple Silicon 不适用。
  • 界面目前只有中文 —— 英文界面在计划中。
  • 没有 Apple 开发者签名,Gatekeeper 会拦。

反馈

作者手上只有一台机器(ASUS 主板 + NCT679BD),特别希望有不同主板、不同芯片的朋友帮忙一起测。
请到 Issues 反馈芯片型号、自检结果、
能不能调速、水泵通道是几号。


English

FanControl 1.4.1 for Hackintosh — motherboard fan control on macOS.

It gives hackintoshes the ability to control motherboard fans by temperature curve, by patching a gap in
VirtualSMC's SMCSuperIO. Six modes (silent / standard / performance / full / manual / custom curve),
plus read-only system and GPU monitoring and a menu-bar readout.

Which file?

File For whom
FanControl-1.4.1.dmg Normal use — just double-click
FanControl-1.4.1.pkg Same thing, installable from the command line
FanControl-1.4.1-src.zip If you want to build it yourself

Requirements — all three, no exceptions:

  • Hackintosh (you must be able to edit OpenCore's config.plist) — not for real Macs
  • Nuvoton NCT679xD or NCT6779D Super I/O chip
  • Intel — the kext is built for x86_64; Apple Silicon is not supported
  • macOS 13 / 14 / 15 / 26

New in this release

  • 1.4.1 — Launch-at-login toggle right in the menu bar panel (uses the system login-items
    mechanism, so it also shows up under System Settings → General → Login Items). Plus five internal
    fixes: single-source version number, subprocess pipe deadlock, dynamic CPU-core discovery in the
    sensor panel, unique temp config filenames, and no more dev paths baked into the release binary.
  • 1.4.0 — Persistent menu bar readout: fan icon / CPU temp / GPU temp / CPU load / memory /
    fan RPM / GPU fan / network — each item with its own icon, toggleable from the popover.
  • 1.3.0 — A "Monitor" page with 8 independently toggleable panels (CPU / GPU / memory / storage /
    network / processes / sensors / system). Read-only, no root needed.
  • 1.2.0 — Read-only GPU monitoring: fan RPM, duty, temperature, power, core clock, utilization.

Two things you must do after installing

  1. Copy /usr/local/share/fancontrol/SMCSuperIO.kext into EFI/OC/Kexts, replacing the existing file,
    and register it in config.plist → Kernel → Add. It must come after VirtualSMC.kext —
    OpenCore injects in order, and a kext whose dependencies aren't in place yet is silently skipped.
  2. Verify the pump channel. The default is ch6 (the author's own board layout) and must be
    re-checked on any other board.

Then run the self-check to confirm your chip is supported:

zsh /usr/local/sbin/fancontrol-check

Checksums (SHA-256)

b024942aeda6eafa6049bca91b59c9832caf81c9fb19294b6efc1cca2866b041  FanControl-1.4.1.dmg
54f8c08851a698a5138b02eb2e03bee57f323969f9b4972dbad45dac624445e1  FanControl-1.4.1.pkg
1ea7510cb43a37e3fddc082d2a165a9e1fb3426b5e5d58da4667286a1743ddd1  FanControl-1.4.1-src.zip

Known limitations

  • GPU fans are read-only — managed by the GPU firmware's PowerPlay table; macOS exposes no writable
    interface.
  • Real Macs and Apple Silicon are not supported.
  • The GUI is Chinese-only. English UI is on the roadmap.
  • No Apple Developer signature — Gatekeeper will block it. Right-click the installer → Open →
    Open again, or use System Settings → Privacy & Security → Open Anyway.

Why it needs the kext

Installing a kext into your EFI is a physical prerequisite for controlling motherboard fans on a
hackintosh. There is no way around it — the fan keys simply do not exist in SMC until SMCSuperIO
publishes them. If a tool claims to control motherboard fans on a hackintosh without touching the EFI,
it is either reading the GPU or it isn't working.

Credits

Kext derived from shohart/gpufan →
VirtualSMC (SMCSuperIO by vit9696, joedm). BSD-3-Clause.
See NOTICE and THIRD-PARTY/ for attribution. Not affiliated with, or endorsed by, the upstream authors.

Disclaimer

This software changes motherboard fan speeds and requires you to modify your EFI.
Any change to your EFI / OpenCore configuration risks making the machine unbootable — back up first.
Provided "as is", without warranty of any kind. Do not put a water-cooling pump under speed control.