VoltageShift icon indicating copy to clipboard operation
VoltageShift copied to clipboard

VoltageShift in MacOs Monterey

Open kelvincht opened this issue 3 years ago • 11 comments

Has anybody made a working example of using VoltageShift in MacOs 12?

kelvincht avatar Nov 10 '21 05:11 kelvincht

Yes, you can find it in my repository here https://github.com/zspherez/VoltageShift/tree/master

zspherez avatar Dec 27 '21 23:12 zspherez

@zspherez Does this still require firmware modding (#44) or should this just work?

brechtm avatar Jan 28 '22 16:01 brechtm

@brechtm I did not do any firmware modding, and it seems to be working properly for me as per attached picture. Just follow the instructions in my repo closely. image

zspherez avatar Jan 28 '22 18:01 zspherez

@brechtm I did not do any firmware modding, and it seems to be working properly for me as per attached picture. Just follow the instructions in my repo closely. image

The README mentions "After you build the kext, be sure to load it into your EFI.", but I'm not sure what that means exactly. I suspect this might be a Hackintosh thing, so it might not be possible on a real Mac?

I do happen to be using OpenCore Legacy Patcher (OCLP) to be able to run Monterey on my 2014 MacBook, however. The OCLP partition has an EFI/OC/Kexts directory, so I'll try dropping the VoltageShift kext in there...

brechtm avatar Jan 30 '22 21:01 brechtm

I managed to install the VoltageShift kext by copying it to the EFI/OC/Kexts directory and adding an entry for it (using ProperTree) to EFI/OC/config.plist.

Now I can use voltageshift to dis/enable turbo boost and set power limits, but setting a voltage offset doesn't seem to work:

 ~/Tools/VoltageShift master 🐚 ./build/Release/voltageshift offset -60
--------------------------------------------------------------------------
VoltageShift offset Tool
--------------------------------------------------------------------------
Before CPU voltageoffset: 0mv
--------------------------------------------------------------------------
After CPU voltageoffset: 0mv
--------------------------------------------------------------------------

EDIT: Looks like this still requires a firmware mod (#82). OpenCore might be able to patch the firmware in memory though, since it mentions "Enables non-invasive, non-permanent firmware updates by replacing protocols in memory".

brechtm avatar Jan 31 '22 08:01 brechtm

That's interesting. I use VoltageShift on a hackintosh, and often forget that it is used on traditional macs as well. I'm surprised that OCLP does not enable the same firmware updates that required no additional configuration on my end from what I remember. My laptop doesn't allow undervolting through the BIOS, but the offset applied via VoltageShift seems to be working properly, seen by greatly increased battery life and decreased temperatures.

zspherez avatar Jan 31 '22 18:01 zspherez

EDIT: Looks like this still requires a firmware mod (#82Detail). OpenCore might be able to patch the firmware in memory though, since it mentions "Enables non-invasive, non-permanent firmware updates by replacing protocols in memory".

u got success to mod your eeprom after OCLP/Monterey firmware update?

and... have you seen some battery improvement using Monterey?

imloualvaro avatar Feb 06 '22 06:02 imloualvaro

@zspherez Sorry, I can't raise an issue on your repo so I have to comment here. You mention in your readme update that you've removed the binary because if people compile themselves they can use their own certs. However as far as I can tell, unless one has a full Apple developer account and also applies to be a kext developer, then you still need to disable SIP. I compiled using my own 'Mac Developer' cert and I cant load the kext with SIP enabled. Am I missing something?

mattsoutherden avatar Mar 03 '22 10:03 mattsoutherden

@mattsoutherden thanks for the heads up, I enabled issues on that repo. I personally was able to load it without a full kext developer cert, I have no developer cert other than the free one. I have SIP enabled and it still works like a charm. Are you doing this on a hackintosh or a traditional mac? I don't think it would make much of a difference, if you are able to load other kexts you should be able to load this one. Also, try ensuring that you used the version of the kext you built, rather than any other one you may have had laying around.

zspherez avatar Mar 05 '22 01:03 zspherez

Feel free to open an issue on my repo if you'd like to discuss further.

zspherez avatar Mar 05 '22 01:03 zspherez

@zspherez Why does readme state I need to sign the kext while also saying to put it in OpenCore EFI kexts ? OpenCore loads unsigned kexts fine and I'm running an unsigned build of voltageshift.kext (built on another PC) without any issues on Monterey SIP on.

xCuri0 avatar Jun 13 '23 18:06 xCuri0