Contribute
Register

[Guide] Native Power Management for Laptops

Hi again, I've read the patching guide but it still not clear what to do next. Can you please provide steps or information about what exact patches do I need to apply in order to complete my build? Do you need some log files or a screenshot? Thanks in advance.

Exact patches can only be determined through experimentation and testing. The commonly needed patches are listed. Read the comments in each patch for an idea to its purpose.
 
Exact patches can only be determined through experimentation and testing. The commonly needed patches are listed. Read the comments in each patch for an idea to its purpose.
Ok, so I applied "7-series/8-series USB", "7-series USB3 Multiplex" and every single patch under "Common Patches" and things are getting so much better: I could finally get sleep to work with USB devices unplugged (ethernet and power cable seems working great with sleep). I'm really happy about that so thanks for helping me. I only need to make sleep work with USB and my laptop not to drain all my battery life when sleeping (and when awake too) to make it perfect. So do you have any more recommended patches for this issue?
 
Ok, so I applied "7-series/8-series USB", "7-series USB3 Multiplex" and every single patch under "Common Patches" and things are getting so much better: I could finally get sleep to work with USB devices unplugged (ethernet and power cable seems working great with sleep). I'm really happy about that so thanks for helping me. I only need to make sleep work with USB and my laptop not to drain all my battery life when sleeping (and when awake too) to make it perfect. So do you have any more recommended patches for this issue?

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
rm -R ~/Downloads/RehabMan
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Post contents of Downloads/RehabMan directory (as ZIP).

Also, post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

And output from:
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
 
I'm running into some issues with KPs and PStates for Intel Core i7 2820QM Sandybridge

What I did...

I followed this guide to extract my DSDT/SSDTs and ended up with 6 SSDT files (named SSDT, SSDT-1, SSDT-2,etc): http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html

I went through and patched both DSDT and SSDTs until all errors were gone and applied the appropriate patches for my machine. I got Yosemite 10.10.3 running w/Chimera and it recognized all of my DSDT/SSDTs + hardware. However, I was using NullCPUManagement Kext so native speed stepping/power management wasn't actually loaded.

I used this guide to generate my SSDT and compiled+saved to AML: http://www.insanelymac.com/forum/topic/295587-power-management-for-sandyivy-bridgehaswell-cpus/

I renamed the SSDT to SSDT-7 and dropped it in /E/E where all of the other SSDTs are stored (SSDT, SSDT-1, SSDT-2, etc through 6).

I then used the Perl script to patch the AppleIntelCPUPowermanagement kext and followed the "Final adjustments" instructions.
DropSSDT=Yes
GeneratePStates=No
GenerateCStates=No
Removed NullCPU from S/L/E
Kext Wizard to rebuild permissions + cache

When I rebooted I got "P-State Stepper Error 18 at step 35 in context 2 on CPU 2".
https://www.dropbox.com/s/bpcqst0rnw13c08/IMG_20150610_193806.jpg?dl=0

Any idea?

edit1: I should note that I am using the SMBIOS for the MBP8,2 which uses the same exact CPU as mine.
 
I'm running into some issues with KPs and PStates for Intel Core i7 2820QM Sandybridge

What I did...

I followed this guide to extract my DSDT/SSDTs and ended up with 6 SSDT files (named SSDT, SSDT-1, SSDT-2,etc): http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html

I went through and patched both DSDT and SSDTs until all errors were gone and applied the appropriate patches for my machine. I got Yosemite 10.10.3 running w/Chimera and it recognized all of my DSDT/SSDTs + hardware. However, I was using NullCPUManagement Kext so native speed stepping/power management wasn't actually loaded.

I used this guide to generate my SSDT and compiled+saved to AML: http://www.insanelymac.com/forum/topic/295587-power-management-for-sandyivy-bridgehaswell-cpus/

I renamed the SSDT to SSDT-7 and dropped it in /E/E where all of the other SSDTs are stored (SSDT, SSDT-1, SSDT-2, etc through 6).

I then used the Perl script to patch the AppleIntelCPUPowermanagement kext and followed the "Final adjustments" instructions.
DropSSDT=Yes
GeneratePStates=No
GenerateCStates=No
Removed NullCPU from S/L/E
Kext Wizard to rebuild permissions + cache

When I rebooted I got "P-State Stepper Error 18 at step 35 in context 2 on CPU 2".
https://www.dropbox.com/s/bpcqst0rnw13c08/IMG_20150610_193806.jpg?dl=0

Any idea?

edit1: I should note that I am using the SMBIOS for the MBP8,2 which uses the same exact CPU as mine.

Make sure you generated SSDT with the SMBIOS already active (eg. installed and rebooted).

Post /Extra folder if you need something checked.
 
Make sure you generated SSDT with the SMBIOS already active (eg. installed and rebooted).

Post /Extra folder if you need something checked.
See attachment for Extra folder. "About this Mac" is showing the proper specs for the MBP8,2 so I do believe it's active.

EDIT: Just re-ran the script and re-copied/pasted everything into the folder, fixed permissions+cache, and rebooted and now it's working LOL.

P-States: 8, 11, 15, 19, 23, 27, 29, 31. These seem pretty normal to me I guess. I think most people hover at around 6-8 states?
Occasionally I get "P states I/O error, throttling to 8hz". Not sure if that is something to worry about.
 

Attachments

  • Extra.zip
    983.3 KB · Views: 79
See attachment for Extra folder. "About this Mac" is showing the proper specs for the MBP8,2 so I do believe it's active.

EDIT: Just re-ran the script and re-copied/pasted everything into the folder, fixed permissions+cache, and rebooted and now it's working LOL.

P-States: 8, 11, 15, 19, 23, 27, 29, 31. These seem pretty normal to me I guess. I think most people hover at around 6-8 states?
Occasionally I get "P states I/O error, throttling to 8hz". Not sure if that is something to worry about.

Yes, you must generate SSDT with your chosen SMBIOS active. The guide in post #1 does its best to make this clear.

The throttling error from DPCIManager is normal.
 
Hi RehabMan,

I followed this guide in order to get power management working... I´m using clover so, I followed these steps:


- patched AppleIntelCPUPowerManagement can be patched on the fly with config.plist/KernelAndKextPatches/AsusAICPUPM=true

Enabled this on config.plist using clover configurator.

- 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

Enabled this on config.plist using clover configurator.

- generated SSDT should be placed at /EFI/CLOVER/ACPI/patched/SSDT.aml

I generated the SDST.aml file using https://github.com/Piker-Alpha/ssdtPRGen.sh

- appropriate System Definition (SMBIOS) for your CPU in config.plist/SMBIOS. Use the Clover Configurator to generate one

I´m using iMac 14.2 Haswell.

- to drop all OEM SSDTs, use config.plist/ACPI/SSDT/DropOem=true

Enabled via clover configurator.

- no rollbacks of AppleACPIPlatform.kext

Not sure what this means... help!

- no NullCPUPowerManagement.kext (NullCPU is not even required during installation because AsusAICPUPM=true)

Removed it from EFI/clover/kexts/10.10

- Processor objects declared in Scope (_SB) or Scope (_PR) in DSDT (pretty rare not to have them in OEM DSDT)

I see them in OEM DSDT (meaning that they are there when I run MaciASL and the tool loads from BIOS).

I also did this in clover configurator:

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

Machine boots fine but I lost EQ/CI...

Any ideas?

Thanks!
 
Hey Guys,

I have a Lenovo W520 with Sandy - comes with Intel HD 3000 and Nvidia Quadro 1000m (Quadro disabled in BIOS).


I was following this Guide for patching DSDT/SSDT http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html -starting off with my DSDT and SSDTs which was going well.

So I extracted (via Linux) all my SSDT*s - followed the instructions carefully - disassembled to .dsl, compiled (fixing errors), and Save AS .aml again.

So now I have 7 SSDTs - renamed it to SSDT, SSDT-1.aml, SSDT-2.aml .. and so on.

Made sure I don't have NullCPU*.kext in my /Extra/Extensions and /S/L/E

I also made sure I'm using the patched AppleIntelCPUManagement.kext (10.9 - from the latest Unibeast).

DropSSDT=Yes
C and P States = No

I put my DSDT/SSDTs in my /Extra

However, I still get a kernel panic when booting normally.

I could only boot with -f fine without Kernel Panic. Once I boot normally (my UseKernelCache=Yes in my org.chameleon) it KPanics. I tried to rebuild the kextcache and still nogo.


So I'm just wondering if I still have to follow this Thread Guide (Native Power Management for Laptops) if I already have my patched SSDTs from the other guide?

Would clover be a better options since it patches AICM on the fly?

Thanks!
 
Back
Top