之前用的黑果散热是个大问题,所以用的该方法。

本文已经过期。如果你在用 Late-2016 开始的 MacBook Pro 运行正式版的 macOS 组建版本的话,就不用担心 Turbo Boost 的问题。

因为我有的时候需要使用,所以转载留个备份。

原文链接:https://zhuanlan.zhihu.com/p/21307348

我强烈推荐所有 MacBook Pro 和 iMac 标压 CPU 机种的用户在平时关掉 Turbo Boost,因为这些机种的 CPU 的基频本身就已经很强了(基本上都不低于 2GHz)、而 Chrome 等经常触发 Turbo Boost 的应用只会让你的 CPU 瞬间功耗和平均功耗出现毫无必要的上涨。尤其是在夏天,你绝对已经厌倦了 MacBook Pro 掌托发热、电池续航下降的恶劣现状。

连动:让 Turbo Boost 彻底消停(方法二)

先前csimba贴了《一个 Turbo Boost Switcher 运行的改进方法》这篇文章,但王飞认为其开机自动执行的方法会将系统帐密明文存入 AppleScript 当中、使得整机变得不甚安全(尤其是需要将自己的笔电暂时交给他人使用的情况下)。彼时我亲自测试曾阳给出的方法、却发现该应用仍旧会在休眠唤醒之后触发 UAC 视窗、索取管理员权限。

我在该应用的 GitHub 简介当中找到了其所用到的 Turbo Boost Disabler 驱动的原始 Repo,尝试自己编译、却发现无法执行。幸运的是,我在 Turbo Boost Switcher 当中发现了可以使用的驱动扩展档案,于是就有了我现在这篇文章。

【注意】本文及所提到的驱动与切换应用均不保证对于黑苹果硬体组态而言的稳定性。

【更新】经测试,本文所述之方法不需要对系统签名驱动认证机制动手脚也可以。故之前文章的第一步(针对 csrutil 的配置)就此省去。如果希望重新恢复 Apple 官方的 Rootless 全方位防护状态的话,请在开机时摁 CMD+R 进入恢复模式执行「csrutil enable」即可。

该文章的英文版本被我刊登在 Quora:

Suppress Turbo Boost to let your MacBook stop overheating.

在继续之前,请移除如下档案(如果有的话):

1
/Library/LaunchDaemons/com.rugarciap.AlwaysLoadTurboBoostSwitcher.plist

【第一步:安装驱动】
藉由「Turbo Boost Switcher for OS X」这个网站下载安装已编译的 Turbo Boost Switcher。

你现在需要开启一个全新的终端机视窗、一次性顺序执行下述命令:

1
2
3
sudo su
cp -r /Applications/Turbo\ Boost\ Switcher.app/Contents/Resources/DisableTurboBoost.64bits.kext /Library/Extensions/
kextload /Library/Extensions/DisableTurboBoost.64bits.kext

完工。

【第二步:开机自动加载驱动】
你现在需要开启一个全新的终端机视窗、一次性顺序执行下述命令:

1
2
sudo su
nano /Library/LaunchDaemons/com.rugarciap.KextLoadDisableTurboBoost.plist

你会看到当前终端机视窗变成了 NANO 编辑器,直接将下文复制到剪贴簿、摁 CMD+V 贴入 NANO 编辑器即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.rugarciap.KextLoadDisableTurboBoost</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>kextload /Library/Extensions/DisableTurboBoost.64bits.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

这时你需要摁 Ctrl+O 再摁回车键将内容存档,然后摁 Ctrl+X 离开 NANO 编辑器。但请不要关掉当前的终端机视窗…请直接执行这最后一道指令:

1
launchctl load -w /Library/LaunchDaemons/com.rugarciap.KextLoadDisableTurboBoost.plist

如果你在执行该指令之前、已经手贱关掉该终端机视窗的话, 你需要在执行该指令之前、先执行一遍「sudo su」。

完工。

==============

FAQ:

问:鬼知道驱动有没有加载啊…

答:藉由终端机执行这条指令:「kextstat | grep ugarciap」。

问:鬼知道 Turbo Boost 是真停用了还是假停用了啊…

答:去 Intel 官方网站下载「Intel(R) Power Gadget」自己看实时频谱分析。

问:俺能暂时开启 Turbo Boost 不?

答:藉由终端机执行这条指令:

1
sudo kextunload /Library/Extensions/DisableTurboBoost.64bits.kext

问:俺暂时开启了 Turbo Boost,现在想要关掉、但又不方便现在重新开机,怎整?

答:藉由终端机执行这条指令:

1
sudo kextload /Library/Extensions/DisableTurboBoost.64bits.kext

问:睡眠苏醒之后发现 Turbo Boost 被恢复了,怎办?

答:顺序执行如下三条终端机指令:

1
2
3
sudo su
kextunload /Library/Extensions/DisableTurboBoost.64bits.kext
kextload /Library/Extensions/DisableTurboBoost.64bits.kext

问:俺能卸了它不?

答:不需要重新开机,直接砍了这两个档案即可:

1
2
/Library/Extensions/DisableTurboBoost.64bits.kext
/Library/LaunchDaemons/com.rugarciap.KextLoadDisableTurboBoost.plist