|
| 1 | +# DisableTurboBoost |
| 2 | + |
| 3 | +A MacOS kernel extension (kext) for disabling CPU turbo boost to keep temperature (and fan noise) down. |
| 4 | + |
| 5 | +## Usage |
| 6 | + |
| 7 | +Since System Integrity Protection (SIP) blocks unsigned kernel extensions, there are a few steps involved in enabling this kext: |
| 8 | + |
| 9 | +1. Reboot Mac into recovery mode by holding down cmd+R when booting |
| 10 | +2. While in recovery mode, open terminal and execute `csrutil enable --without kext` |
| 11 | +3. Reboot back into normal mode |
| 12 | +4. Open a terminal in the folder containing the kext and execute: |
| 13 | +``` |
| 14 | +sudo chown -R root:wheel DisableTurboBoost.kext |
| 15 | +sudo chmod -R 0755 DisableTurboBoost.kext |
| 16 | +sudo kextload DisableTurboBoost.kext |
| 17 | +``` |
| 18 | + |
| 19 | +Run `kextstat |grep DisableTurboBoost` to verify that it's loaded. |
| 20 | + |
| 21 | +## How it works |
| 22 | + |
| 23 | +This small kernel extension will enable bit 32 of the MSR register `MSR_IA32_PERF_CTL`. This causes the CPU to disable turbo boost, while keeping speed step. |
| 24 | + |
| 25 | +Other similar extensions choose to enable bit 38 of `MSR_IA32_MISC_ENABLE`, but this also disables speed step causing the CPU to run at a higher frequency (and drain battery faster) than necessary. |
| 26 | + |
| 27 | +Take a look in the [manual](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) for more info. |
| 28 | + |
| 29 | +## Disclamer |
| 30 | + |
| 31 | +I take no responsibility for whatever harm this kernel extension may cause your system. I use it myself without any issues, but I cannot guarantee it will work for you. |
| 32 | + |
| 33 | +## Troubleshooting |
| 34 | + |
| 35 | +If you get this message when executing `sudo kextload DisableTurboBoost.kext`: |
| 36 | +``` |
| 37 | +failed to load - (libkern/kext) not found; check the system/kernel logs for errors or try kextutil(8) |
| 38 | +``` |
| 39 | +Try this command in stead: `sudo kextutil -l DisableTurboBoost.kext` |
| 40 | + |
| 41 | +It will output something about invalid signatures, but the extension might still be loaded. Verify with `kextstat |grep DisableTurboBoost`. |
| 42 | + |
| 43 | +## Credits |
| 44 | + |
| 45 | +The code was written by Vegard Løkken with great inspiration from [nanoant/DisableTurboBoost.kext](https://github.com/nanoant/DisableTurboBoost.kext) and [pyrovski/powertools](https://github.com/pyrovski/powertools). |
0 commit comments