Contribute
Register

[Guide] Native Power Management for Laptops

CPU usage seems fine
Screen Shot 2019-02-10 at 6.45.24 AM.png
 
Hi RehabMan,

I would like your advice regarding power management. I got my hackintosh laptop working almost perfectly, except the power management.
I followed the steps in this guide, also disabled Nvidia GPU to save battery power, but I still can't seem to get the same (or similar) battery hours as in Win10.

The problem is that my battery lasts only about 70 minutes on Hackintosh (Mojave 10.14.2), but about 4-5 hours while using Win10 in power-saving mode.

Could you please take a look at my problem reporting files and advise? I can't seem to find the culprit.

Thank you,
Petr
 

Attachments

  • 2019-02-11_problem_reporting_files_Petr-Barborik.zip
    2.4 MB · Views: 102
Hi RehabMan,

I would like your advice regarding power management. I got my hackintosh laptop working almost perfectly, except the power management.
I followed the steps in this guide, also disabled Nvidia GPU to save battery power, but I still can't seem to get the same (or similar) battery hours as in Win10.

The problem is that my battery lasts only about 70 minutes on Hackintosh (Mojave 10.14.2), but about 4-5 hours while using Win10 in power-saving mode.

Could you please take a look at my problem reporting files and advise? I can't seem to find the culprit.

Thank you,
Petr

NVMe runs without PM on macOS. Replace with M.2 SATA device.
Your USB configuration is not correct (refer to guides linked from FAQ).
Remove all extra/unneeded software (start with fresh install).
 
apologies, TLDR ....

Has the whole 'csrutil disable'/'csrutil enable' discussion taken place re deleting sleep image in Mojave?

Just wondering if the guide can be updated to include this info ...

great guide btw; only 1/10th the way through it
 
I have a problem with lowest frequency, on AppleIntelInfo say my CPU Low Frequency Mode 400MHz, but CPU P-States just stuck on 13 (is that mean 1300MHz?) my notebook produce more heat than usual, hope anyone can help me.
i'm using Acer E5-476G with i3-6006U processor, this i provided AppleIntelInfo and SSDT.dsl generated by ssdtPRGen
i have confirmed X86PlatformPlugin running on CPU0 with CPUPStates same as SSDT.aml from ssdtPRGen
Thanks

edit
solved, just need to change LFM of MacBook Pro 13,2 with FreqVectorEdit by Piker-Alpha, and now my notebook can touch 400MHz as stated by the CPU..
maybe @RehabMan can use this information to edit the first page, wondering if someone having the same problem... Thanks for your tutorial, great work!
 

Attachments

  • AppleIntelInfo.txt
    32.9 KB · Views: 127
  • ssdt.dsl
    9.1 KB · Views: 156
  • Screen Shot 2019-02-16 at 21.27.03.png
    Screen Shot 2019-02-16 at 21.27.03.png
    175.9 KB · Views: 134
Last edited:
frequency always remains constant
how do I fix them


389077

Code:
AppleIntelInfo.kext v1.4 Copyright © 2012-2015 Pike R. Alpha. All rights reserved

Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 1
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x3235de7721d
MWAIT C-States.....................: 286531872

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35)  : 0x20004
MSR_PLATFORM_INFO..........(0xCE)  : 0x4043DF1011B00
MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E008005
MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x51814
IA32_MPERF.................(0xE7)  : 0x19B924D55C7
IA32_APERF.................(0xE8)  : 0xF00FB68A75
MSR_FLEX_RATIO.............(0x194) : 0x0
MSR_IA32_PERF_STATUS.......(0x198) : 0x219800001F00
MSR_IA32_PERF_CONTROL......(0x199) : 0x1F00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88212800
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x401CC1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x1F1F1F1F
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x5
MSR_POWER_CTL..............(0x1FC) : 0x24005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x4280C800DD8078
MSR_PKG_ENERGY_STATUS......(0x611) : 0xB7457D6
MSR_PKG_POWER_INFO.........(0x614) : 0x78
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x0
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x84B7FDC
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PKGC6_IRTL.............(0x60b) : 0x8876
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0xCFCBF607
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0xDC530
IA32_TSC_DEADLINE..........(0x6E0) : 0x323624E9973
PCH device.................: 0x9D588086

Intel Register Data
------------------------------------
CPU_VGACNTRL...............: 0x80002900
IS_ELSE(devid)
DCC........................: 0x00000000 ()
CHDECMISC..................: 0x00000000 (none, ch2 enh disabled, ch1 enh disabled, ch0 enh disabled, flex disabled, ep not present)
C0DRB0.....................: 0x00000000 (0x0000)
C0DRB1.....................: 0x00000000 (0x0000)
C0DRB2.....................: 0x00000000 (0x0000)
C0DRB3.....................: 0x00000000 (0x0000)
C1DRB0.....................: 0x00000000 (0x0000)
C1DRB1.....................: 0x00000000 (0x0000)
C1DRB2.....................: 0x00000000 (0x0000)
C1DRB3.....................: 0x00000000 (0x0000)
C0DRA01....................: 0x00000000 (0x0000)
C0DRA23....................: 0x00000000 (0x0000)
C1DRA01....................: 0x00000000 (0x0000)
C1DRA23....................: 0x00000000 (0x0000)
PGETBL_CTL.................: 0x00000000
VCLK_DIVISOR_VGA0..........: 0x00800000 (n = 0, m1 = 0, m2 = 0)
VCLK_DIVISOR_VGA1..........: 0x00800000 (n = 0, m1 = 0, m2 = 0)
VCLK_POST_DIV..............: 0x00800000 (vga0 p1 = 2, p2 = 2, vga1 p1 = 2, p2 = 2)
DPLL_TEST..................: 0x00000000 (, DPLLA input buffer disabled, DPLLB input buffer disabled)
CACHE_MODE_0...............: 0x00000000
D_STATE....................: 0x00000000
DSPCLK_GATE_D..............: 0x00800000 (clock gates disabled: TVRUNIT)
RENCLK_GATE_D1.............: 0x00800000
RENCLK_GATE_D2.............: 0x00000000
SDVOB......................: 0x00000000 (disabled, pipe A, stall disabled, not detected)
SDVOC......................: 0x00000000 (disabled, pipe A, stall disabled, not detected)
SDVOUDI....................: 0x00000000
DSPARB.....................: 0x00000010
FW_BLC.....................: 0x00000010
FW_BLC2....................: 0x00000000
FW_BLC_SELF................: 0x00004000
DSPFW1.....................: 0x80000000
DSPFW2.....................: 0x00000000
DSPFW3.....................: 0x00000000
ADPA.......................: 0x00000000 (disabled, pipe A, -hsync, -vsync)
LVDS.......................: 0x00000000 (disabled, pipe A, 18 bit, 1 channel)
DVOA.......................: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync)
DVOB.......................: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync)
DVOC.......................: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync)
DVOA_SRCDIM................: 0x00000000
DVOB_SRCDIM................: 0x00000000
DVOC_SRCDIM................: 0x00000000
BLC_PWM_CTL................: 0x00000000
BLC_PWM_CTL2...............: 0x00000000
PP_CONTROL.................: 0x00000000 (power target: off)
PP_STATUS..................: 0x00000000 (off, not ready, sequencing idle)
PP_ON_DELAYS...............: 0x00000000
PP_OFF_DELAYS..............: 0x00000000
PP_DIVISOR.................: 0x00000000
PFIT_CONTROL...............: 0x00000000
PFIT_PGM_RATIOS............: 0x00000000
PORT_HOTPLUG_EN............: 0x00000000
PORT_HOTPLUG_STAT..........: 0x00000000
DSPACNTR...................: 0xc2080400 (enabled, pipe A)
DSPASTRIDE.................: 0x0000000b (11 bytes)
DSPAPOS....................: 0x00000000 (0, 0)
DSPASIZE...................: 0x02ff0555 (1366, 768)
DSPABASE...................: 0x00000000
DSPASURF...................: 0x40986000
DSPATILEOFF................: 0x00000000
PIPEACONF..................: 0x00000000 (disabled, single-wide)
PIPEASRC...................: 0x055502ff (1366, 768)
PIPEASTAT..................: 0x00000000 (status:)
PIPEA_GMCH_DATA_M..........: 0x00000000
PIPEA_GMCH_DATA_N..........: 0x00000000
PIPEA_DP_LINK_M............: 0x00000000
PIPEA_DP_LINK_N............: 0x00000000
CURSOR_A_BASE..............: 0x04300000
CURSOR_A_CONTROL...........: 0x00000000
CURSOR_A_POSITION..........: 0x019502c8
FPA0.......................: 0x00800000 (n = 0, m1 = 0, m2 = 0)
FPA1.......................: 0x00800000 (n = 0, m1 = 0, m2 = 0)
DPLL_A.....................: 0x00800000 (disabled, non-dvo, VGA, default clock, unknown mode, p1 = 8, p2 = 0)
DPLL_A_MD..................: 0x00000000
HTOTAL_A...................: 0x00000000 (1 active, 1 total)
HBLANK_A...................: 0x00000000 (1 start, 1 end)
HSYNC_A....................: 0x00000000 (1 start, 1 end)
VTOTAL_A...................: 0x00000000 (1 active, 1 total)
VBLANK_A...................: 0x00000000 (1 start, 1 end)
VSYNC_A....................: 0x00000000 (1 start, 1 end)
BCLRPAT_A..................: 0x00000000
VSYNCSHIFT_A...............: 0x00000000
DSPBCNTR...................: 0x00000000 (disabled, pipe A)
DSPBSTRIDE.................: 0x00000000 (0 bytes)
DSPBPOS....................: 0x00000000 (0, 0)
DSPBSIZE...................: 0x00000000 (1, 1)
DSPBBASE...................: 0x00000000
DSPBSURF...................: 0x00000000
DSPBTILEOFF................: 0x00000000
PIPEBCONF..................: 0x00000000 (disabled, single-wide)
PIPEBSRC...................: 0x00000000 (1, 1)
PIPEBSTAT..................: 0x00000000 (status:)
PIPEB_GMCH_DATA_M..........: 0x00000000
PIPEB_GMCH_DATA_N..........: 0x00000000
PIPEB_DP_LINK_M............: 0x00000000
PIPEB_DP_LINK_N............: 0x00000000
CURSOR_B_BASE..............: 0x00000000
CURSOR_B_CONTROL...........: 0x00000000
CURSOR_B_POSITION..........: 0x00000000
FPB0.......................: 0x00000000 (n = 0, m1 = 0, m2 = 0)
FPB1.......................: 0x00000000 (n = 0, m1 = 0, m2 = 0)
DPLL_B.....................: 0x00000000 (disabled, non-dvo, VGA, default clock, unknown mode, p1 = 0, p2 = 0)
DPLL_B_MD..................: 0x00800000
HTOTAL_B...................: 0x00000000 (1 active, 1 total)
HBLANK_B...................: 0x00000000 (1 start, 1 end)
HSYNC_B....................: 0x00000000 (1 start, 1 end)
VTOTAL_B...................: 0x00000000 (1 active, 1 total)
VBLANK_B...................: 0x00000000 (1 start, 1 end)
VSYNC_B....................: 0x00000000 (1 start, 1 end)
BCLRPAT_B..................: 0x00000000
VSYNCSHIFT_B...............: 0x00000000
VCLK_DIVISOR_VGA0..........: 0x00800000
VCLK_DIVISOR_VGA1..........: 0x00800000
VCLK_POST_DIV..............: 0x00800000
VGACNTRL...................: 0x00000000 (enabled)
TV_CTL.....................: 0x00000000
TV_DAC.....................: 0x00000000
TV_CSC_Y...................: 0x00000000
TV_CSC_Y2..................: 0x00000000
TV_CSC_U...................: 0x00000000
TV_CSC_U2..................: 0x00000000
TV_CSC_V...................: 0x00000000
TV_CSC_V2..................: 0x00000000
TV_CLR_KNOBS...............: 0x00000000
TV_CLR_LEVEL...............: 0x00000000
TV_H_CTL_1.................: 0x00000000
TV_H_CTL_2.................: 0x00000000
TV_H_CTL_3.................: 0x00000000
TV_V_CTL_1.................: 0x00000000
TV_V_CTL_2.................: 0x00000000
TV_V_CTL_3.................: 0x00000000
TV_V_CTL_4.................: 0x00000000
TV_V_CTL_5.................: 0x00000000
TV_V_CTL_6.................: 0x00000000
TV_V_CTL_7.................: 0x00000000
TV_SC_CTL_1................: 0x00000000
TV_SC_CTL_2................: 0x00000000
TV_SC_CTL_3................: 0x00000000
TV_WIN_POS.................: 0x00000000
TV_WIN_SIZE................: 0x00000000
TV_FILTER_CTL_1............: 0x00000000
TV_FILTER_CTL_2............: 0x00000000
TV_FILTER_CTL_3............: 0x00000000
TV_CC_CONTROL..............: 0x00000000
TV_CC_DATA.................: 0x00000000
TV_H_LUMA_0................: 0x00000000
TV_H_LUMA_59...............: 0x00000000
TV_H_CHROMA_0..............: 0x00000000
TV_H_CHROMA_59.............: 0x00000000
FBC_CFB_BASE...............: 0x00000003
FBC_LL_BASE................: 0x00000003
FBC_CONTROL................: 0x00000003
FBC_COMMAND................: 0x00000003
FBC_STATUS.................: 0x00000003
FBC_CONTROL2...............: 0x00000003
FBC_FENCE_OFF..............: 0x00000300
FBC_MOD_NUM................: 0x00000003
MI_MODE....................: 0x00000200
MI_ARB_STATE...............: 0x00000102
MI_RDRET_STATE.............: 0x00000000
ECOSKPD....................: 0x00000000
DP_B.......................: 0x00000000
DPB_AUX_CH_CTL.............: 0x00000000
DPB_AUX_CH_DATA1...........: 0x00000000
DPB_AUX_CH_DATA2...........: 0x00000000
DPB_AUX_CH_DATA3...........: 0x00000000
DPB_AUX_CH_DATA4...........: 0x00000000
DPB_AUX_CH_DATA5...........: 0x00000000
DP_C.......................: 0x00000000
DPC_AUX_CH_CTL.............: 0x00000000
DPC_AUX_CH_DATA1...........: 0x00000000
DPC_AUX_CH_DATA2...........: 0x00000000
DPC_AUX_CH_DATA3...........: 0x00000000
DPC_AUX_CH_DATA4...........: 0x00000000
DPC_AUX_CH_DATA5...........: 0x00000000
DP_D.......................: 0x00000000
DPD_AUX_CH_CTL.............: 0x00000000
DPD_AUX_CH_DATA1...........: 0x00000000
DPD_AUX_CH_DATA2...........: 0x00000000
DPD_AUX_CH_DATA3...........: 0x00000000
DPD_AUX_CH_DATA4...........: 0x00000000
DPD_AUX_CH_DATA5...........: 0x00000000
AUD_CONFIG.................: 0x00000000
AUD_HDMIW_STATUS...........: 0x00000000
AUD_CONV_CHCNT.............: 0x00000000
VIDEO_DIP_CTL..............: 0x00000000
AUD_PINW_CNTR..............: 0x00000000
AUD_CNTL_ST................: 0x00000000
AUD_PIN_CAP................: 0x00000000
AUD_PINW_CAP...............: 0x00000000
AUD_PINW_UNSOLRESP.........: 0x00000000
AUD_OUT_DIG_CNVT...........: 0x00000000
AUD_OUT_CWCAP..............: 0x00000000
AUD_GRP_CAP................: 0x00000000
FENCE  0...................: 0x00000000 (disabled)
FENCE  1...................: 0x00000000 (disabled)
FENCE  2...................: 0x00000000 (disabled)
FENCE  3...................: 0x00000000 (disabled)
FENCE  4...................: 0x00000000 (disabled)
FENCE  5...................: 0x00000000 (disabled)
FENCE  6...................: 0x00000000 (disabled)
FENCE  7...................: 0x00000000 (disabled)
FENCE  8...................: 0x00000000 (disabled)
FENCE  9...................: 0x00000000 (disabled)
FENCE  10..................: 0x00000000 (disabled)
FENCE  11..................: 0x00000000 (disabled)
FENCE  12..................: 0x00000000 (disabled)
FENCE  13..................: 0x00000000 (disabled)
FENCE  14..................: 0x00000000 (disabled)
FENCE  15..................: 0x00000000 (disabled)
FENCE START 0..............: 0x00000000 ()
FENCE END 0................: 0x00000000 ()
FENCE START 1..............: 0x00000000 ()
FENCE END 1................: 0x00000000 ()
FENCE START 2..............: 0x00000000 ()
FENCE END 2................: 0x00000000 ()
FENCE START 3..............: 0x00000000 ()
FENCE END 3................: 0x00000000 ()
FENCE START 4..............: 0x00000000 ()
FENCE END 4................: 0x00000000 ()
FENCE START 5..............: 0x00000000 ()
FENCE END 5................: 0x00000000 ()
FENCE START 6..............: 0x00000000 ()
FENCE END 6................: 0x00000000 ()
FENCE START 7..............: 0x00000000 ()
FENCE END 7................: 0x00000000 ()
FENCE START 8..............: 0x00000000 ()
FENCE END 8................: 0x00000000 ()
FENCE START 9..............: 0x00000000 ()
FENCE END 9................: 0x00000000 ()
FENCE START 10.............: 0x00000000 ()
FENCE END 10...............: 0x00000000 ()
FENCE START 11.............: 0x00000000 ()
FENCE END 11...............: 0x00000000 ()
FENCE START 12.............: 0x00000000 ()
FENCE END 12...............: 0x00000000 ()
FENCE START 13.............: 0x00000000 ()
FENCE END 13...............: 0x00000000 ()
FENCE START 14.............: 0x00000000 ()
FENCE END 14...............: 0x00000000 ()
FENCE START 15.............: 0x00000000 ()
FENCE END 15...............: 0x00000000 ()
INST_PM....................: 0x00000000
pipe A dot 7200 n 0 m1 0 m2 0 p1 8 p2 10
p1 out of range
pipe B dot 57600 n 0 m1 0 m2 0 p1 1 p2 10

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 400 MHz
CPU Maximum non-Turbo Frequency....: 2700 MHz
CPU Maximum Turbo Frequency........: 3100 MHz

IGPU Info:
------------------------------------
IGPU Current Frequency.............:  900 MHz
IGPU Minimum Frequency.............:  300 MHz
IGPU Maximum Non-Turbo Frequency...:  300 MHz
IGPU Maximum Turbo Frequency.......: 1000 MHz
IGPU Maximum limit.................: No Limit

CPU P-States [ 29 (31) ] iGPU P-States [ (18) ]
CPU C3-Cores [ 0 2 3 ]
CPU P-States [ (12) 29 30 31 ] iGPU P-States [ (18) ]
CPU C3-Cores [ 0 1 2 3 ]
CPU P-States [ 12 28 29 30 (31) ] iGPU P-States [ (18) ]
CPU P-States [ 12 (13) 28 29 30 31 ] iGPU P-States [ (18) ]
 
apologies, TLDR ....

Has the whole 'csrutil disable'/'csrutil enable' discussion taken place re deleting sleep image in Mojave?

Just wondering if the guide can be updated to include this info ...

great guide btw; only 1/10th the way through it

Off-topic.
 
I have a problem with lowest frequency, on AppleIntelInfo say my CPU Low Frequency Mode 400MHz, but CPU P-States just stuck on 13 (is that mean 1300MHz?) my notebook produce more heat than usual, hope anyone can help me.
i'm using Acer E5-476G with i3-6006U processor, this i provided AppleIntelInfo and SSDT.dsl generated by ssdtPRGen
i have confirmed X86PlatformPlugin running on CPU0 with CPUPStates same as SSDT.aml from ssdtPRGen
Thanks

edit
solved, just need to change LFM of MacBook Pro 13,2 with FreqVectorEdit by Piker-Alpha, and now my notebook can touch 400MHz as stated by the CPU..
maybe @RehabMan can use this information to edit the first page, wondering if someone having the same problem... Thanks for your tutorial, great work!
"Problem Reporting" files are incomplete.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
frequency always remains constant

Your AppleIntelInfo output contradicts your claim:
Code:
CPU P-States [ 12 (13) 28 29 30 31 ] iGPU P-States [ (18) ]
 
Back
Top