kgp
Retired
- Joined
- May 30, 2014
- Messages
- 6,749
- Motherboard
- ASUS WS X299 Sage 10G
- CPU
- i9-7980XE
- Graphics
- Vega 64
- Mac
-
- Mobile Phone
-
Being frustrated about the present Customac Pro hardware configuration proposed by Tonymacx's Buyer's guide, I decided to go for a new Customac Pro Build based on the Broadwell-E CPU, X99 chip-set and LGA2011-v3 socket with Mac OS Sierra beating records, running like hell, behaving absolutely stable and providing forced-sleep/wake functionality. Please find below my corresponding macOS Sierra 10.12 Desktop Guide, which will guide you in all detail in setting up a stable and fully functional macOS Sierra 10.12 distribution on your X99 System. Note that during the last weeks I received success feedback with this guide even by users with Broadwell-EP/Haswell-EP processers with up to 22 cores (44 threads) at clock speeds around 2.8 Ghz each thread (see e.g. post #1767 by user @GDS), making X99 even to a "realtively cheap" and serious alternative to the yet to be released iMac Pro.
The logical continuation of this desktop guide, i.e. its extension to macOS High Sierra 10.13, can be accessed by following THIS LINK. Note that macOS High Sierra 10.13 is still in beta stage. Use a separate test drive for the 10.13 beta installation and do not directly upgrade your macOS Sierra 10.12 System Drive, which we will now configure in all detail here below!
Hardware Buyer's Guide
Motherboard: Asus X99-A II
Optional and fully compatible with this guide is the twice as expensive Asus X99 Deluxe II motherboard with on-board 802.11ac-WLAN/Bluetooth and a Thunderbolt EX 3 extension card (thanks to @KevinAGI and @Thireus for their feedback). While the built-in 802.11ac-WLAN/Bluetooth of the Asus X99 Deluxe II runs native OoB, one finds an extended discussion along my thread how to successfully run the Thunderbolt EX 3 extension card (see the individual posts starting at page 36 of this thread; special thanks to @BoomR for his valuable input). Further important information concerning Thunderbolt 3 compatibility has been provided by @Raddles and can be accessed on page 132, post 1318 of this thread. Compliance with my guide also has been reported for the Asus Rampage V Extreme (thanks to @morganb and @Raddles), the Asus Sabertooth X99 TUF (thanks to @sebtech), the Asus X99-E (thanks to @superjunaid), the ASRock X99 Taichi (thanks to @welkram; mobo drawback: on-board WIFI/Bluetooth not supported by MacOS), the ASRock X99 Extreme 4/3.1 (thanks to @AndrewL7332), the Gigabyte X99-UD4 (thanks to @ahmadno; mobo drawback: internal NVMe runs only at x2/x1 speeds, i.e. 700MB/s at most), the Gigabyte X99-SLI (thanks to @Coquin), the Gigabyte X99 Ultra Gaming (thanks to @gajaciosif and @hooked), the Gigabyte x99-SOC-Force (thanks to @hooked) and the MSI X99A Gaming 7 (thanks to @tneely; original OsxAptioFixDrv-64.efi + Test2-2016.efi, different Ethernet-kext for Killer E2205 Gigabit LAN). I indeed expect compatibility of my guide with most of the X99 mobos (further success feedback will be appreciated and is highly welcome). Full sleep/wake functionality with my build and guide has been reported first for both the Gigabyte X99 Ultra Gaming and Gigabyte X99-SOC-Force by @hooked and for the Gigabyte X99-SLI by @erlipton05. For the ASUS X99-A II, Sleep/Wake did not work Out of Box (OoB). However, after a few additional patches, forced-sleep/wake functionality is now also provided for this mobo and likely also for all other X99 ASUS-mobos.
CPU: I7-6950X(10-core)I7-6800K (6-core); I7-6850K (6-core), I7-6900K (8 core) are further "low-budget" options. HERE you find the ASUS X99-A II CPU compatibility list. Note that concerning XCPM, for Haswell-E CPUs some of the "KerneltoPatch"-entries differ from those for Broadwell-E CPUs provided below.
RAM: 128GB KIT (8x16GB) G.Skill TridentZ (F4-3200C14Q2-128GTZSW)You are free to select any other memory configuration specified by the ASUS Memory Qualified Vendors List that I attach at the bottom of this thread. Important Note: Initially, I used 2x Crucial Ballistix Sport LT 64 GB Kit (128GB). However I faced stability issues with this memory type not specified for the ASUS X99-A II.
System Disk: Samsung 850 EVO 1TB (SSD) / Samsung 960 EVO 1TB (NVMe, M.2)RAID: 3x Western Digital Red Pro 6TB (18TB); Note that the the ASUS X99-A II employs Intel Rapid Storage for RAID creation,
which is not supported by MacOS. In order to create a Hardware RAID you need to use a hardware RAID controller (PCIE), external hardware RAID array (like an Areca ARC-8050T2 or OWC Qx2). Alternatively you can create a software RAID using Disk Utility or software like SoftRAID (thanks to @flmmkr and @dogmaphobic for their clarifications).
Graphics: Gigabyte AORUS GeForce® GTX 1080 Ti Xtreme Edition 11G (GV-N108TAORUS X-11GD)On 4/10/2017, Nvidia released web drivers with support for all Pascal GPUs (378.05.05.05f01). Definitely time to say bye-bye to Maxwell and my former Gigabyte GeForce GTX 980 TI
. See the new benchmark results towards the end of my guide. However, it should be emphasized at this place that any other Nvidia Pascal or Maxwell GPU will be compatible with this guide and build (see e.g. Tonymacx Pascal Graphics Cards Byer's Guide).
Wifi + Bluetooth: OSXWIFI PC/Hackintosh - Apple Broadcom Bcm94360cd - 802.11 A/B/G/N/AC + Bluetooth 4.0 PCIeAdapter. Works flawless! Native MacOS-support, native Airdrop support, native Handoff support, supports Bluetooth keyboard in BIOS/UEFI or Clover Bootloader. Windows 10 driver for dual-boot system attached to this post. Thanks to @dasboot5 for this excellent advice.
Power Supply: Corsair AX860CPU Cooler: Corsair H80i v2
Webcam: Logitech HD Pro Webcam C930
Monitor: LG 38UC99-W, 38", WQHD, 21:9, 3840x1600 pixel, 75 Hz. Only drawback: No G-sync support for game enthusiasts.
This monitor replaces my former Asus MX299Q, 29", WQHD, 21:9, 2560x1080 pix, 60 Hz Display.
Case: Corsair CC600TWM-WHT, Graphite Series 600T, Mid TowerKeyboard: Logitech K811
Mouse: Logitech Ultra-Thin Touch Mouse T631
Blu-Ray/DVD Writer: LG Super Multi Blue BH16 (BH16NS55)
Cable-management: Individually Sleeved AX 860/760 ATX 24pin (white) CP-8920074; Professional Individually sleeved DC
Cable Kit, Type 3 (Generation 2, white) CP-8920050; BitFenix Alchemy Multisleeve 30cm SATA 3.0 cable (white); Cable-Combs: 24 pin PC Cable Comb Motherboard Power 12 + 12 black, 8pin PC Cable Comb 4 + 4 black
Case modding: 2x Nanoxia Rigid Bar RGB NRLED30RGB; HitLights RGB LED Light Strip 4 Pin Splitter; Nanoxia Led controllerNXRGBC (ASUS Aura control software only available for windows; extremely rudimentary Aura BIOS settings; no option for separate control of individual aura components).
BIOS Configuration Guide
As a first step provide your mobo with the most actual BIOS!
On a real mac with native OSX/MacOS power management, the MSR 0xE2 register is unlocked and therefore writeable. On ASUS mobos this register is read only. When the kernel tries to write to this locked register, it causes panic. This panic can happen so early in the process that it results in a reboot. With dedicated software, one is able to patch the BIOS for ASUS mobos and unlock the MSR 0xE2 register. The patched BIOS finally can be uploaded to the ASUS mobo by means of the ASUS BIOS Flashback Utility. The individual steps are detailed below. Note however, that this guide implements methods to circumvent the MSR 0xE2 register write, thus the BIOS patching is strongly recommended but not be deemed necessary. However, always remember that without patched BIOS on ASUS mobos, one has to check the KernelPm entry and enable the xcpm_idl_wrmsr KernelToPatch entry in the "Kernel and Kext Patches" Section of the Clove Configurator!
Also note that the MSR 0xE2 register lock does not relate to Gigabyte, ASRock or MSI mobos. Users with the latter board configuration can simply ignore this section of my guide.
BIOS patching procedure (optional, not required):
1.) Download and unzip the CodeRush's UEFI patch (attached towards the bottom of this guide) to your Desktop.
2.) To patch the latest BIOS for your ASUS mobo, download the most actual BIOS version from the ASUS mobo support page
(e.g., follow the subsequent link to obtain the latest BIOS Version for the Asus X99-A II).
3.) Unzip the bios file and copy the CAP file into the UEFIPatch directory on your Desktop.
4.) Open a terminal; type "cd " and drag the "UEFIPatch"-folder on your Desktop into the Terminal window and press "Enter".
One can also use the terminal command equivalent:
Code:
cd ~/Desktop/UEFIPatch_0.3.9_osx/
Note that this step is important to successfully execute the UEFI-Patch procedure! You must be in the UEFIPatch directory on your terminal, in order to successfully execute step 5.) below!
5.) Once in the UEFIPatch directory on your terminal, drop the "UEFIPatch"-executable into the terminal window; Also drop
the most actual BIOS CAP file into the terminal window; Press enter to execute the "UEFIPatch"-procedure.
The equivalent terminal command is
Code:
./UEFIPatch X99-A-II-ASUS-1701.CAP
by assuming that you want to patch the latest X99-A-II-ASUS-1701.CAP BIOS-files for the ASUS X99-A II. For other mobos, please adapt the adequate BIOS CAP-filename in the command!
During the patch procedure, you will see something like the following message, which can be simply ignored:
Code:
parseImageFile: Aptio capsule signature may become invalid after image modifications[/INDENT]
[INDENT]parseSection: section with unknown type 52h[/INDENT]
[INDENT]parseFile: non-empty pad-file contents will be destroyed after volume modifications[/INDENT]
[INDENT]parseSection: section with unknown type 52h[/INDENT]
[INDENT]parseFile: non-empty pad-file contents will be destroyed after volume modifications[/INDENT]
[INDENT]patch: replaced 6 bytes at offset F69h 0FBA6C24400F -> 0FBA7424400F[/INDENT]
[INDENT]Image patched
6.) You will now find a ***.CAP.patched BIOS-file in the UEFIPatch folder, which is your patched (MSR 0xE2 unlocked) BIOSfile.
7.) Rename the ***.CAP.patched BIOS file to X99A2.CAP, the required filename for the ASUS X99-A II BIOS Flashback
procedure. Note that the required filename varies for each ASUS mobo. For details see the ASUS BIOS Flashback filename convention.
8.) Copy the X99A2.CAP (or it's derivative in case you use a different ASUS mobo) to a FAT-formatted USB2.0 storage device.
9.) Shut-down your hack, connect the USB2.0 storage device to the USB-port assigned to the ASUS BIOS Flashback procedure
(see the mobo manual for details). Press the BIOS-Flashback button for three seconds until the flashback-led starts to blink, indicating that the BIOS Flashback is in progress. Release the button. The locations of the BIOS-Flashback button and the USB-port assigned to the BIOS-Flashback procedure on the ASUS X99-A II are indicated in the figure below:
10.) Wait until the Flashback-led stops blinking and turns off, indicating that the BIOS Flashback process as been successfullycompleted. You now successfully installed the most actual patched BIOS, compatible with native OSX/MacOS power management.
11.) Boot your system and apply the BIOS settings described below.BIOS Settings:
The BIOS configuration is one of the corner stones for a stable Mac OS Sierra system based on X99. @giacomoleopardo provided a quite complete list of X99 BIOS settings, which I detail below.

1.) go to Exit\
a) Load Optimized Defaults
2.) go to Ai Tweaker\a) ASUS Multicore Enhancement: "Disabled"
b) CPU Core Ratio: "Auto"
c) Internal PLL Overvoltage: "Disabled"
3.) go to Advanced\CPU Configuration\CPU Power Management Configuration\a) Enhanced Intel SpeedStep Technology: "Disabled"
b) Turbo mode: "Enabled"
c) CPU C-State: "Auto"
4.) go to Advanced\USB Configuration\a) Intel xHCI Mode: "Enabled" or "Smart Auto", depending on whether an USB3 or USB2 Boot-Stick will be used for MacOs Sierra installation (thanks to @KevinAGI for providing this important information).
b) EHCI Legacy Support: "Enabled"
c) xHCI Hand-off: "Enabled"
d) EHCI Hand-off: "Disabled"
5.) go to Advanced\Onboard Devices Configuration\a) SPDIF Out Type: "HDMI"
b) PCIEX16_2 Slot Bandwidth: "Auto"
c) Serial Port: "Off"
6.) go to \Boot\a.) Fast Boot: "Disabled"
b) Setup Mode: "Advanced"
7.) go to \Boot\CSM (Compatibility Support Module)\a) Launch CSM: "Disabled"
8.) go to \Boot\Secure Boot\a) OS Type: "Other OS"
b) Define the harddrive BBS priorities
10.) Press F10 key to Save and Reboot
Bootable USB Drive Creation and MacOS Sierra Installation Guide
If you do not possess an already pre-installed macOS Sierra 10.12 distribution on your new hackintosh, you will have to create now a bootable USB installation medium on any Macintosh or Hackintosh you already have at your disposal and subsequently install MacOs Sierra 10.12 on your new system by means of the respective USB installation medium you created before. Please strictly follow this "Bootable USB Drive creation and MacOS Sierra Installation Guide" and DO NOT use UniBeast instead! UniBeast will create files in the /EFI/CLOVER/ directory of your USB installation medium you do not want to have there. If you already created a USB installation medium with UniBeast before, delete the "config.plist" file and "/drivers64UEFI/" and "/kexts/10.12/" directories in the /EFI/CLOVER/ directory of your USB installation medium and proceed with this "Bootable USB Drive creation and MacOS Sierra Installation Guide". If you do already have a pre-installed MacOS Sierra 10.12 distribution on your new hackintosh, directly jump to my "System Disk Post-Installation Guide" below.
1.) Download the latest version of macOS Sierra by performing the following actions:
a) Delete any version of the macOS Sierra installer from your "Applications" folder if older versions of the installer exist.
b) Go to the App-Store, and download Sierra.
2.) Prepare an USB thumb drive with Disk Utility with the following options:
a) GUID Partition Table
b) macOS Extended (Journaled)
c) Use the name “USB”
3.) Type in a Terminal the following command:
sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app --no interaction
This will take some time
4.) Download and install the latest Clover distribution on your USB-DISK by verifying the proper Install-location (USB-DISK)
and customizing (don't press "Install" but "Customize" instead) the following options:
a) Install for UEFI booting only
b) Install Clover in the ESP
c) Select the Bootloader Themes you want to install
e) Only select EmuVariableUefi-64.efi in the Drivers64UEFI menu!
During installation, Clover will automatically create and mount the EFI drive of the USB installation medium and copy all
required files to the /EFI/CLOVER/Drivers64UEFI/ directory.
5.) When Clover Installation completes, download and copy the "config.plist" file and "/kexts/10.12/" directory of ptzulu
(attached to this post) into the "CLOVER" directory of the EFI partition of your USB installation medium. Note that there is a later version of @RehabMan 's IntelmausiEthernet.kext (also attached to my post), which however does change the Ethernet-throughput (thanks to @musikprylar for his advice). Furthermore, download and copy nickwoodham's "OsxAptioFix2Drv-free2000.efi" file (attached to this post) into the /EFI/CLOVER/Drivers64UEFI/ directory of your USB installation medium (thanks to @BoomR, @P1LGRIM and @Thireus for the info). Delete any other "OsxAptioFix*Drv**.efi" files if previously installed. OS X 10.11.4 and greater allocates memory above the memory space which is covered by the AptioFixDrv memory relocation, while OS X 10.11.3 and earlier tries to allocate memory in the low memory range that is already occupied. "OsxAptioFix2Drv-xx.efi" frees the first 512MB of fragmented memory which gives ample room for the MacOS kernel and kernel cache and applies memory map fixes which allow MacOS to communicate with your installed hardware. Without the "OsxAptioFix2Drv-xx.efi" fix, your system might become unstable (random reboots). Finally, download the latest Version of the Clover Configurator and open ptzulu's "config.plist" file in the /EFI/CLOVER/ directory on the EFI-Paritition of your USB installation medium. Verify that in the "CPU" Section the "Type" entry is set to "0x0a02" and that in the "Kernel and Kext Patches" section your "FakeCPUID" entry is "0x040674" (Broadwell-E). For Haswell-E users, the "Type" and "FaceCPUID" entries must be "0x0a01" and "0x0306F2", respectively.
No other files will be needed for the X99-A II board! Note that also kext-files like "NullCPUPowerManagement.kext", "BrcmBluetoothInjector.kext" or "AppleIntelE1000e.kext" apparently are not required anymore. The configuration files are also valid for the ASUS X-99 Deluxe II, ASUS Rampage V Extreme, Asus Sabertooth X99 TUF, ASUS X99-E, ASRock X99 Taichi, ASRock X99 Extreme 4/3.1, Gigabyte X99-UD4, Gigabyte X99-SLI, Gigabyte X99 Ultra Gaming and the Gigabyte X99-SOC-Force (once more thanks to @KevinAGI, @Thireus, @morganb, @Raddles, @sebtech, @superjunaid, @welkram, @AndrewL7332, @ahmadno, @Coquin, @gajaciosif and @hooked and for their feedback). Note that for the MSI X99A Gaming 7, the original OsxAptioFixDrv-64.efi + Test2-2016.efi files and a different Ethernet-kext (Killer E2205 Gigabit LAN) seems to be required (thanks to @tneely for his feedback).
!!You are done!!
6.) Before installing macOS Sierra on your new system, don't forget to apply the BIOS settings listed above.
7.) Boot the USB Installation Medium with the following boot options: -v npci=0x2000 nv_disable=1
8.) Install macOS Sierra onto your system; Important Note: starting with Sierra 10.12.4, Error code 202 " The installer payload
failed signature check" has been reported during the initial OS Sierra installation by several users. Apparently this problem can be circumvented by repeating the OS Sierra installation, entering the Apple installer menu and enabling a WI-FI connection to update the time by running the following terminal command:
Code:
nt-date -u time.apple.com
Once the time was updated, the installer encountered no other problems. Thanks to @Raddles for this important information and contribution!
9.) Now perform the Post-Installation procedure described below
System Disk Post-Installation Guide
Install the latest CLOVER distribution on your System Disk
Download and install the latest Clover distribution on your Sierra system disk by verifying the proper Install-Location (Sierra System Disk) and customizing (don't press "Install" but "Customize" instead) the following options:
a) Install for UEFI booting only
b) Install Clover in the ESP
c) Select the Bootloader Themes you want to install
d) Enable Install RC scripts on target volume
e) Only select EmuVariableUefi-64.efi in the Drivers64UEFI menu!
f) Select Install RC scripts on target volume
g) Select Install Clover Preference Pane
During installation, Clover will automatically create and mount the EFI drive of your Sierra system disk and copy all required files to the /EFI/CLOVER/Drivers64UEFI/ directory.

Clover Configuration
1.) Download the following configuration files of ptzulu (for further details see the post of ptzulu on insanelymac), which I attach
once more at the end of my post:
a) "config.plist.zip" -> download, unzip and copy the "config-plist" file to the "/EFI/CLOVER" directory of the "EFI" partition of your Sierra system disk.
b) "kexts.zip" -> download, unzip and copy the "kexts" directory to the "/EFI/CLOVER/" directory of the "EFI" partition of your Sierra system disk. Note that there is a later version of @RehabMan 's IntelmausiEthernet.kext (also attached to my post), which however does change the Ethernet-throughput (thanks to @musikprylar for his advice).
c) "OsxAptioFix2Drv-free2000.efi.zip" download, unzip and copy nickwoodham's "OsxAptioFix2Drv-free2000.efi" file (attached to this post) into the /EFI/CLOVER/Drivers64UEFI/ directory of your Sierra System disk (Thanks to @BoomR, @P1LGRIM and @Thireus for the info). Delete any other "OsxAptioFix*Drv**.efi" files if previously installed. OS X 10.11.4 and greater allocates memory above the memory space which is covered by the AptioFixDrv memory relocation, while OS X 10.11.3 and earlier tries to allocate memory in the low memory range that is already occupied. "OsxAptioFix2Drv-xx.efi" frees the first 512MB of fragmented memory which gives ample room for the macOS kernel and kernel cache and applies memory map fixes which allow MacOS to communicate with your installed hardware. Without the "OsxAptioFix2Drv-xx.efi" fix, your system might become unstable (random reboots).
No other files will be needed for the X99-A II board! Note that also kext-files like "NullCPUPowerManagement.kext", "BrcmBluetoothInjector.kext" or "AppleIntelE1000e.kext" apparently are not required anymore. The configuration files are also valid for the ASUS X-99 Deluxe II, ASUS Rampage V Extreme, Asus Sabertooth X99 TUF, ASUS X99-E, ASRock X99 Taichi, ASRock X99 Extreme 4/3.1, Gigabyte X99-UD4, Gigabyte X99-SLI, Gigabyte X99 Ultra Gaming and the Gigabyte X99-SOC-Force (once more thanks to @KevinAGI, @Thireus, @morganb, @Raddles, @sebtech, @superjunaid, @welkram, @AndrewL7332, @ahmadno, @Coquin, @gajaciosif and @hooked and for their feedback). Note that for the MSI X99A Gaming 7, the original OsxAptioFixDrv-64.efi + Test2-2016.efi files and a different Ethernet-kext (Killer E2205 Gigabit LAN) seems to be required (thanks to @tneely for his feedback).
2.) Download the latest Version of the Clover Configurator and open ptzulu's "config.plist" file in the /EFI/CLOVER/ directory on
the EFI-Paritition of your Sierra system disk.
a.) Verify that in the "CPU" section you use under "Type" the value "0x0a02" (Broadwell-E/EP) and in the "Kernel and Kext
Patches" Section for "FakeCPUID" the value "0x040674" (Broadwell-E/EP). Haswell-E/EP users have to use "0x0a01" and "0x0306F2", respectively. Note that with a fully configured Xnu CPU Power Management (XCPM), the "CPU Type" and "FakeCPUID" entries become obsolete.
b.) Implement the correct "RT Variables" and "SMBIOS" entries by following "An iDiots's Guide To iMessage" by P1LGRIM.
It works perfectly. IMPORTANT NOTE: In order to avoid a black screen after boot with Nvidia graphics cards and in order to successfully run XCPM, you have to setup a Mac Pro 6.1 SMBIOS!
c.) Select the following "BOOT" options: npci=0x2000
d.) Save the modified config.plist configuration
Audio Configuration1.) VodooHDA - Standard Audio Configuration
The "kexts" folder of ptzulu contains an outdated VoodooHDA.kext which is fully working but apparently results in a low audio gain signal. Download the latest VoodooHDA.kext from sourceforge (VoodooHDA.kext-289.zip) and replace ptzulu's VoodooHDA.kext in "/EFI/clover/kexts/10.12/". This latest VoodooHDA.kext works absolutely flawless!
2.) AppleALC - Optional Audio Configuration IA very nice optional audio configuration can be achieved by means of AppleALC. For installing the basic analogue audio configuration, just few steps are required as listed below:
a.) Remove the VoodooHDA.kext from the "/EFI/clover/kexts/10.12/" of your System Disk.
b.) Download and unzip the "AppleALC Audio.zip"-file, attached to my guide.
c.) Copy its content (the AppleALC.kext, the Lilu.kext, and the CodecCommander.kext) to "/EFI/clover/kexts/10.12/".
d.) Open your config.plist with the Clover Configurator and add the following "DSDT patch" in the "ACPI section":
Code:
Comment: Find: Replace:[/INDENT][/INDENT]
[INDENT][/INDENT]
[INDENT]Rename ALZA to HDEF 414c5a41 48444546
Furthermore, Inject Audio ID "1" in the Section "Devices"
Finally, save your config.plist and reboot
e.) Under "System Preferences" and "Audio" select "Internal Speakers" for the Analogue Audio Output and you are done.
Now, if one wants to configure a digital HDMI or DP graphics card audio output, things turn a little bit more complicated. Another requisite is, that you already performed the Nvidia web-driver installation and that you applied the AGDPFix described below under "Additional Requirements". By means of an additional "SSDT.aml"-file to be configured and subsequently added to the /EFI/Clover/ACPI/patched/ directory, @shilohh 's guide and method does not only provide additional HDMI and DP graphics card output for your hackintosh system, but also allow for multi-monitor and multi-gpu configurations, subsequently to your web-driver installation. I can also confirm, that this method and guide work for both Nvidia GPUs with Maxwell and Pascal architecture! I just installed the entire procedure for my AORUS Geforce GTX 1080 TI Xtreme Edition. Hint: the "Nvidia Maxwell HDMI SSDT patch.txt" for HDMI Audio also works for Pascal! That's all, the rest of the guide applies in 100%. Despite a multi-gpu and multi-monitor setup you will be also perfectly able to run HDMI and DP digital output, by just adding one additional aml-file to your /EFI/Clover/ACPI/patched/ directory. As an example, I add towards the end of my guide the "SSDT-HDMI.aml"-file that I just created thanks to @shilohh 's guide and method.
Many thanks also to @beep, @KevinAGI and @mm2margaret for their kind help and their useful advises!
3.) CloverALC and CloverHDMI - Optional Audio Configuration IIa.) Remove the VoodooHDA.kext from the "/EFI/clover/kexts/10.12/" of your System Disk.
b.) Download and install "audio_cloverALC-120_v1.0d.command" and "audio_cloverHDMI-120_v1.0d.command" and you are done!
!! Warning !!: this method actually patches your native AppleHDA.kext in S/L/E. Therefore, before installing CloverALC and CLover HDMI, backup your native AppleHDA.kext. It also automatically adds KernelToPatch entries to your config.plist, the realtekALC.kext to the /EFI/Clover/kexts/10.12/ directory, as well as an "SSDT-HDMI-NVIDIA-BR3A.aml" file to your /EFI/Clover/ACPI/patched/ directory. The first time, the installation performs without issues. However, when reinstalling CloverALC and CLoverHDMI, all previously installed changes have to be removed by hand! Otherwise, the re-installation of CloverALC and CloverHDMI fails and messes up the entire audio configuration of your hack. Evidently, it is not straight forward to remove the CloverALC and Colver HDMI installation from your hack!
For all three configurations, the volume of the HDMI digital output of your graphics card cannot be directly controlled with Apple's volume control or keyboard. Apple does not support digital audio volume control independent of the driver. I solved the issue with the digital audio volume control by installing some 3rd-party software like Audio Hijack from Rogue Amoeba, which unfortunately does not come for free. It has to be emphasized, that for all three different audio configurations, the analogue audio volume control works OoB as expected.USB Configuration
In principle, on most of the X99 mobos, the full USB functionality is already provided with the
Basic USB Configuration
This configuration consists of:
a) the "X99_Injector USB 3.kext" (contained in the "kexts" folder of ptzulu),
b) the KextsToPatch entry in the "Kernel and Kext Patches" section of the clover configurator:
Code:
Name: Find: Replace: Comment: MatchOS:[/INDENT]
[INDENT]AppleUSBXHCIPCI 83BD74FF FFFF10 83BD74FF FFFF1b change 15 port limit to 26 in XHCI kext (series 100 mobos) 10.12
or
Code:
Name: Find: Replace: Comment: MatchOS:[/INDENT]
[INDENT]AppleUSBXHCIPCI 83BD74FF FFFF10 83BD74FF FFFF15 change 15 port limit to 20 in XHCI kext (series 9 mobos) 10.12
depending on the amount of USB ports available. Try to figure out which one of the two KextsToPatch entry works with your particular mobo. For the Asus X99-A II, I am using at present the 15 to 26 port KextsToPatch entry. Several users reported stability issues (random reboots) when implementing more USB ports than actually available.
c) Remove all DSDT Patches in the "ACPI" section of the clover configurator if introduced previously :
Code:
Comment: Find* [Hex] Replace* [Hex][/INDENT]
[INDENT]change _OSI to XOSI 5f4f5349 584f5349[/INDENT]
[INDENT]change EHC1 to EH01 45484331 45483031[/INDENT]
[INDENT]change EHC2 to EH02 45484332 45483032[/INDENT]
[INDENT]change XHCI to XHC 58484349 5848435f[/INDENT]
[INDENT]change XHC1 to XHC 58484331 5848435f
d.) Uncheck all USB settings in the "Device" section of the Clover Configurator: "Inject", "Add ClockID", "FixOwnership","HighCurrent" - unchecked.
e.) and the BIOS settings:VT-d disabled
XHCI Mode Smart Auto
XHCI Hand-Off Enabled
EHCI Hand-Off Enabled
With the above USB configuration, allUSB2 and USB3 ports are initialized and work fine. USB2 in USB2, USB3 in USB3, USB2 in USB3 and USB3 in USB2. However, there is a tiny cosmetic error. If one looks to Apple's system report, in principle the USB2.0 Bus, USB3.0 Bus and USB 3.1 Bus are implemented correctly. However, all connected devices independently form being USB2.0, USB3.0 and USB3.1 are assigned to the USB 3.0 Bus.Alternative USB Configuration - board-specific XHC USB Kexts
Alternatively to the basic USB configuration above, all ASUS X99-A II and ASUS X99 Deluxe II owners can use the novel and innovative XHC USB Kext developed with DSM2. For this approach, download, unzip and copy the XHC USB Kext contained in DSM2-ASUS-X99-A-II-USB.kext.zip (attached at the end of this originating post/guide) to the /EFI/Clover/kexts/10.12/-directory in the EFI-Folder of your 10.12 System Disk. In parallel, remove the "X99_Injector USB 3.kext" from the latter directory!
Finally note, that also the USB BIOS settings have to be slightly modified:
- XHCI Mode Enabled
- XHCI Hand-Off Enabled
- EHCI Hand-Off Enabled
All owners of mainboards different from ASUS X99-A II, can create their own board-specific XHC USB Kext by following the detailed XHC USB Kext creation guidelines provided in Section E.4) of my Skylake-X/X299 macOS High Sierra 10.13 Desktop Guide.
Additional Requirements:
1.) Download and apply the AGDPfix, which is also attached to my guide.

This is a simple Applescript-app that will back up the AppleGraphicsControl.kext to your desktop in a folder called KextBackUp. It will then patch the /System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist for the MacPro6,1 board ID. This ensures that your GPU will not be effected by the MacPro6,1's AMD FirePro device policy that causes your GPU not to send a signal to your monitor at boot. This app only works with the MacPro6,1 system definition.
2.) Download and install the latest NVIDIA Web-drivers and reboot as requested.
The AORUS Geforce GTX 1080 TI Extreme Edition supports 2 monitors OOB, at least when connect at the two outermost Display Ports at boot. I did not check any other configuration.

----------------------------------------------------------------------------------------------------------------------------------------------


----------------------------------------------------------------------------------------------------------------------------------------------



Below, I summarize the necessary steps to use M.2 SSD-drives with the actual build (Asus X99-A II, Samsung 1 TB EVO 960 M.2 SSD). Many thanks to @beep for his instructions, advises and kind help!


1.) You need to have an MacOS running on a regular SSD or HDD
2.) Make sure you have the original untouched IONVMeFamily.kext file in S/L/E on system's partition.
3.) Download the script from @RehabMan 's github – https://github.com/RehabMan/patch-nvme:
-----------------------
Terminal Command:
-----------------------
Code:
mkdir ~/Projects && cd Projects[/INDENT]
[INDENT]git clone https://github.com/RehabMan/patch-nvme.git patch-nvme.git[/INDENT]
[INDENT]cd patch-nvme.git
4.) Run it with the --spoof parameter and the actual system version as additional parameter (in my case Sierra 10.12.6)
-----------------------
Terminal Command:
-----------------------
Code:
./patch_nvme.sh --spoof 10_12_6
5.) Copy the created "HackrNVMeFamily-10_12_6.kext" (also attached at the end of my guide) into your /EFI/CLOVER/kexts/
10.12 partition or system's S/L/E or L/E.
6.) Download the latest version of maciASL – Start maciASL, open a new window and paste the code below. You have to set
ACPI 6.1 in MaciASL->Preferences->iASL. The address for internal NVMe device on the Asus X99-a II is "_SB.PCI0.BR1B.H000"
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "NVMe-Pcc", 0x00000000)[/INDENT]
[INDENT]{[/INDENT]
[INDENT] External (_SB.PCI0.BR1B.H000, DeviceObj) // (from opcode)[/INDENT]
[INDENT] Method (_SB.PCI0.BR1B.H000._DSM, 4, NotSerialized) // _DSM: Device-Specific Method[/INDENT]
[INDENT] {[/INDENT]
[INDENT] If (LNot (Arg2))[/INDENT]
[INDENT] {[/INDENT]
[INDENT] Return (Buffer (One)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0x03[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT][/INDENT]
[INDENT] Return (Package (0x04)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] "class-code",[/INDENT]
[INDENT] Buffer (0x04)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0xFF, 0x08, 0x01, 0x00[/INDENT]
[INDENT] },[/INDENT]
[INDENT][/INDENT]
[INDENT] "built-in",[/INDENT]
[INDENT] Buffer (One)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0x00[/INDENT]
[INDENT] }[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT]}
The internal NVMe device address on other systems needs to be found using windows or linux as described in Rehabman's guide (this link provides a tutorial how to create a bootable USB Flash Drive for UEFI Windows 10 installation by means of e.g. RUFUS; this link provides a tutorial how to perform a Windows 10 UEFI Installation; this link provides a tutorial how to migrate/clone/backup your Windows 10 UEFI System Disk; note that a Windows UEFI installation is mandatory for booting Windows with the Clover UEFI Boot Loader). E.g., the internal NVMe device address for the X99 Deluxe II is "_SB.PCI0.BR2D.H000". Therefore, for this particular board "_SB.PCI0.BR1B.H000" has to be substituted by "_SB.PCI0.BR2D.H000" in the code text above (thanks to @dogmaphobic for his valuable feedback).
If you have two nvme disks with an additional PCIe card running on the X99-A II, duplicate the code with the different address of the next device:
Code:
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading[/INDENT]
[INDENT]DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)[/INDENT]
[INDENT]{[/INDENT]
[INDENT] External(_SB.PCI0.BR1B.H000, DeviceObj)[/INDENT]
[INDENT] Method(_SB.PCI0.BR1B.H000._DSM, 4)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] If (!Arg2) { Return (Buffer() { 0x03 } ) }[/INDENT]
[INDENT] Return(Package()[/INDENT]
[INDENT] {[/INDENT]
[INDENT] "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },[/INDENT]
[INDENT] "built-in", Buffer() { 0 },[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT] External(_SB.PCI0.BR2A.H000, DeviceObj)[/INDENT]
[INDENT] Method(_SB.PCI0.BR2A.H000._DSM, 4)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] If (!Arg2) { Return (Buffer() { 0x03 } ) }[/INDENT]
[INDENT] Return(Package()[/INDENT]
[INDENT] {[/INDENT]
[INDENT] "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },[/INDENT]
[INDENT] "built-in", Buffer() { 0 },[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT]}
For two NVMes on the X99 Deluxe II with an additional PCIe card the code might look like this (thanks to @AMonney for his valuable input):
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "NVMe-Pcc", 0x00000000)[/INDENT]
[INDENT]{[/INDENT]
[INDENT] External (_SB_.PCI0.BR2D.H000, DeviceObj) // (from opcode)[/INDENT]
[INDENT] External (_SB_.PCI0.BR3A.H000, DeviceObj) // (from opcode)[/INDENT]
[INDENT][/INDENT]
[INDENT] Method (_SB.PCI0.BR2D.H000._DSM, 4, NotSerialized) // _DSM: Device-Specific Method[/INDENT]
[INDENT] {[/INDENT]
[INDENT] If (LNot (Arg2))[/INDENT]
[INDENT] {[/INDENT]
[INDENT] Return (Buffer (One)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0x03[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT][/INDENT]
[INDENT] Return (Package (0x04)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] "class-code",[/INDENT]
[INDENT] Buffer (0x04)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0xFF, 0x08, 0x01, 0x00[/INDENT]
[INDENT] },[/INDENT]
[INDENT][/INDENT]
[INDENT] "built-in",[/INDENT]
[INDENT] Buffer (One)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0x00[/INDENT]
[INDENT] }[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT][/INDENT]
[INDENT] Method (_SB.PCI0.BR3A.H000._DSM, 4, NotSerialized) // _DSM: Device-Specific Method[/INDENT]
[INDENT] {[/INDENT]
[INDENT] If (LNot (Arg2))[/INDENT]
[INDENT] {[/INDENT]
[INDENT] Return (Buffer (One)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0x03[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT][/INDENT]
[INDENT] Return (Package (0x04)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] "class-code",[/INDENT]
[INDENT] Buffer (0x04)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0xFF, 0x08, 0x01, 0x00[/INDENT]
[INDENT] },[/INDENT]
[INDENT][/INDENT]
[INDENT] "built-in",[/INDENT]
[INDENT] Buffer (One)[/INDENT]
[INDENT] {[/INDENT]
[INDENT] 0x00[/INDENT]
[INDENT] }[/INDENT]
[INDENT] })[/INDENT]
[INDENT] }[/INDENT]
[INDENT]}[/INDENT]
[INDENT]
7.) Compile the code and "Save As" the compiled code in "ACPI Machine Language Binary" format. Copy the SSDT file (e.g.
nvme-patch.aml, also attached at the end of my guide) to the "/EFI/CLOVER/ACPI/patched" folder of your system's EFI partition. You can name it anyhow since the newest versions of Clover can load SSDT files with different naming.
8.) Reboot... now the nvme m.2 device/s should be visible/available in Apple's Disk Utility. Note that after a system upgrade to
a different Sierra version you have to repeat step 4 and 5.
9.) Now you can clone the System to the Nvme drive and use the latter as your new system drive.
For further details please follow the links provided below:
https://github.com/RehabMan/patch-nvme
https://www.tonymacx86.com/threads/...h-ionvmefamily-using-class-code-spoof.210316/
maciASL – https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads
Note: Initially when writing this M.2 guide, the 1TB EVO 960 M.2 SSD Drive was recognized by the Asus X99-A II motherboard only after a complete shutdown and subsequent reboot. A firmware update for the 1TB EVO 960 M.2 SSD solved this issue. The Asus X99-A II now is fully compatible with the 1 TB EVO 960 M.2 SSD-drive and the latter is always fully recognized by the system (Clover and Disk Utility). Recommendation: To avoid Samsung NVMe detection problems from the very beginning, update the firmware of your Samsung EVO 960 by means of the Samsung Magician Software in Windows, before starting with my M.2 guide!
----------------------------------------------------------------------------------------------------------------------------------------------


The steps below constitute a sophisticated aka Xnu CPU Power Management (XCPM) guide, in particular for the Broadwell-E i7-6950X but also for all other Broadwell-E/EP and Haswell-E/EP processors in a much more general context. XCPM is certainly an important step forward with respect to advanced CPU power managment. I am eagerly looking forward to fruitful discussions, extensive feedback and further constructive input not only from experts.
Before configuring XCPM on your system, verify the following BIOS settings:
\Advanced\CPU Configuration\CPU Power Management Configuration\
- Enhanced Intel SpeedStep Technology (EIST): Disabled
- Turbo mode: Enabled
- CPU C-State: Enabled
- Enhanced C1 State: Enabled
- CPU C3 Report: Enabled
- CPU C6 Report: Enabled
- Package C State Limit: C6(non Retention) state
1.) Verify that your System ID is MacPro 6.1
2.) Launch your CloverConfigurator and edit your config.plist
a) "Kernel and Kext Patches" Section: Verify and add if necessary the "KextsToPatch" entry:
Code:
[/INDENT]
[INDENT]Name: Find: Replace: Comment: MatchOS:[/INDENT]
[INDENT]IOPCIFamily 4881fb00 000040 4881fb00 000080 X99 Patch by braumbear 10.12[/INDENT]
[INDENT]
This "KextsToPatch" entry is crucial for booting X99 Systems.
b) "Kernel and Kext Patches" Section: Verify and add if necessary the following "KernelToPatch" entries:
Code:
[/INDENT]
[INDENT]Find: Replace: Comment: MatchOS:[/INDENT]
[INDENT]0fb6c483 c0e983f8 47 0fb6c483 c0e183f8 47 xcpm_cpuid_set_info © Pike R. Alpha 10.12[/INDENT]
[INDENT]8d43c483 f822 8d43c383 f822 xcpm_bootstrap Sierra © Pike R. Alpha 10.12[/INDENT]
[INDENT]be070000 0031d2e8 94fcffff be070000 0031d290 90909090 xcpm_pkg_scope_msr © Pike R. Alpha 10.12[/INDENT]
[INDENT]be020000 0031d2e8 6cfcffff be020000 0031d290 90909090 xcpm_core_scope_msrs © Pike R. Alpha 10.12[/INDENT]
[INDENT]20b9e200 00000f30 20b9e200 00009090 xcpm_idle patch by Pike R. Alpha 10.12[/INDENT]
[INDENT]554889e5 41574156 41554154 53504189d64189f7 4889fb45 85ff0f84 c39089e5 41574156 41554154 53504189d64189f7 4889fb45 85ff0f84 reboot fix 10.12db8 © Pike R. Alpha 10.12[/INDENT]
[INDENT]
Note the updated xcpm_bootstrap entry for 10.12.6! With this new patch, xcpm_bootstrap is now also fully working for Broadwell-E/EP! Note that I actually do not use the "xcpm_preboot_fix" and "xcpm_core_scope_msrs" entries (disabled) as they seem to disable the C3 states! The "xcpm_idle patch" by Pike R. Alpha circumvents the MSR 0xE2 register write. On ASUS-mobos with patched BIOS and unlocked MSR 0xE2 register, this "KernelToPatch" entry could be in principle omitted and disabled. However, it seems that the "xcpm_idle patch" has major implications on the system sleep/wake functionality when using XCPM. I therefore leave this "KernelToPatch" entry enabled for now.
Note that some of the "KernelToPatch" entries are CPU-architecture specific. The above "KernelToPatch" entries are for the Broadwell-E/EP architecture. For the Haswell-E/EP CPU architecture see the respective necessary changes summarized below. Note once more the updated xcpm_bootstrap entries for 10.12.6! Thanks to PMheart and @nmano for providing the correct values!
Haswell-E/EP:
Code:
[/INDENT]
[INDENT]Find: Replace: Comment: MatchOS:[/INDENT]
[INDENT]0fb6c483 c0e983f8 47 0fb6c483 c0e683f8 47 xcpm_cpuid_set_info © Pike R. Alpha 10.12[/INDENT]
[INDENT]8d43c483 f822 8d43c183 f822 xcpm_bootstrap Sierra © Pike R. Alpha 10.12
Please note that Haswell-E/EP processors in principle do not require the patching of the switch table used by "xcpm_cpuid_set_info". Apple already took care of it. One can therefor disable the xcpm_cpuid_set_info KernlToPatch entry for the latter processor architecture. If you encounter against all expectations problems during your XCPM configuration though, use the "xcpm_cpuid_set_info" entry provided above!
It should be emphasized that the "KernelToPatch" entries above are the cornerstone for a working and stable XCPM aka Xnu CPU Power Management. Thus, double check if you have the correct "KernelToPatch" entries for your specific CPU-architecture!
3.) Reboot
4.) Verify with the terminal command "sysctl machdep.xcpm.mode" if the XCPM mode is now active. If so, "sysctl
machdep.xcpm.mode" should return "1".
5.) Download Piker-Alpha's ssdtPRGen.sh from Github.
6.) Drop ssdtPRGen.sh into a terminal and add the following parameters to also enable turbo frequencies of up to 4000 Mhz.
Code:
./ssdtPRGen.sh -a CPU0 -turbo 4000
Result:
Code:
ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl[/INDENT]
[INDENT] v6.6 Copyright (c) 2013 by † Jeroen[/INDENT]
[INDENT] v21.5 Copyright (c) 2013-2017 by Pike R. Alpha[/INDENT]
[INDENT]-----------------------------------------------------------[/INDENT]
[INDENT]Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <[/INDENT]
[INDENT][/INDENT]
[INDENT]System information: Mac OS X 10.12.4 (16E195)[/INDENT]
[INDENT]Brandstring: "Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz"[/INDENT]
[INDENT][/INDENT]
[INDENT]Override value: (-acpi) label for ACPI Processors, now using 'CPU0'![/INDENT]
[INDENT]Override value: (-turbo) maximum (turbo) frequency, now using: 4000 MHz![/INDENT]
[INDENT][/INDENT]
[INDENT]Version: models.cfg v170 / Broadwell.cfg v151[/INDENT]
[INDENT][/INDENT]
[INDENT]Generating ssdt.dsl for a 'MacPro6,1' with board-id [Mac-F60DEB81FF30ACF6][/INDENT]
[INDENT]Broadwell Core i7-6950X processor [0x406F1] setup [0x0a02][/INDENT]
[INDENT]With a maximum TDP of 140 Watt, as specified by Intel[/INDENT]
[INDENT]Number logical CPU's: 20 (Core Frequency: 3000 MHz)[/INDENT]
[INDENT]Number of Turbo States: 10 (3100-4000 MHz)[/INDENT]
[INDENT]Number of P-States: 29 (1200-4000 MHz)[/INDENT]
[INDENT]Injected C-States for CP00 (C1,C3,C6)[/INDENT]
[INDENT]Injected C-States for CP01 (C1,C3,C6)[/INDENT]
[INDENT][/INDENT]
[INDENT]Compiling: ssdt_pr.dsl[/INDENT]
[INDENT]Intel ACPI Component Architecture[/INDENT]
[INDENT]ASL Optimizing Compiler version 20140926-64 [Nov 6 2014][/INDENT]
[INDENT]Copyright (c) 2000 - 2014 Intel Corporation[/INDENT]
[INDENT][/INDENT]
[INDENT]ASL Input: /Users/kgp/Library/ssdtPRGen/ssdt.dsl - 466 lines, 13470 bytes, 145 keywords[/INDENT]
[INDENT]AML Output: /Users/kgp/Library/ssdtPRGen/ssdt.aml - 3694 bytes, 64 named objects, 81 executable opcodes[/INDENT]
[INDENT][/INDENT]
[INDENT]Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations[/INDENT]
[INDENT]
ssdtPRGen.sh generates a SSDT.aml file in ~/Library/ssdtPRGen/
7.) Copy the SSDT.aml from ~/Library/ssdtPRGen/ to /EFI/CLOVER/ACPI/patched/Important note: if your CPU is unsupported, ssdtPRGen.sh will fail in creating the SSDT.aml.
Go to the ~/Library/ssdtPRGen/ folder, open the "Data " folder, and open "User Defined.cfg" with text wrangler.
Add your cpu parameters, save the "User Defined.cfg" and redo steps 6.) and 7.)
8.) Reboot
9.) a.) Verify that in the ioRegistryExplorer you have now under [email protected] the following entry:
Code:
Property: Type: Value:[/INDENT]
[INDENT]plugin-type Number 0x1
b.) Verify with the terminal command
that the "X86PlatformPlugin.kext" is now loaded. If the command returns
Code:
kextstat|grep -y x86plat
Code:
[/INDENT]
[INDENT]98 1 0xffffff7f82492000 0x17000 0x17000 com.apple.driver.X86PlatformPlugin (1.0.0) 782DA5F5-F9BB-3B75-B40D-EC8EFFCE89A8 <97 96 16 15 11 7 6 5 4 3 1>[/INDENT]
[INDENT]124 1 0xffffff7f8279c000 0x7000 0x7000 com.apple.driver.X86PlatformShim (1.0.0) B1D28523-ABFF-37CB-8AE9-5EFA58B86DBB <98 97 96 7 4 3>[/INDENT]
[INDENT]
you are fine.
c.) Verify with the terminal command
that you got now rid of the Apple Intel CPU power management. If the result is empty you are fine.
Code:
kextstat|grep -y appleintelcpu
10.) Download and run Piker-Alpha's freqVectorsEdit.sh to add missing FrequencyVectors to Mac-F60DEB81FF30ACF6.plist,which os located in:
Code:
/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources
To do so, you have to choose some other plist-file from the drop-list, like e.g.
Code:
[26] Mac-DB15BD556843C820.plist (iMac17,1)
which does have frequencies already defined.
Result:
Code:
freqVectorsEdit.sh v3.1 Copyright (c) 2013-2017 by Pike R. Alpha.[/INDENT]
[INDENT]-----------------------------------------------------------------[/INDENT]
[INDENT]Bugs > https://github.com/Piker-Alpha/freqVectorsEdit.sh/issues <[/INDENT]
[INDENT][/INDENT]
[INDENT]Available resource files (plists) with FrequencyVectors:[/INDENT]
[INDENT][/INDENT]
[INDENT][ 1 ] Mac-031B6874CF7F642A.plist (iMac14,1)[/INDENT]
[INDENT][ 2 ] Mac-06F11F11946D27C5.plist (MacBookPro11,5)[/INDENT]
[INDENT][ 3 ] Mac-06F11FD93F0323C5.plist (MacBookPro11,4)[/INDENT]
[INDENT][ 4 ] Mac-189A3D4F975D5FFC.plist (MacBookPro11,1)[/INDENT]
[INDENT][ 5 ] Mac-27ADBB7B4CEE8E61.plist (iMac14,2)[/INDENT]
[INDENT][ 6 ] Mac-2BD1B31983FE1663.plist (MacBookPro11,3)[/INDENT]
[INDENT][ 7 ] Mac-35C1E88140C3E6CF.plist (MacBookAir6,1)[/INDENT]
[INDENT][ 8 ] Mac-35C5E08120C7EEAF.plist (Macmini7,1 @ 2700)[/INDENT]
[INDENT][ 9 ] Mac-3CBD00234E554E41.plist (MacBookPro11,2)[/INDENT]
[INDENT][ 10 ] Mac-42FD25EABCABB274.plist (iMac15,1)[/INDENT]
[INDENT][ 11 ] Mac-473D31EABEB93F9B.plist (MacBookPro13,1 @ 3100 HWP/3400 HWP)[/INDENT]
[INDENT][ 12 ] Mac-4BFBC784B845591E.plist (Unknown Model)[/INDENT]
[INDENT][ 13 ] Mac-50619A408DB004DA.plist (Unknown Model)[/INDENT]
[INDENT][ 14 ] Mac-65CE76090165799A.plist (iMac17,1)[/INDENT]
[INDENT][ 15 ] Mac-66E35819EE2D0D05.plist (MacBookPro13,2 @ 3300 HWP/3500 HWP/3600 HWP)[/INDENT]
[INDENT][ 16 ] Mac-77EB7D7DAF985301.plist (iMac14,3)[/INDENT]
[INDENT][ 17 ] Mac-7DF21CB3ED6977E5.plist (MacBookAir6,2)[/INDENT]
[INDENT][ 18 ] Mac-81E3E92DD6088272.plist (iMac14,4)[/INDENT]
[INDENT][ 19 ] Mac-937CB26E2E02BB01.plist (MacBookAir7,2 @ 2700/3200)[/INDENT]
[INDENT][ 20 ] Mac-9AE82516C7C6B903.plist (MacBook9,1 @ 2200 HWP/2700 HWP/3100 HWP)[/INDENT]
[INDENT][ 21 ] Mac-9F18E312C5C2BF0B.plist (MacBookAir7,1 @ 2700/3200)[/INDENT]
[INDENT][ 22 ] Mac-A369DDC4E67F1C45.plist (iMac16,1)[/INDENT]
[INDENT][ 23 ] Mac-A5C67F76ED83108C.plist (MacBookPro13,3 @ 3500 HWP/3600 HWP/3800 HWP)[/INDENT]
[INDENT][ 24 ] Mac-B809C3757DA9BB8D.plist (iMac17,1)[/INDENT]
[INDENT][ 25 ] Mac-BE0E8AC46FE800CC.plist (MacBook8,1 @ 2400/2600/2900)[/INDENT]
[INDENT][ 26 ] Mac-DB15BD556843C820.plist (iMac17,1)[/INDENT]
[INDENT][ 27 ] Mac-E43C1C25D4880AD6.plist (MacBookPro12,1)[/INDENT]
[INDENT][ 28 ] Mac-F305150B0C7DEEEF.plist (Unknown Model @ 2400/2600/2900)[/INDENT]
[INDENT][ 29 ] Mac-F60DEB81FF30ACF6.plist (MacPro6,1)[/INDENT]
[INDENT][ 30 ] Mac-FA842E06C61E91C5.plist (iMac15,1)[/INDENT]
[INDENT][ 31 ] Mac-FFE5EF870D7BA81A.plist (iMac16,2)[/INDENT]
[INDENT][/INDENT]
[INDENT]Please choose the desired plist for your hardware (Exit/1-31) ? 26[/INDENT]
[INDENT][/INDENT]
[INDENT]Triggering a kernelcache refresh ...[/INDENT]
[INDENT][/INDENT]
[INDENT]Do you want to open Mac-F60DEB81FF30ACF6.plist (y/n)? n[/INDENT]
[INDENT]Do you want to reboot now? (y/n) n
11.) Reboot12.) To verify that the new Frequency-Vectors from Mac-F60DEB81FF30ACF6.plist are now loaded, use the following terminal
command:
Code:
sysctl -n machdep.xcpm.vectors_loaded_count
If "0" is returned, then the FrequencyVectors are still missing or are not being used at present. If everything is ok, the command returns "1".
13.) To verify your new Power Management, download Piker Alpha’s AppleIntelInfo.kext from Github. To compile the code enterthe following terminal commands:
Code:
cd ~/Downloads/AppleIntelInfo-master[/INDENT]
[INDENT]xcodebuild[/INDENT]
[INDENT]cd build/Release[/INDENT]
[INDENT]chmod -R 755 AppleIntelInfo.kext[/INDENT]
[INDENT]sudo chown -R root:wheel AppleIntelInfo.kext[/INDENT]
[INDENT]
Load the AppleIntelInfo.kext with "kextutil or kextload" and "cat" the info-results with the following terminal commands:
Code:
sudo kextutil AppleIntelInfo.kext
Code:
sudo kextload AppleIntelInfo.kext
Code:
sudo cat /tmp/AppleIntelInfo.dat
The amount of enabled power states will then show up in the Terminal window:
Code:
--------------------------------------------------------------------------------------------[/INDENT]
[INDENT]AppleIntelInfo.kext v2.5 Copyright © 2012-2017 Pike R. Alpha. All rights reserved.[/INDENT]
[INDENT][/INDENT]
[INDENT]Settings:[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]logMSRs..................................: 1[/INDENT]
[INDENT]logIGPU..................................: 0[/INDENT]
[INDENT]logCStates...............................: 1[/INDENT]
[INDENT]logIPGStyle..............................: 1[/INDENT]
[INDENT]InitialTSC...............................: 0x10e9ae70b5478 (9917 MHz)[/INDENT]
[INDENT]MWAIT C-States...........................: 8480[/INDENT]
[INDENT][/INDENT]
[INDENT]Processor Brandstring....................: Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz[/INDENT]
[INDENT][/INDENT]
[INDENT]Processor Signature..................... : 0x406F1[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Family............................... : 6[/INDENT]
[INDENT]- Stepping............................. : 1[/INDENT]
[INDENT]- Model................................ : 0x4F (79)[/INDENT]
[INDENT][/INDENT]
[INDENT]Model Specific Registers (MSRs)[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_CORE_THREAD_COUNT............(0x35) : 0x0[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Core Count........................... : 10[/INDENT]
[INDENT]- Thread Count......................... : 20[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_PLATFORM_INFO................(0xCE) : 0x20080C3BF3811E00[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Maximum Non-Turbo Ratio.............. : 0x1E (3000 MHz)[/INDENT]
[INDENT]- Ratio Limit for Turbo Mode........... : 1 (programmable)[/INDENT]
[INDENT]- TDP Limit for Turbo Mode............. : 1 (programmable)[/INDENT]
[INDENT]- Low Power Mode Support............... : 1 (LPM supported)[/INDENT]
[INDENT]- Number of ConfigTDP Levels........... : 1 (additional TDP level(s) available)[/INDENT]
[INDENT]- Maximum Efficiency Ratio............. : 12[/INDENT]
[INDENT]- Minimum Operating Ratio.............. : 8[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_PMG_CST_CONFIG_CONTROL.......(0xE2) : 0x1E000005[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- I/O MWAIT Redirection Enable......... : 0 (not enabled)[/INDENT]
[INDENT]- CFG Lock............................. : 0 (MSR not locked)[/INDENT]
[INDENT]- C3 State Auto Demotion............... : 1 (enabled)[/INDENT]
[INDENT]- C1 State Auto Demotion............... : 1 (enabled)[/INDENT]
[INDENT]- C3 State Undemotion.................. : 1 (enabled)[/INDENT]
[INDENT]- C1 State Undemotion.................. : 1 (enabled)[/INDENT]
[INDENT]- Package C-State Auto Demotion........ : 0 (disabled/unsupported)[/INDENT]
[INDENT]- Package C-State Undemotion........... : 0 (disabled/unsupported)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_PMG_IO_CAPTURE_BASE..........(0xE4) : 0x10414[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- LVL_2 Base Address................... : 0x414[/INDENT]
[INDENT]- C-state Range........................ : 1 (C-States not included, I/O MWAIT redirection not enabled)[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_MPERF.......................(0xE7) : 0xFEAF48A9D[/INDENT]
[INDENT]IA32_APERF.......................(0xE8) : 0x134F97C554[/INDENT]
[INDENT]MSR_0x150........................(0x150) : 0x0[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_FLEX_RATIO...................(0x194) : 0xE0000[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_IA32_PERF_STATUS.............(0x198) : 0x203700001E00[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Current Performance State Value...... : 0x1E00 (3000 MHz)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_IA32_PERF_CONTROL............(0x199) : 0x800[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Target performance State Value....... : 0x800 (800 MHz)[/INDENT]
[INDENT]- Intel Dynamic Acceleration........... : 0 (IDA engaged)[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_CLOCK_MODULATION............(0x19A) : 0x0[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_THERM_INTERRUPT.............(0x19B) : 0x0[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_THERM_STATUS................(0x19C) : 0x883E0000[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Thermal Status....................... : 0[/INDENT]
[INDENT]- Thermal Log.......................... : 0[/INDENT]
[INDENT]- PROCHOT # or FORCEPR# event.......... : 0[/INDENT]
[INDENT]- PROCHOT # or FORCEPR# log............ : 0[/INDENT]
[INDENT]- Critical Temperature Status.......... : 0[/INDENT]
[INDENT]- Critical Temperature log............. : 0[/INDENT]
[INDENT]- Thermal Threshold #1 Status.......... : 0[/INDENT]
[INDENT]- Thermal Threshold #1 log............. : 0[/INDENT]
[INDENT]- Thermal Threshold #2 Status.......... : 0[/INDENT]
[INDENT]- Thermal Threshold #2 log............. : 0[/INDENT]
[INDENT]- Power Limitation Status.............. : 0[/INDENT]
[INDENT]- Power Limitation log................. : 0[/INDENT]
[INDENT]- Current Limit Status................. : 0[/INDENT]
[INDENT]- Current Limit log.................... : 0[/INDENT]
[INDENT]- Cross Domain Limit Status............ : 0[/INDENT]
[INDENT]- Cross Domain Limit log............... : 0[/INDENT]
[INDENT]- Digital Readout...................... : 62[/INDENT]
[INDENT]- Resolution in Degrees Celsius........ : 1[/INDENT]
[INDENT]- Reading Valid........................ : 1 (valid)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_THERM2_CTL...................(0x19D) : 0x0[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_MISC_ENABLES................(0x1A0) : 0x850089[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Fast-Strings......................... : 1 (enabled)[/INDENT]
[INDENT]- FOPCODE compatibility mode Enable.... : 0[/INDENT]
[INDENT]- Automatic Thermal Control Circuit.... : 1 (enabled)[/INDENT]
[INDENT]- Split-lock Disable................... : 0[/INDENT]
[INDENT]- Performance Monitoring............... : 1 (available)[/INDENT]
[INDENT]- Bus Lock On Cache Line Splits Disable : 0[/INDENT]
[INDENT]- Hardware prefetch Disable............ : 0[/INDENT]
[INDENT]- Processor Event Based Sampling....... : 0 (PEBS supported)[/INDENT]
[INDENT]- GV1/2 legacy Enable.................. : 0[/INDENT]
[INDENT]- Enhanced Intel SpeedStep Technology.. : 1 (enabled)[/INDENT]
[INDENT]- MONITOR FSM.......................... : 1 (MONITOR/MWAIT supported)[/INDENT]
[INDENT]- Adjacent sector prefetch Disable..... : 0[/INDENT]
[INDENT]- CFG Lock............................. : 0 (MSR not locked)[/INDENT]
[INDENT]- xTPR Message Disable................. : 1 (disabled)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_TEMPERATURE_TARGET...........(0x1A2) : 0x640A00[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Turbo Attenuation Units.............. : 0[/INDENT]
[INDENT]- Temperature Target................... : 100[/INDENT]
[INDENT]- TCC Activation Offset................ : 0[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_MISC_PWR_MGMT................(0x1AA) : 0x402000[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- EIST Hardware Coordination........... : 0 (hardware coordination enabled)[/INDENT]
[INDENT]- Energy/Performance Bias support...... : 1[/INDENT]
[INDENT]- Energy/Performance Bias.............. : 0 (disabled/MSR not visible to software)[/INDENT]
[INDENT]- Thermal Interrupt Coordination Enable : 1 (thermal interrupt routed to all cores)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_TURBO_RATIO_LIMIT............(0x1AD) : 0x2A2A2A2A2A2A2A2A[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Maximum Ratio Limit for C01.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C02.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C03.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C04.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C05.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C06.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C07.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C08.......... : 2A (4200 MHz)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_TURBO_RATIO_LIMIT1...........(0x1AE) : 0x2222222222222A2A[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Maximum Ratio Limit for C09.......... : 2A (4200 MHz)[/INDENT]
[INDENT]- Maximum Ratio Limit for C10.......... : 2A (4200 MHz)[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_ENERGY_PERF_BIAS............(0x1B0) : 0x1[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Power Policy Preference...............: 1 (highest performance)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_POWER_CTL....................(0x1FC) : 0x2904005B[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Bi-Directional Processor Hot..........: 1 (enabled)[/INDENT]
[INDENT]- C1E Enable............................: 1 (enabled)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_RAPL_POWER_UNIT..............(0x606) : 0xA0E03[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Power Units.......................... : 3 (1/8 Watt)[/INDENT]
[INDENT]- Energy Status Units.................. : 14 (61 micro-Joules)[/INDENT]
[INDENT]- Time Units .......................... : 10 (976.6 micro-Seconds)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_PKG_POWER_LIMIT..............(0x610) : 0x7FFF80015FFF8[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Package Power Limit #1............... : 4095 Watt[/INDENT]
[INDENT]- Enable Power Limit #1................ : 1 (enabled)[/INDENT]
[INDENT]- Package Clamping Limitation #1....... : 1 (allow going below OS-requested P/T state during Time Window for Power Limit #1)[/INDENT]
[INDENT]- Time Window for Power Limit #1....... : 10 (2560 milli-Seconds)[/INDENT]
[INDENT]- Package Power Limit #2............... : 4095 Watt[/INDENT]
[INDENT]- Enable Power Limit #2................ : 1 (enabled)[/INDENT]
[INDENT]- Package Clamping Limitation #2....... : 1 (allow going below OS-requested P/T state setting Time Window for Power Limit #2)[/INDENT]
[INDENT]- Time Window for Power Limit #2....... : 3 (20 milli-Seconds)[/INDENT]
[INDENT]- Lock................................. : 0 (MSR not locked)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_PKG_ENERGY_STATUS............(0x611) : 0x1790A7[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]- Total Energy Consumed................ : 94 Joules (Watt = Joules / seconds)[/INDENT]
[INDENT][/INDENT]
[INDENT]MSR_PKGC3_IRTL...................(0x60a) : 0x0[/INDENT]
[INDENT]MSR_PKGC6_IRTL...................(0x60b) : 0x0[/INDENT]
[INDENT]MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x963E73684[/INDENT]
[INDENT]MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x9F9A5C[/INDENT]
[INDENT]MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x963E73684[/INDENT]
[INDENT]MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x9F9A5C[/INDENT]
[INDENT]MSR_PKG_C6_RESIDENCY.............(0x3f9) : 0x12C18DAEE0[/INDENT]
[INDENT][/INDENT]
[INDENT]IA32_TSC_DEADLINE................(0x6E0) : 0x10E9AE8F276BC[/INDENT]
[INDENT][/INDENT]
[INDENT]CPU Ratio Info:[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]Base Clock Frequency (BLCK)............. : 100 MHz[/INDENT]
[INDENT]Maximum Efficiency Ratio/Frequency.......: 12 (1200 MHz)[/INDENT]
[INDENT]Maximum non-Turbo Ratio/Frequency........: 30 (3000 MHz)[/INDENT]
[INDENT]Maximum Turbo Ratio/Frequency............: 42 (4200 MHz)[/INDENT]
[INDENT]P-State ratio * 100 = Frequency in MHz[/INDENT]
[INDENT]------------------------------------------[/INDENT]
[INDENT]CPU P-States [ (12) 35 ][/INDENT]
[INDENT]CPU C3-Cores [ 1 3 4 6 7 8 13 14 15 16 18 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 4 6 8 10 12 14 16 18 ][/INDENT]
[INDENT]CPU P-States [ 12 26 35 (42) ][/INDENT]
[INDENT]CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 13 14 15 16 18 19 ][/INDENT]
[INDENT]CPU P-States [ (12) 26 33 35 42 ][/INDENT]
[INDENT]CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 12 13 14 15 16 18 19 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 4 6 7 8 10 12 14 16 18 ][/INDENT]
[INDENT]CPU P-States [ (12) 26 27 33 35 42 ][/INDENT]
[INDENT]CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 9 12 13 14 15 16 18 19 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 3 4 6 7 8 10 12 14 16 18 ][/INDENT]
[INDENT]CPU P-States [ 12 26 27 28 33 35 (42) ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 3 4 6 7 8 10 12 14 16 17 18 ][/INDENT]
[INDENT]CPU P-States [ 12 26 27 28 (30) 33 35 39 42 ][/INDENT]
[INDENT]CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 9 12 13 14 15 16 17 18 19 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 3 4 6 7 8 10 11 12 14 16 17 18 ][/INDENT]
[INDENT]CPU P-States [ 12 26 27 28 (30) 32 33 35 39 42 ][/INDENT]
[INDENT]CPU P-States [ 12 21 26 27 28 30 32 33 35 39 (42) ][/INDENT]
[INDENT]CPU P-States [ 12 21 26 27 28 30 32 33 35 37 39 (42) ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 3 4 6 7 8 9 10 11 12 14 16 17 18 ][/INDENT]
[INDENT]CPU P-States [ 12 21 26 27 28 (30) 32 33 35 36 37 39 42 ][/INDENT]
[INDENT]CPU P-States [ (12) 21 26 27 28 30 32 33 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ (12) 19 21 26 27 28 30 32 33 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ (12) 19 21 23 26 27 28 30 32 33 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 3 4 5 6 7 8 9 10 11 12 14 16 17 18 ][/INDENT]
[INDENT]CPU P-States [ 12 18 19 21 23 26 27 28 (30) 32 33 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ (12) 16 18 19 21 23 26 27 28 30 32 33 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ 12 16 18 19 21 23 26 27 28 30 32 33 34 35 36 37 38 39 (42) ][/INDENT]
[INDENT]CPU C6-Cores [ 0 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 ][/INDENT]
[INDENT]CPU P-States [ 12 16 18 19 21 23 24 26 27 28 (30) 32 33 34 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 ][/INDENT]
[INDENT]CPU P-States [ (12) 16 17 18 19 21 23 24 26 27 28 30 32 33 34 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ 12 16 17 18 19 21 22 23 24 26 27 28 (30) 32 33 34 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ (12) 16 17 18 19 21 22 23 24 26 27 28 29 30 32 33 34 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU P-States [ 12 16 17 18 19 21 22 23 24 25 26 27 28 29 (30) 32 33 34 35 36 37 38 39 42 ][/INDENT]
[INDENT]CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 ][/INDENT]
[INDENT]CPU P-States [ (12) 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 42 ][/INDENT]
[INDENT]--------------------------------------------------------------------------------------------
To unload the AppleIntelInfo.kext, enter the terminal command:
Code:
sudo kextunload AppleIntelInfo.kext
Current literature: https://pikeralpha.wordpress.com/2016/07/26/xcpm-for-unsupported-processor/
https://pikeralpha.wordpress.com/2013/10/05/xnu-cpu-power-management/
https://pikeralpha.wordpress.com/2013/12/20/macpro61-smbios-data/
https://github.com/Piker-Alpha/ssdtPRGen.sh
https://github.com/Piker-Alpha/AppleIntelInfo
https://github.com/Piker-Alpha/freqVectorsEdit.sh
http://www.insanelymac.com/forum/to...-x99-broadwell-e-family-and-haswell-e-family/
https://www.tonymacx86.com/threads/quick-guide-to-generate-a-ssdt-for-cpu-power-management.177456/
https://www.tonymacx86.com/threads/guide-full-power-management-w-dual-single-broadwell-ep-haswell-ep-cpus-on-10-12.204468/
http://www.insanelymac.com/forum/topic/314378-1012-pb-haswell-e-clover-kernel-patching-for-xcpm/
https://github.com/Piker-Alpha/ssdtPRGen.sh/issues/261
http://osxarena.com/2016/04/guide-native-power-management-for-hackintosh-or-how-to-generatecreate-ssdt/
http://www.insanelymac.com/forum/topic/295587-power-management-for-sandyivy-bridgehaswell-cpus/
----------------------------------------------------------------------------------------------------------------------------------------------


1.) The entire guide above assumes stock speeds = OoB (out-of-box...running as-is right out of the box). For Overclocking, apply
the following BIOS settings (thanks to @Thireus for his valuable inputs) after enabling the XMP switch on the Asus X99-A II and connecting the over-voltage jumper to pins 2-3 :
Code:
- AI overclock Tuner: XMP[/INDENT]
[INDENT]- BLCK Frequency: 100 Mhz[/INDENT]
[INDENT]- CPU Core Ratio: Sync All Cores[/INDENT]
[INDENT]- Core Ratio: 42[/INDENT]
[INDENT]
A BLCK Frequency of 100 Mhz leads to the best NVMe performance. The core ratio of 42 corresponds to 4.2 Ghz overclocking.
2.) Re-run
Code:
./ssdtPRGen.sh -turbo 4200 -x 1
Copy the modified SDST.aml from ~/Library/ssdtPRGen/ to /EFI/CLOVER/ACPI/patched/ and reboot.----------------------------------------------------------------------------------------------------------------------------------------------


Using XCPM, one usually faces the following issue:
a.) With EIST enabled in the BIOS, the CPU runs more or less at defined idle frequencies (1.2GHz), however defined max. turbo
frequencies (4.2GHz) are never reached under CPU load conditions. Therefore, in this primer case the overall CPU and System performance is strongly diminished. See e.g. the snapshot of the Intel Power Gadget (IPG) below, taken during idle and CPU load conditions by sequentially running Cinebench in parallel.
b.) With EIST disabled in the BIOS, the defined max. turbo frequencies (4.2 GHz) are implemented as expected during CPUload conditions, however the idle frequencies are much higher than defined and expected (1.2 GHz). See e.g. the snapshot of the Intel Power Gadget (IPG) below, taken during idle and CPU load conditions by sequentially running Cinebench in parallel.
However, it seems that there is a trick to circumvent this problem by means of an additional kext developed by Brumbear, namely the "PMDrvr.kext". Although this kext was never meant to function in combination with XCMP, both approaches seem to harmonize pretty well and to dramatically improve the overall OSX/macOS CPU power management performance by implementing both defined idle frequencies under CPU idle conditions (1.2 GHz) and frequencies up to the defined max. turbo frequency (4.2 GHz) under CPU load conditions, with EIST enabled in the mobo BIOS. See the IPG figure below for comparison, showing CPU idle and load conditions with sequentially running Cinebench in parallel:
The description below provides a general guideline how to establish the "PMDrvr.kext" + XCPM configuration, with EIST enabled in the mobo BIOS.
1.) Perform all steps listed in the XCPM aka Xnu CPU Power Management guide above in order to have a fully functional XCPM
working on your system.
2.) Download, unzip and copy Brumbear's "PMDrvr.kext" to the /EFI/Clover/kexts/10.12/ directory. Note that there are two
different PMDrvr.kext distributions attached towards the end of my guide: PMDrvr.kext_Broadwell-E.zip for Broadwell-E CPUs and PMDrvr_Haswell-E.kext.zip for Haswell-E CPUs.
3.) Reboot
4.) Apply the following BIOS settings:
Advanced\CPU Configuration\CPU Power Management Configuration\
- Enhanced Intel SpeedStep Technology (EIST): Enabled
Literature: Haswell E Powermanagment yet another option
----------------------------------------------------------------------------------------------------------------------------------------------


While already with one of the first versions of this guide, Sleep/Wake on the Gigabyte X99 Ultra Gaming, Gigabyte X99-SOC-Force and Gigabyte X99-SLI has been achieved OoB (thanks to @hooked and @erlipton05 for their valuable feedback and inputs), Sleep/Wake functionally now can also be achieved on the ASUS X99-A II (and supposedly on all other X99 ASUS mobos) thanks to a couple of additional patches.
For details see the Section "Sleep/Wake Functionality" of my macOS High Sierra 10.13 Desktop Guide, which also directly applies to macOS Sierra 10.12. Just note that in case of macOS Sierra 10.12, the repeatedly indicated path "/EFI/CLOVER/kexts/Others/" changes to "/EFI/CLOVER/kexts/10.12/".
----------------------------------------------------------------------------------------------------------------------------------------------


Geekbench-4.1 Scores:
Geekbench-4.1 Metal-Scores:
Former Reference - Nvidia GTX 980 TI (same system build) - Metal Score: 78440
LuxMark 3.1:
Former Reference - Nvidia GTX 980 TI (same system build) - CPU & GPU Score: 22652 / GPU score: 17575
Unigine Heaven Benchmark 4.0:
Former Reference - Nvidia GTX 980 TI (same system build) - FPS: 100.8; Score: 2539; MinFPS: 18.9; Max FPS 191.8, @2160x1080 pixel
Cinebench R15.0:
Former Reference: Nvidia GTX 980 TI (same system build) - OpenGL: 138.04 fps; CPU: 2186 cb
Black Magic Disk Speed Tests v3.1:
----------------------------------------------------------------------------------------------------------------------------------------------



The HWMonitor.app allows to access information from hardware sensors of your hackintosh. It works along with the FakeSMC.kext and some additional Sensor kext-plugins. The HWSensors drivers allow to derive and monitor in real-time actual frequencies, temperatures or voltages, not only of the CPU or mobo-fans but also of other hardware components.
1.) To start with, download the latest version of the HWSensors binaries.
2.) Open the dmg-file and copy its content to a temporary directory.
3.) Form there , copy the HWMonitor.app to the "Applications" folder.
4.) Subsequently, copy the CPUSensors.kext, ACPISensors.kext and LPCSensors.kext to the /EFI/CLOVER/kexts/10.12/
directory of your system disk.
Warning! Do not copy the GPUSensors.kext! The latter kext-plugin caused kernel-panic while booting my system! Also do not copy the included FakeSMC.kext, as it seems to cause freezing and random reboots! In fact the included FakeSMC.kext is required to properly monitor fan speeds. However, it is much more important to have a stable system then taking profit of this minor add-on. Please stay with the original FakeSMC.kext included in kexts.zip attached towards the end of my guide.
5.) Reboot
Now you should have plenty of system hardware sensor data at your deposit. The HWmonitor.app can be automatically started at login.
----------------------------------------------------------------------------------------------------------------------------------------------




If you are still running 10.12.5, simply perform the following steps:
1.) Download and install the latest Clover distribution. Check after clover installation, that "OsxAptioFix2Drv-free2000.efi" is the
only "OsxAptioFix*Drv**.efi" file in your /EFI/CLOVER/Drivers64UEFI/ directory.
2.) In the web driver menu, change from "web driver" to "OS X default graphics driver".
3.) Download the macOS Sierra 10.12.6 update from the App-Store.
4.) Reboot as requested (only in case that you encounter problems with the graphics card, boot just once with the
boot-flag: nv_disable=1)
5.) All Nvme Users: Download the latest version of "patch-nvme-master" from https://github.com/RehabMan/patch-nvme.
Run patch_nvmw.sh with the --spoof parameter and the actual system version as additional parameter (Sierra 10.12.6):
-----------------------
Terminal Command:
-----------------------
Code:
./patch_nvme.sh --spoof 10_12_6
Copy the "HackrNVMeFamily-10_12_6.kext" (also attached at the bottom of my guide) into your /EFI/CLOVER/kexts/10.12
partition or system's S/L/E or L/E. Remove the former "HackrNVMeFamily-10_12_5.kext"
6.) Apply once more the AGDPfix!
7.) Download and Install the latest NVIDIA Web Drivers.
8.) Reboot as requested.
9.) Now proceed to the Section XCPM, and re-inject the frequency vector to your Mac-F60DEB81FF30ACF6.plist. Note
that the latter file has been rewritten during the macOS Sierra upgrade!
10.) If you decided to go for sleep/wake functionality instead of EIST and PMDrvr.kext, finally proceed to Section Sleep/Wake Functionality and redo the DSDT creation. Copy the resulting DSDT.aml to /EFI/CLOVER/ACPI/patched/ and reboot.
Now you are done and you are successfully running macOs Sierra 10.12.6!
The same procedure might also apply for all upcoming macOS Sierra updates. However, better await respective confirmations.
Concerning macOS High Sierra 10.13, the logical continuation of my macOS Sierra 10.12 Desktop Guide depicted above and its extension to macOS High Sierra 10.13 has been published today (13 July 2017). Anybody, interested can follow THIS LINK. Note that macOS High Sierra 10.13 is still in an early beta stage. Use the latter guide only for test purposes. Do not directly upgrade your macOS Sierra 10.12 System Drive!
In general, don't forget to create a clone of your system-disk before performing any update or modification! The famous quote "never touch a running system" is still valid to some point

To do so, clone your system SSD with CarbonCopyCloner.

a.) Open the EFI Partition of your Clone Drive and System Disk with the Clover Configurator. Be careful not to confuse between
the EFI partition of your Boot Disk and Clone Drive, subsequently!
b.) If the EFI partition of your Clone Drive is not empty delete all its content.c.) Copy the EFI folder of your System disk to the EFI partition of your Clone Drive
If your Clone Drive does not have any EFI partition, you will have to create it primerly by means of a Clover installation. Then proceed with b.)
By this procedure, your clone-drive will be identical to your system-disk and you can directly boot from it in case of problems. You also can repair the system-disk or restore the backup from your clone drive.
Always keep your clone-drive up-to-date and frequently clone your system-disk!
Good luck!

----------------------------------------------------------------------------------------------------------------------------------------------
I think my actual thread implements both, hardware build and installation guide at the same time. I am sure that this high-end build finds manifold application, not only in science and research at universities or research institutions, engineering facilities, or medical labs, etc... Latest successful user feedback with respect to Broadwell-EP/Haswell-EP processers with up to 22 cores (44 threads) at clock speeds around 2.8 GHz each thread make X99 to a "realtively cheap" but extremely serious alternative to the yet to be released iMac Pro. The principal intention of this Guide was to demonstrate, that we are able to build and configure stable and relatively "low-cost" high-end systems nowadays, that goe far beyond of what Apple is able to offer at present or will be ever able to offer for some reasonable pricing. A system based on X99, that allows the use of all software-packages developed for MacOS, Unix, Linux or even Windows at the same time (e.g. think on Vine, Parallels, or a dual boot system configurations). The flexibility between different boards (Asus, Gigabyte, ASRock, MSI, etc.), different processor models (Broadwell-E/EP, Haswell-E/EP) and different Ram memory configurations (16-128GB) makes it affordable for anybody (also home office, audio and video editing/production, etc.) and allows its perfect adaptation for the specific purpose, requirements and available budgets. Finally it should be mentioned, that such a system now is able to run absolutely stable on a 24/7/365 basis.

In my opinion, X99 definitely deserves to be recognized by Tonymacx's buyer's guide, specifically when addressing possible Customac Pro or Customac High-End configurations.
I kindly invite all users with similar or different X99 configurations to provide their feedback on my guide and thread, although also many non-x99 boarders will be able to take profit of major parts of my guide. Of course, also their feedback is warmly welcome.
In an case many thanks for recognizing my thread on Tonymacx86 and all the support I received in the meanwhile!
It is a personal pleasure to be part of tonymacx86!







----------------------------------------------------------------------------------------------------------------------------------------------
Attachments
-
config.plist.zip3.1 KB · Views: 4,076
-
kexts.zip3.5 MB · Views: 4,356
-
SSDT-1.aml.zip297 bytes · Views: 1,432
-
caches_rebuild.command.zip669.7 KB · Views: 1,210
-
AppleIntelInfo.kext.zip49.3 KB · Views: 1,296
-
OsxAptioFix2Drv-free2000.efi.zip8.8 KB · Views: 2,350
-
nvme_patch.aml.zip917 bytes · Views: 1,189
-
NvmExpressDxe-64.efi.zip11.9 KB · Views: 1,154
-
X99_Series_DRAM_QVL_for_i7-69xx_68xx_processors.pdf621.5 KB · Views: 2,929
-
IntelMausiEthernet.kext.zip55.6 KB · Views: 2,012
-
BCM94360CD Win10 Drivers.zip15.4 MB · Views: 1,484
-
AppleALC Audio.zip575.9 KB · Views: 1,630
-
SSDT-HDMI.aml.zip916 bytes · Views: 1,305
-
VoodooTSCSync.kext.zip18.3 KB · Views: 1,137
-
UEFIPatch_0.3.9_osx.zip1.9 MB · Views: 8,698
-
PMDrvr.kext_Broadwell-E.zip17.2 KB · Views: 1,563
-
PMDrvr_Haswell-E.kext.zip17.2 KB · Views: 1,650
-
X99 dsdt errors.txt10.6 KB · Views: 1,572
-
usb_prw_0x0d_xhc.txt4.6 KB · Views: 1,169
-
MaciASL-DSDT.app.zip3.5 MB · Views: 1,050
-
AGDPfix.app.zip85 KB · Views: 1,839
-
HackrNVMeFamily-10_12_6.kext.zip91.5 KB · Views: 1,034
-
DSM2-ASUS-X99-A-II-USB.kext.zip2.4 KB · Views: 1,128
Last edited: