RehabMan
Moderator
- Joined
- May 2, 2012
- Messages
- 181,058
- Motherboard
- Intel DH67BL
- CPU
- i7-2600K
- Graphics
- HD 3000
- Mac
- Mobile Phone
So here's my follow up post on how I got a full range of P-States to work on MacOS.
The guide provided does indeed tell MacOS to use P-States but it is using a subset of the available states and bottoms out at a 1.3GHz state. Following these steps will allow your CPU to drop to 0.8GHz leading to power savings.
NOTE: IF YOU USE THE ATTACHED CLOVER CONFIGURATION YOU CAN START FROM STEP 6!!!! Although please remember to replace your serial numbers into the provided config.plist.
Step 1:
Download the script from: https://github.com/Piker-Alpha/ssdtPRGen.sh
"curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh" - taken from the git repo.
Step 2:
Run the script with the following parameters. NOTE: This guide assumes you are using the Macbook14,3 SMBIOS. It appears MacOS has better support for Kabylake in the 14,x+ models. Although I could be wrong on this.
"./ssdtPRGen.sh -target 5 -xcpm 1 -lfm" - we set the -xcpm 1 flag as the clover configuration has it set. If this isn't set no change will happen. -lfm tells the script to allow the lowest possible P-State frequency which appears to be 500MHz. Although a later script that we will use to tell MacOS to use this new range of P-States doesn't seem to include it.
Step 3:
Copy the two produced files ssdt.aml and ssdt.dsl to your ACPI/Patched folder. For me this was done with the following command assuming my EFI volume was mounter at /Volumes/EFI.
"sudo cp ssdt.aml /Volumes/EFI/EFI/CLOVER/ACPI/patched/SSDT-PR.aml"
"sudo cp ssdt.dsl /Volumes/EFI/EFI/CLOVER/ACPI/patched/SSDT-PR.dsl"
Step 4:
Enable the new SSDT in your clover configuration. Using CloverConfiguration in the ACPI tab, add "SSDT-PR.aml" to the SortedOrder list in the bottom right.
Step 5:
Reboot.
Step 6:
Backup a file from a kext that we are about to overwrite. This file tells MacOS which power states it can use. Since it defaults to a subset, we want to override it to tell it to use more of them to help us achieve lower idle frequencies.
In the SMBIOS tab of CloverConfigurator, note down the Board-ID. For Macbook14,3 this is Mac-551B86E5744E2388. There is a corresponding file called Mac-551B86E5744E2388.plist in '/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources/'. Copy this file to a safe place. E.g.:
"sudo cp /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources/Mac-551B86E5744E2388.plist ~"
Step 7:
Clone https://github.com/Piker-Alpha/freqVectorsEdit.sh.git into a directory and run freqVectorsEdit.sh and choose the option corresponding to your SMBIOS board id. For me this was the option with Mac-551B86E5744E2388. This will overwrite your file in the kext and trigger a kextcache update.
"./freqVectorsEdit.sh"
Step 8:
Once the command has exited, I chose to rerun the kextcache command to make sure it worked.
"sudo kextcache -i /"
Step 9:
Reboot. You should now have a working set of P-States. You can analyze this by using the AppleIntelInfo kext or IntelPowerGadget and you should see an idle frequency of around 800MHz.
CREDITS: Piker-Alpha for his awesome scripts!
No need for ssdtPRgen.sh with your hardware.
You need only SSDT-PluginType1.aml as per guide:
https://www.tonymacx86.com/threads/guide-native-power-management-for-laptops.175801/