Repository navigation
FanControl 1.4.1 —— 黑苹果主板风扇调速(Nuvoton NCT679x)
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
- 🆕 显卡监控(只读):风扇转速 / 占空比 / 温度 / 功耗 / 核心频率 / 占用率。
装完必须做两件事
- 把
/usr/local/share/fancontrol/SMCSuperIO.kext放进EFI/OC/Kexts,替换同名文件,
并在config.plist → Kernel → Add里注册 ——
它必须排在VirtualSMC.kext之后(OpenCore 按顺序注入,依赖没就位的会被静默跳过)。 - 核对水泵通道:
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
- Copy
/usr/local/share/fancontrol/SMCSuperIO.kextintoEFI/OC/Kexts, replacing the existing file,
and register it inconfig.plist → Kernel → Add. It must come afterVirtualSMC.kext—
OpenCore injects in order, and a kext whose dependencies aren't in place yet is silently skipped. - 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-checkChecksums (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.