This is very detailed guide for How to create a SSDT andPower Management under Mac OS X only (Hackintosh).
What is PowerManagement ?
Power Management is a feature of some electrical appliances, especially copiers, computers, GPUs and computer peripherals such as monitors and printers, that turns off the power or switches the system to a low-power state when inactive. In computing this is known as PC power management and is built around a standard called ACPI. This supersedes APM. All recent (consumer) computers have ACPI support.
In Simple Words : Power Management often refers to suites of equipment which permit soldiers and squads to share diverse energy sources, powering often incompatible equipment.
Source : Wikipedia
Why its necessary for Hackintosh ? Power Management is very crucial and first requirement for Hackintosh Laptop and Desktop as well, Because of heat/noise and battery life issues etc is more necessary for Laptop also for Desktop to Enable Intel SpeedStep and Native CPU PowerMangement. Most important is Sleep in Hackintosh , you can’t get Sleep working without having working PowerManagement
1.Working internet connection
2.Appropriate SMBIOS(Which matches with CPU) for your CPU using Clover Configurator or other tool .
3.No NullCPUPowerManagement is used by OSX .(How to check : look to end of Guide )
We will gonna use Piker Alpha’s ssdtPRGen script to generate a Custom SSDT for you Hackintosh.you can use this SSDT to achieve the maximum amount of power states for your CPU Desktop and Laptop as well
Caution: Recommended step to be followed :
Before Start you have to follow steps are mentioned below
1.Create a Bootable USB of Bootloader wichever you used like : Clover or Chameleon
2. Copy/apply your working setting to configuration file of Bootloader’s e.g : Config.plist or org.chameleon.boot.plist
3. Now Download NullCPUPowerManagement kext from here
4. copy this to Bootloader specific location as below :
Clover Bootloader :
Chameleon Bootloader :
5.Now you should use this USB to boot to system if you received Kernel Panic of AppleIntelCPUPowerManagement
Fortunately, with Clover, you NullCPUPowerManagement is never needed but if you are with Chameleon or its branch then you need to use Patched AppleIntelCPUPowermanagement.kext instead of NullCPUPowerManagement.kext .
How to Generate a SSDT for CPU Power Management
1. Open Terminal and copy paste below Code:
curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh
2. That will download ssdtPRGen.sh to your user directory. The next step is to change the file mode (+x) with Code:
chmod +x ~/ssdtPRGen.sh
3.For default SSDT generation, type: Code:
4.Type n, n
5.Open Finder and in menubar choose Go/Go to Folder…
7.Copy SSDT.aml to Install the SSDT into the appropriate location based on the Boot Loader being used
Clover Bootloader :-
First EFI Partition using any EFI Mounter then proceed to following path :
Chameleon Bootloader :-
NOTE: The Power Management SSDT should always be SSDT.aml.If you have an SSDT.aml there already, rename it SSDT-1.aml, so on etc..
Optional Steps : Extra Workarounds for Unsupported CPU by this Script ssdtPRGen
If you have a CPU currently unsupported by the script, you may have to provide the data for it.
1.For example, i5-2500K: Code:
./ssdtPRGen.sh -p ‘i5-2500K' -f 3300 -turbo 3700
By providing the name ‘i5-2500K’, and overrides for the non-turbo and turbo frequencies, the script is successful. Eventually, it would not be necessary, provided the script is updated with the new CPUs.
2. When it asks if you want to copy to /Extra just respond ‘n’.
3.Same for opening ssdt.dsl… type ‘n’.
4.The results are at ~/Library/ssdtPRgen/SSDT.aml.
5. Copy SSDT.aml to Bootloader path as according to (mentioned above)
Final Steps :
For Clover Bootloader :
- SSDT.aml at EFI/Clover/ACPI/patched - SSDT.aml at EFI/Clover/ACPI/SSDT/DropOem = Yes
- config.plist/KernelAndKextPatches/AsusAICPUPM=true (pre-Haswell)
- config.plist/KernelAndKextPatches/KernelPm=true (Haswell+)
- config.plist/KernelAndKextPatches/KernelLapic=true (for those with Local APIC panic)
For Chameleon Bootloader :
To make the Chameleon recognize your SSDT, enable DropSSDT in org.chameleon Code:
How to check NullCPUPowerManagement Kext is using by Mac OSX
1. Open Terminal and copy paste below Code:
kextstat | grep -y nullcpu
2.If you received received output like this screenshot then you need to remove NullCPUPowermanagement.kext from appropriate location which are
Clover : EFI/Clover/Kexts/ Chameleon : Extra/Extensions/
Note : finally you can restart your system but if you received Kernel Panic “AppleIntelCPUPowermanagement.Kext “ then Select Clover AsusAICPM or Use Patched AppleIntelCPUPowermanagement.kext
For Older CPU’s
For CPUs older than Sandy Bridge, use config.plist/Generate=true instead of custom SSDT.aml.
How to check is your PowerManagement working or not ? read this guide : How to Check PowerManagement in Hackintosh