Contribute
Register

[Guide] Native Power Management for Laptops

RehabMan

Moderator
Joined
May 2, 2012
Messages
181,111
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Overview

Power Management should be one of the first things implemented when trying to install OS X on a laptop. Because of heat/noise and battery life issues, using NullCPUPowerManagement is not a realistic option on a laptop. This guide will start assuming you are running Multibeast for the first time and wish to implement power management on a laptop with a Sandy Bridge, Ivy Bridge CPU, or Haswell CPU.

Make sure you download and use the latest version of Multibeast. Most laptops have locked CPU MSRs so you need a patched AppleIntelCPUPowerManagement.kext to avoid a KP upon boot. In fact, you just watch for updates to the system that might replace this kext and be sure to replace it with a patched version before rebooting following the update. Some laptops can flash a patched BIOS to avoid this problem, but I do not recommend it. Why risk bricking your laptop with a patched BIOS when a simple software change can accomplish the same thing?

You should be aware of what kind of CPU you have. A Sandy Bridge CPU will be Core iX-2xxx[U|M|QM]. An Ivy Bridge CPU will be a Core iX-3xxx[U|M|QM], and Haswell Core iX-4xxx[U|M|QM]. Know what the exact CPU is in your laptop and provide it in your profile. Just saying "I have a laptop with an i5" is not helpful.

Most of this guide's specifics are concerning Chameleon/Chimera bootloader configuration. If you're using Clover, the same concepts apply, but the details are different. Clover differences are covered at the end of the post.

First run of Multibeast (make sure you are using the latest version) select the following options:

- UserDSDT or DSDT-Free Installation
- Sandy/Ivy only: Drivers & Bootloaders -> Drivers -> System -> Patched AppleIntelCPUPowerManagement. With Haswell patched AICPUPM is not necessary, since PM is handled in the kernel instead. And, of course, you already had to patch mach_kernel to even make it this far.
(be sure to select the version appropriate for the version of OS X you have installed)

Note: If you have a laptop subject to "Local APIC panic" (HP consumer laptops, for example), you should install the KernelPatcher module from Chameleon to /Extra/modules. The KernelPatcher module is available from Chameleon Wizard and the Chameleon package installer.

Choosing an SMBIOS

If you have a laptop with Sandy Bridge CPU use Multibeast's Customization -> System Definitions -> MacBookPro8,1.

If you have an Ivy Bridge CPU, you should obtain/create an appropriate System Definition (/Extra/smbios.plist) for your laptop. If your CPU ends in 'U', you should probably use MacBookAir5,2. If your CPU ends in 'M' use the ProBook Installer to create a custom MacBookPro9,1 or MacBookPro9,2. To create a MacBookAir5,2 smbios.plist, use Chameleon Wizard.

If you have Haswell, you should use a Haswell era smbios. iMac14,2 is available in Multibeast, but one of the Haswell laptop smbios might be more appropriate. Chameleon Wizard has support for MacBookAir6,2, but MacBookPro11,2 must be created manually (use Clover Configurator for clues).

That should give you basic power management (without TurboBoost), plus a bootloader and a starter /Extra folder. You can reboot and test booting directly from your HDD at this point.

Custom SSDT for CPU

Next step is to install a custom SSDT using the ProBook Installer. Download the latest ProBook Installer and select only the SSDT option. Click continue to install it. It is important to have your final smbios in place before generating a custom SSDT, so make sure you reboot with the smbios in /Extra before continuing to generate an SSDT.

Note: Much of the content in the ProBook Installer is specific to the ProBook. But not the SSDT generator. It can be used on any computer with a Sandy/Ivy/Haswell CPU, even desktops.

Note: For Yosemite, it is recommended you use the latest version of ssdtPRgen.sh script here: https://github.com/Piker-Alpha/ssdtPRGen.sh. The script contained in the ProBook Installer is an older version and may not work on Yosemite.

Now that you have a custom SSDT, you should make a few changes to /Extra/org.chameleon.Boot.plist:

- set GenerateCStates=No
- set GeneratePStates=No
- add DropSSDT=Yes

You can use Chameleon Wizard to edit these options if you're not familiar with XML plists.

Testing PM

After installing the custom SSDT, you should reboot and test it. You can test using DPCIManager (1.5) by using the PStates monitor. AppleIntelCPUPowerManagementInfo.kext will generally provide more accurate results.

In addition, for Ivy Bridge or Haswell CPUs, you should run IORegistryExplorer and verify that X86PlatformPlugin is loading under the CPU0 node.

More information on Ivy Bridge PM is available here: http://www.tonymacx86.com/mountain-...tive-ivy-bridge-cpu-gpu-power-management.html

For Mavericks specific information, read here: http://www.tonymacx86.com/mavericks...vericks-native-cpu-igpu-power-management.html

Checklist

Here is a quick Ivy/Sandy/Haswell Power Management checklist.

- patched AppleIntelCPUPowerManagement installed (except on Haswell)
- SSDT installed to /Extra/ssdt.aml for your CPU (easiest to use ProBook Installer)
- appropriate System Definition (smbios.plist) for your CPU
- DropSSDT=Yes, GeneratePStates=No, GenerateCStates=No
- no rollbacks of AppleACPIPlatform.kext
- no NullCPUPowerManagement.kext (usually implies patched AppleIntelCPUPowerManagement)
- Processor objects declared in Scope (_SB) or Scope (_PR) in DSDT (pretty rare not to have them in OEM DSDT)
- Verify that the generated SSDT injects into the same scope as Processor declarations in DSDT (usually _PR)

AppleACPIPlatform and EmbeddedControl

Note: For Sandy Bridge PM, it is possible to run a rollback of AppleACPIPlatform.kext but it is discouraged. Watch out for battery manager packages that include a rolled back AppleACPIPlatform.kext.

Note: Running stock AppleACPIPlatform.kext means any DSDT methods that manipulate EC (EmbeddedControl) registers larger than 8-bits will not work and will cause the method to fail. These methods must be patched. Access to such registers is common in DSDT battery methods. Some patches are provided at my laptop DSDT patch repository at: https://github.com/RehabMan/Laptop-DSDT-Patch

Note on older CPUs

For CPUs older than Sandy Bridge, use GeneratePStates=Y GenerateCStates=Y DropSSDT=Y. No need for custom SSDT (there are no tools to generate one).

Notes on Clover

With Clover there are slight differences, although the same concepts apply.

Here is a quick Ivy/Sandy/Haswell Power Management checklist as it relates to Clover:
- obviously, with Clover, you're using the Clover Installer to get a bootloader on your HDD. So there is no need to use Multibeast.
- patched AppleIntelCPUPowerManagement can be patched on the fly with config.plist/KernelAndKextPatches/AsusAICPUPM=true
- the kernel can be patched for XCPM (Haswell) with config.plist/KernelAndKextPatches/KernelPm=true
- the kernel can be patched for "Local APIC" panic with config.plist/KernelAndKextPatches/KernelLapic=true
- generated SSDT should be placed at /EFI/CLOVER/ACPI/patched/SSDT.aml
- appropriate System Definition (SMBIOS) for your CPU in config.plist/SMBIOS. Use the Clover Configurator to generate one
- to drop all OEM SSDTs, use config.plist/ACPI/SSDT/DropOem=true. Note that some laptops will not boot if you drop certain SSDTs. So you need to be careful with the SSDTs dropped/excluded. Read the ACPI patching guide for more info: http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html. Also, certain Clover features such as FakeID can break if you don't include the necessary SSDTs.
- no rollbacks of AppleACPIPlatform.kext
- no NullCPUPowerManagement.kext (NullCPU is not even required during installation because AsusAICPUPM=true)
- Processor objects declared in Scope (_SB) or Scope (_PR) in DSDT (pretty rare not to have them in OEM DSDT)

Notes on DropSSDT=Yes and DropOem=true

Although the recommendation to drop SSDTs with DropSSDT=Yes (Chameleon) or DropOem=true (Clover), was once common and sometimes even necessary, with modern hardware it is not a good idea at all.

With modern Broadwell/Haswell/Ivy hardware the system almost always works better if you retain all the SSDTs. The newer systems may even have trouble booting if you eliminate them.

As a result, don't use DropSSDT=Yes or DropOem=true unless you have to. It is needed on certain computers Sandy Bridge and older.
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

Hello RehabMan, thank you very much for your continued support. What is the best place to ask questions regarding this post. Thanks
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

Hell RehabMan, thank you very much for your continued support. What is the best place to ask questions regarding this post. Thanks

Not necessary to quote the entire post...

If you're having trouble with a specific issue on your laptop, then open a separate thread. If you have a question regarding this guide, quote just the section of the guide you have the question with it and ask here.
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

To criate a new SSDT using Probook Installer, must I use the Vanila AICPM, correct? If i want to create this SSDT, must i uncheck ASUSAICPM and boot using NullCPUPowerManagement.kext (using clover bootloader)?

Thanks
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

To criate a new SSDT using Probook Installer, must I use the Vanila AICPM, correct? If i want to create this SSDT, must i uncheck ASUSAICPM and boot using NullCPUPowerManagement.kext (using clover bootloader)?

Thanks

No. No need for NullCPU with Clover as you can patch AppleIntelCPUPowerManagement.kext with AsusAICPUPM.
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

Hi. since I cannot find the same guide for desktop. Can I use your guide for my desktop?
In question is: asrcok pro4 z7 + i5 3450.


Greetings.

The process and requirements are the same for any computer. Obviously, desktops require different choices in smbios.
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

Choosing an SMBIOS

If you have a laptop with Sandy Bridge CPU use Multibeast's Customization -> System Definitions -> MacBookPro8,1.

If you have an Ivy Bridge CPU, you should obtain/create an appropriate System Definition (/Extra/smbios.plist) for your laptop. If your CPU ends in 'U', you should probably use MacBookAir5,2. If your CPU ends in 'M' use the ProBook Installer to create a custom MacBookPro9,1 or MacBookPro9,2. To create a MacBookAir5,2 smbios.plist, use Chameleon Wizard.

That should give you basic power management (without TurboBoost), plus a bootloader and a starter /Extra folder. You can reboot and test booting directly from your HDD at this point.

Custom SSDT for CPU

Next step is to install a custom SSDT using the ProBook Installer. Download the latest ProBook Installer and select only the SSDT option. Click continue to install it. It is important to have your final smbios in place before generating a custom SSDT, so make sure you reboot with the smbios in /Extra before continuing to generate an SSDT.

Thanks For the nice tutorial, just i have some concerns

I have 3630QM Ivy Bridge CPU so in Choosing SMBios you said use the probook installer :
the problem that the probook installer 6.1 support till Mavericks (not sure if it supports Yosemite too)
and the latest probook installer clover edition supports Yosemite but I'm not using clover

So 1: what should i use for Chimera and Yosemite combination ?
(i did used Chameleon Wizard to generate SMBios for MacBookPro9,1 hope its correct)

2nd issue that in Multibeast (Yosemite edition) i used Drivers & Bootloaders -> Drivers -> System -> Patched AppleIntelCPUPowerManagement but this kext in its description it shows only for mavericks
2: is this the one i should use for Yosemite?

3rd after installing Multibeast still I'm not able to boot (getting kernel panic about AppleIntelCPUPowerManagement)
so
3: how can i proceed now to SSDT patch since i couldn't boot yet using the new SMBios.plist ?

Thank You
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

Thanks For the nice tutorial, just i have some concerns

I have 3630QM Ivy Bridge CPU so in Choosing SMBios you said use the probook installer :
the problem that the probook installer 6.1 support till Mavericks (not sure if it supports Yosemite too)
and the latest probook installer clover edition supports Yosemite but I'm not using clover

There is nothing different about smbios between Mavericks/Yosemite.

So 1: what should i use for Chimera and Yosemite combination ?
(i did used Chameleon Wizard to generate SMBios for MacBookPro9,1 hope its correct)

That is fine too.

2nd issue that in Multibeast (Yosemite edition) i used Drivers & Bootloaders -> Drivers -> System -> Patched AppleIntelCPUPowerManagement but this kext in its description it shows only for mavericks
2: is this the one i should use for Yosemite?

Make sure you're using the Multibeast for Yosemite.

3rd after installing Multibeast still I'm not able to boot (getting kernel panic about AppleIntelCPUPowerManagement)

Try with DropSSDT=Yes. Post photo.
 
[GUIDE] Power Management for Sandy Bridge/Ivy Bridge/Haswell/other Laptops

There is nothing different about smbios between Mavericks/Yosemite.



That is fine too.



Make sure you're using the Multibeast for Yosemite.



Try with DropSSDT=Yes. Post photo.

Please check if this smbios is good because i don't know what will the kernel read from this file..

View attachment smbios.plist

with respect to multibeast Yes sure its yosemite edition even i downloaded many times to make sure after i got confused. check what i mean :

MultiBeast for Yosemite.jpg

And this is a screen shot of the kernel panic : (same with or without DropSSDT=Yes)
Kernel Panic.jpg

i just added now temporary nullCPUPM kext to be able to boot fine to OSX without USB (after having the kernel panic)
 
Back
Top