Giter Site home page Giter Site logo

cputune's Introduction

CPUTune

An open source kernel extension enables dynamic CPU performance tuning at runtime for macOS.

https://portugnole.blogspot.com/2020/05/running-macbook-without-battery-lets-go.html

Features

  • Allows turning on or off Intel Turbo Boost for better battery life
  • Allows turning on or off Intel Speed Shift for maximum performance
  • Provides the fine granularity to change HWP (performance value) at runtime
  • Provides the control over tuning turbo ratio limit at runtime when turbo boost is enabled
  • Allows turning on or off Intel Proc Hot (BD_PROCHOT) for running without a battery. Please note that this is NOT recommended and can seriously damage your mac. Do at your own risk.
  • Implements TimerEvent-based responses for dynamical switching Turbo Boost and Speed Shift at runtime
  • Allows System Integrity Protection (SIP) control a bit easier via Info.plist setting

Installation

  • Disable the System Integrity Protection, reboot
  • Download the repo and open the CPUTuneCore/CPUTuneCore.xcodeproj via Xcode
  • Navigate to Product then click Build. Once the compiled completed, you will find CPUTuneCore.kext in the Product folder, copy it to /Library/Extensions
  • Change the CPUTuneCore.kext ownership to root:wheel, mode to rwxr-xr-x (or 755)
  • Rebuild the kernel cache in terminal: sudo touch /Library/Extensions; sudo kextcache -i /, reboot
  • Enable the SIP back and reboot

Boot arguments

  • Add -cputoff to disable CPUTune
  • Add -cputbeta to enable CPUTune on unsupported os versions (10.15 and below are enabled by default).

Configuration

Open terminal:

  • Type in echo 1>/tmp/CPUTuneTurboBoostRT.conf to enable turbo boost when CPUTune is loaded
  • Type in echo 0>/tmp/CPUTuneTurboBoostRT.conf to disable turbo boost when needed
  • Type in echo <request value> >/tmp/HWPRequest.conf to submit persistency hwp request at runtime. For example <requet value> = 0x80193008
  • Type in echo <turbo ratio limit> >/tmp/TurboRatioLimit.conf to submit cores maximum frequency at runtime. For example 0x2b2c2d2f3030 in i9-8950HK (6 cores) sets the maximum frequency for Core[1-6] at 43(0x2b), 44(0x2c), 45(0x2d), 46(0x2f), 48(0x30), 48(0x30) respectively.
  • Type in echo 1>/tmp/CPUTuneProcHotRT.conf to enable proc hot when needed
  • Type in echo 0>/tmp/CPUTuneProcHotRT.conf to disable proc hot when needed
  • Change update time interval (millisecond) in CPUTune.kext/Contents/Info.plist to have a more looser/tigher control over HWP request
  • In case you want a simplify command to switch turbo boost, change the TurboBoostAtRuntime in CPUTune.kext/Contents/Info.plist

Contribution

All suggestions and improvements are welcome, don't hesitate to pull request or open an issue if you want this project to be better than ever. Writing and supporting code is fun but it takes time. Please provide most descriptive bugreports or pull requests.

Change Log

Change logs for detail improvements

cputune's People

Contributors

schdt899 avatar christophe-duc avatar syscl avatar ringwraith avatar mrc527 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.