[Guide] Native Power Management for Hackintosh and How to Generate/Create SSDT

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

Requirements:

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 :

/EFI/CLOVER/kexts/Other

  Chameleon Bootloader :

/Extra/Extensions

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 .

 Note : its is Recommend to Follow Above steps bcoz we are going to change to change to bootloader configuration wich sometimes leads to unwanted situation backup of bootloader files are neccesarry and have a bootable USB with system working files is good for safer side too 

   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:

~/ssdtPRGen.sh

4.Type n, n

5.Open Finder and in menubar choose Go/Go to Folder…

6.Type ~/Library/ssdtPRGen/

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 :

  /Volumes/EFI/EFI/CLOVER/ACPI/patched/

Chameleon Bootloader :- 

/Extra/  

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 :

Code:

- 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:

<key>DropSSDT<string>  <string>Yes</string>  

 

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

 

NullCPUPowerManagement

 

System Specific:

/System/Library/Extensions  /Library/Extensions

Bootloader Specific:

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   

 

Credits:

Piker Alpha

RehabMan

Pimentel

4 Responses

  1. Mario Junior 11 months ago
    • Deepak 11 months ago
  2. Knowcontrol 8 months ago
    • Deepak 6 months ago

Add Comment