While using my Hackintosh today, I noticed that I only ever have the minimum frequency (800mhz, 8x100bclk) and the maximum non-turbo frequency (2.8Ghz, 28x100bclk) for my Intel i5-4440S. I was using iStat Menus to check this info and based on this, I spent a great deal of time trying to figure out how to make it work properly. I only learned much later that most utilities only report the min and max frequency and nothing in between.
Initially I tried changing the smbios to iMac 14,1 since that is closer to my system than the MacMini 6,2 definition; the iMac is Haswell and the MacMini is Ivy Bridge. Eventually I stumbled onto http://www.tonymacx86.com/mavericks-desktop-support/128926-mavericks-native-cpu-igpu-power-management.html – a complete guide to enable proper CPU power management and well as the correct utilities to check with.
I downloaded the ssdtPRGen.sh script to generate an SSDT file to enable the proper CPU power management:
1 2 3 |
curl -o ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh chmod +x ./ssdtPRGen.sh ./ssdtPRGen.sh |
This generated the following output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl v6.6 Copyright (c) 2013 by † Jeroen v14.1 Copyright (c) 2013-2014 by Pike R. Alpha ----------------------------------------------------------- Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues < System information: Mac OS X 10.10 (14A389) Brandstring 'Intel(R) Core(TM) i5-4440S CPU @ 2.80GHz' Scope (_PR_) {220 bytes} with ACPI Processor declarations found in the DSDT (ACPI 1.0 compliant) Generating ssdt.dsl for a 'iMac14,1' with board-id [Mac-031B6874CF7F642A] Haswell Core i5-4440S processor [0x306C3] setup [0x0605] With a maximum TDP of 65 Watt, as specified by Intel Number logical CPU's: 4 (Core Frequency: 2800 MHz) Number of Turbo States: 5 (2900-3300 MHz) Number of P-States: 26 (800-3300 MHz) Injected C-States for CPU0 (C1,C3,C6,C7) Injected C-States for CPU1 (C1,C2,C3) Intel ACPI Component Architecture ASL Optimizing Compiler version 20130117-64 [Jan 19 2013] Copyright (c) 2000 - 2013 Intel Corporation ASL Input: /Users/User/Desktop/ssdt.dsl - 268 lines, 8263 bytes, 46 keywords AML Output: /Users/User/Desktop/ssdt.aml - 1647 bytes, 16 named objects, 30 executable opcodes Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations Do you want to copy /Users/User/Desktop/ssdt.aml to /Extra/ssdt.aml? (y/n)? |
You can see in the output above that it correctly detected and generated the missing P states in-between the min and max frequencies as well as the turbo frequencies.
Since I originally used the Multibeast option “Patched AppleIntelCPUPowerManagement”, I restored the original AppleIntelCPUPowerManagement.kext from my Unibeast installer. Then I used Chameleon Wizard to disable the “Generate P-States” and “Generate C-States” options and enable “Drop SSDT” so the ssdt.aml generated earlier is loaded by the bootloader (ssdt.aml needs to be copied to your /Extra folder, which ssdtPRGen.sh will do for you).
The Intel Power Gadget and AppleIntelCPUManagementInfo.kext can be used to verify whether or not power management has been correctly enabled. Below you can see the outputs from my system: