VoltageShift

Undervoltage Tools for MacOS (Haswell and Broadwell)







MSR Kext Driver modifiyed from AnVMSR by Andy Vandijck Copyright (C) 2013 AnV Software.

THIS TOOL IS FOR ADVANCED USER AND MAY BE DAMAGED YOUR COMPUTER PERMANENTLY



This is open source project and under The GNU General Public License V 3.0. source code: https://github.com/sicreative/VoltageShift

Download





1.22



New Versions 1.21: Improve compatibility.







New Versions 1.21:



Updated to support auto set Turbo / Power when startup Default close "offset" for read temp. sensor. (As some system may have issue) [Charlyo]





1.2

1. Updated for support up to 8 core CPU

2. Updated setting of turbo boost

3. Updated setting of power limited

4. Additional power limited and turbo boost status showed on -info

5. info showed as OC_Locked mean Apple locked the BIOS and not aviliable change of voltage

1.1 Improve accuracy of read CPU freq.

(c) 2017 SC Lee

If you like this thanks to support us:



Two $2.00 USD Five $5.00 USD Ten $10.00 USD







Usage

This program is a command tools that support Haswell and Broadwell Mac Device for undervoltage.

This use 'Intel Overclock Mailbox' for control the voltage offset, Your system may locked of the OC Mailbox and not avilable for undervoltage.

Undervoltage can reduced heat and sustain Turbo boost longer, provide longer battery preformance,although may unstable for the system.

This program do not provided GUI interface because this tools only load the MSR driver when apply, amend or read, the MSR driver will load and unloaded immediately for more security and lowest resource usage, after you test well, you can use our tools build up the launchd for automative apply on startup and maintance the setting transparently, please read below for detail.

This program support macOS 10.12 or above, however need to switch off the SIP for unsigned kext under Recovery mode:

Push Cmd + R when boot to Recovery mode, select Terminal at toolbar and enter:

csrutil enable --without kext

After reboot, ensure the kext and the command tool files on some directory.

You can view your current voltage offset,CPU freqency,power and temperture setting by following command:

./voltageshift info









You can continous monitor the CPU freqency,power and temperture by using: You can continous monitor the CPU freqency,power and temperture by using:

./voltageshift mon

Six type of voltage offset you can change, however we only suggest undervoltage of CPU and GPU.

./voltageshift offset CPU GPU CPUCache SystemAgency AnalogyIO DigtalIO

for example reduced CPU -50mv and GPU -50mv

./voltageshift offset -50 -50

If setting too low the system will freezing, please switch OFF fully and turn on computer for turn back to 0mv.

After you test well and comfort the setting, you can apply the launchd: (require sudo root)

sudo ./voltageshift buildlaunchd CPU GPU CPUCache SystemAgency AnalogyIO DigtalIO (UpdateMins)

The last is the update interval of the tool check and changed, the Default value is 160min,

deepsleep (suspend to Disk) will reset of the voltage setting, as sleep (suspend to memory) will not change the sleep value, it will scheduled check the setting in peroid, and amend if need.



0 for only apply the setting when bootup.



sudo ./voltageshift buildlaunchd -50 -50 0 0 0 0 60

set system auto apply CPU -50mv and GPU -50mv every boot and every 1 hour.

You can remove the launchd by following command:

./voltageshift removelaunchd

Additional

Use '--damage offset ...' if you want setting lower that 250mv or Overvoltage (!!! > 0V).

For launchd:

Manual change the launchd (com.sicreative.VoltageShift.plist under /Library/LaunchDaemons) by added

new ProgramArguments '--damage' between '/Library/Application Support/VoltageShift/voltageshift' and 'offsetdaemons'

For read the MSR

./voltageshift read 0xMSR

For set the MSR ./voltageshift write 0xMSR 0xValue

To set the Power Limted of PL1 (Long Term) and PL2 (Short Term) ./voltageshift power To set Turbo Enabled (0-no turbo 1-turbo): ./voltageshift turbo <0>0>

We also suggest run removelaunchd and them buildlaunchd if you need change the launchd setting.