Contribute
Register

The Perfect Customac-Pro: X99-A II, i7-6950X, 128GB G.Skill TridentZ, Aorus GTX 1080 TI Xtreme

Status
Not open for further replies.

kgp

Retired
Joined
May 30, 2014
Messages
6,745
Motherboard
ASUS WS X299 Sage 10G
CPU
i9-7980XE
Graphics
Vega 64
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Mobile Phone
  1. iOS
Overview.png


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!

compose3-half.png



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 PCIe
Adapter. 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 AX860
CPU 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 Tower
Keyboard: 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
Case modding: 2x Nanoxia Rigid Bar RGB NRLED30RGB; HitLights RGB LED Light Strip 4 Pin Splitter; Nanoxia Led controller
NXRGBC (ASUS Aura control software only available for windows; extremely rudimentary Aura BIOS settings; no option for separate control of individual aura components).​


cover-open-hr.png



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!

KernelPM-xcpm-idl-Sierra.png


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) BIOS
file.​

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:​
Flashback.png
10.) Wait until the Flashback-led stops blinking and turns off, indicating that the BIOS Flashback process as been successfully
completed. 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.

bios04.jpeg

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
usb-stick.png





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








ssd.png









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.

cloverbeast.png

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.​

clover.png


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 Configuration

1.) 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 I

A 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 II

a.) 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
Within the latter approach, all internal and external USB2.0 and USB 3.0 ports on the ASUS X99-A II will be correctly implemented and reveal the expected data rates.

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.

AGPDfix.png

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.​

NVIDIA.jpeg

----------------------------------------------------------------------------------------------------------------------------------------------
:clap:You are done - now you have a basic fully operational x99/LGA2011-v3 Sierra Customac-Pro Build including sleep/wake functionality :clap:
----------------------------------------------------------------------------------------------------------------------------------------------

:idea: M.2 User guide :idea:

Samsung_SSD_960_Evo_1TB.png

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! :thumbup::clap:

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!

System Info.png


Disk Utility.png


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

:idea: Xnu CPU Power Management (XCPM) Guide :idea:

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
Now, follow the stepwise approach below:

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]
KextsToPatch.png
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]
KernelToKext.png
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 CP00@0 the following entry:

Code:
Property:         Type:         Value:[/INDENT]
[INDENT]plugin-type       Number        0x1
b.) Verify with the terminal command
Code:
kextstat|grep -y x86plat
that the "X86PlatformPlugin.kext" is now loaded. If the command returns​
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
Code:
kextstat|grep -y appleintelcpu
that you got now rid of the Apple Intel CPU power management. If the result is empty you are fine.​
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.) Reboot

12.) 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 enter
the 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
or
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/
----------------------------------------------------------------------------------------------------------------------------------------------

:idea: Overclocking :idea:

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.

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

:idea: Enhanced Intel SpeedStep Technology (EIST) Implementation :idea:

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.​
IPG2.png
b.) With EIST disabled in the BIOS, the defined max. turbo frequencies (4.2 GHz) are implemented as expected during CPU
load 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.​

IPG.png

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:

EIST.png

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
5.) Save your BIOS settings with F7 and F10 and reboot

Literature: Haswell E Powermanagment yet another option

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

:!: Sleep/Wake Functionality: :!:

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/".

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

:idea: Benchmarking :idea:

Geekbench-4.1 Scores:

Geekbench-4.1-1.png


Geekbench-4.1-2.png


Geekbench-4.1 Metal-Scores:

Former Reference - Nvidia GTX 980 TI (same system build) - Metal Score: 78440

Geekbench-v4.1-metal.png


LuxMark 3.1:

Former Reference - Nvidia GTX 980 TI (same system build) - CPU & GPU Score: 22652 / GPU score: 17575

LuxMark-v3.1.png


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

Unigine-Heaven.png


heaven-3840x1600.png


Cinebench R15.0:

Former Reference: Nvidia GTX 980 TI (same system build) - OpenGL: 138.04 fps; CPU: 2186 cb

Cinebench-R15.png


Black Magic Disk Speed Tests v3.1:

Speed-Disk-Test.png


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

:idea: HWMonitoring :idea:

HWMonitor.png

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.

HWMonitor-1.png

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


:idea: MacOS Sierra Upgradability :idea:

:thumbup: Sierra 10.12.6 working without problems! :thumbup:


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 :lol:.

To do so, clone your system SSD with CarbonCopyCloner. :thumbup: However, CCC does not clone the EFI partition! Therefore you have to perform the following steps in addition:

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! :thumbup:

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

;) Famous Last Words, Summary and Conclusion ;)

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. :thumbup:

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!:clap::clap::clap:

:thumbup:!! Good Luck with my guide!!:thumbup:



main_kv.png
:thumbup:!! Good Luck with my guide !!:thumbup:








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

Attachments

  • config.plist.zip
    3.1 KB · Views: 4,118
  • kexts.zip
    3.5 MB · Views: 4,409
  • SSDT-1.aml.zip
    297 bytes · Views: 1,472
  • caches_rebuild.command.zip
    669.7 KB · Views: 1,243
  • AppleIntelInfo.kext.zip
    49.3 KB · Views: 1,330
  • OsxAptioFix2Drv-free2000.efi.zip
    8.8 KB · Views: 2,385
  • nvme_patch.aml.zip
    917 bytes · Views: 1,224
  • NvmExpressDxe-64.efi.zip
    11.9 KB · Views: 1,182
  • X99_Series_DRAM_QVL_for_i7-69xx_68xx_processors.pdf
    621.5 KB · Views: 3,001
  • IntelMausiEthernet.kext.zip
    55.6 KB · Views: 2,068
  • BCM94360CD Win10 Drivers.zip
    15.4 MB · Views: 1,543
  • AppleALC Audio.zip
    575.9 KB · Views: 1,669
  • SSDT-HDMI.aml.zip
    916 bytes · Views: 1,359
  • VoodooTSCSync.kext.zip
    18.3 KB · Views: 1,182
  • UEFIPatch_0.3.9_osx.zip
    1.9 MB · Views: 8,827
  • PMDrvr.kext_Broadwell-E.zip
    17.2 KB · Views: 1,626
  • PMDrvr_Haswell-E.kext.zip
    17.2 KB · Views: 1,723
  • X99 dsdt errors.txt
    10.6 KB · Views: 1,613
  • usb_prw_0x0d_xhc.txt
    4.6 KB · Views: 1,207
  • MaciASL-DSDT.app.zip
    3.5 MB · Views: 1,095
  • AGDPfix.app.zip
    85 KB · Views: 1,890
  • HackrNVMeFamily-10_12_6.kext.zip
    91.5 KB · Views: 1,089
  • DSM2-ASUS-X99-A-II-USB.kext.zip
    2.4 KB · Views: 1,181
Last edited:
Hello :)

Could you please make a couple of comments about stability and issues ?

In particular, this issue - 2 Monitor setup (DVI+DVI - DVI+HDMI/DP gives reboot, but work if plugged after Mac boots up).

I've just built my first "hack" and so far it seems to be rock solid (running 10.11.6). I've seen ptzulu's thread, but still not convinced to go for Sierra yet :)

Thanks for the guide anyway ! A lot of people will be interested in this one.

Cheers
 
Last edited:
Hello :)

Could you please make a couple of comments about stability and issues ?

I've just built my first "hack" and so far it seems to be rock solid (running 10.11.6). I've seen ptzulu's thread, but still not convinced to go for Sierra yet :)

Thanks for the guide anyway ! A lot of people will be interested in this one.

Cheers

If you carefully consider my advises and in particular also the BIOS-setting advises of Giacomoleopardo you are save and there are no issues, except some likely and normal sleep/wake issues which can be eluded or disabled in any case. This X99 build is absolutely stable, runs like hell and really represents a milestone.. It should replace all former already outdated X79 builds. In fact it also should replace Tonymacx's actual customac-pro buyer's guide! :thumbup:
 
Hello :)

Could you please make a couple of comments about stability and issues ?

In particular, this issue - 2 Monitor setup (DVI+DVI - DVI+HDMI/DP gives reboot, but work if plugged after Mac boots up).

I've just built my first "hack" and so far it seems to be rock solid (running 10.11.6). I've seen ptzulu's thread, but still not convinced to go for Sierra yet :)

Thanks for the guide anyway ! A lot of people will be interested in this one.

Cheers

First I want to say Thanks.
Then, if you could elaborate better the singular prob or step to get everithing working with the setup and installation, would be better in a Guide section.

:clap:

p.s. watching the screenshot about your system report I don't understand what type of cpu you have installed, I7, which type or xeon..which type?
 
First I want to say Thanks.
Then, if you could elaborate better the singular prob or step to get everithing working with the setup and installation, would be better in a Guide section.

:clap:

p.s. watching the screenshot about your system report I don't understand what type of cpu you have installed, I7, which type or xeon..which type?


I think I depicted the post-installation process quite clear. It is really not complicated, you just have to go throught the indivdual points as illustrated. Not more! If you do not have an already installed Mac OS Sierra on disk, you can find plenty of splendid guides how to generate a MacOS Sierra 10.12 USB installation medium. The "config.plist" file and the "drivers64UEFI" and "kexts" directories have to be subsequently copied to the EFI partition of the USB boot medium. The boot options for the usb installation medium shall be "-v npci=0x2000 nv_disable=1 kext-dev-mode=1".

The CPU I have installed is the Intel I7-6800K / Broadwell-E / x99-chipset / LGA2011-v3 socket / 6-core processor. As I write above also the I7-6850K (6-core), I7-6900K (8-core) and I7-6950X (10-core) CPUs can be installed. It is simply a question of the available budget (430-1600$).
 
First I want to say Thanks.
Then, if you could elaborate better the singular prob or step to get everithing working with the setup and installation, would be better in a Guide section.

:clap:

p.s. watching the screenshot about your system report I don't understand what type of cpu you have installed, I7, which type or xeon..which type?

Following your suggestion, I also added now a short guide concerning MacOS Sierra USB installation onto a likely virigin system.

:thumbup:Good luck!:thumbup:
 
Last edited:
2.) Complete the "RT Variables" and "SMBIOS" entries in your config.plist using the Clover Configurator.

Did you inject RAM in SMBIOS ?
 
Thanks :) I am "Upgrading" from 10.11.6 as it is not as solid as it seemed... Unresponsive Finder, unreliable audio (audio_cloverALC-110_v1.0r10.command used) and a few more issues :)
 
...

The CPU I have installed is the Intel I7-6800K / Broadwell-E / x99-chipset / LGA2011-v3 socket / 6-core processor. As I write above also the I7-6850K (6-core), I7-6900K (8-core) and I7-6950X (10-core) CPUs can be installed. It is simply a question of the available budget (430-1600$).
Right.
I was thinking about a xeon E5-2630 v4 es 2.1 ghz, could be it good, ain'it?

Following your suggestion, I also added now a short guide concerning MacOS Sierra USB installation onto a likel virigin system.

:thumbup:Good luck!:thumbup:
Wow. You are so fast to complete the request. Thumbs Up! :thumbup:
 
Status
Not open for further replies.
Back
Top