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.
Yes my build is absolutely stable and reliable. For several months I did not witness any issue. The build is just working and working absolutely flawless. The only week point at present is the still imperfect sleep/wake functionality. The rest works like a charm. As sleep/wake is not crucial for me, I would repeat the same build without any doubts also at present. The only future improvement one could consider though would be the implementation of i9 processors, announced for August 2017 ( up to 12 cores).
Thanks! I just read about the new extreme processors. I think the 6950X will be a lot cheaper then, so that will probably be my goal. My guess is that Intel will charge 2k for the new flagship.
 
Yes my build is absolutely stable and reliable. For several months I did not witness any issue. The build is just working and working absolutely flawless. The only weak point at present is the still imperfect sleep/wake functionality. The rest works like a charm. As sleep/wake is not crucial for me, I would repeat the same build without any doubts also at present. The only future improvement one could consider though would be the implementation of i9 processors, announced for August 2017 ( up to 12 cores).

Hey man, I have another question. I just read the Puget Systems article about the best CPU for After Effects. According to their testing, for the rendering of previews the xtreme processors are slower than the 6700k and 7700k. Are you a graphic user? Do you use Premiere and/or After Effects?
 
Hey man, I have another question. I just read the Puget Systems article about the best CPU for After Effects. According to their testing, for the rendering of previews the xtreme processors are slower than the 6700k and 7700k. Are you a graphic user? Do you use Premiere and/or After Effects?

I use my system for number crunching... I neither use Premiere nor After Effects... Up to my knowledge in the i7 series there is only one extreme processor, the i7-6950X! What about the 6800K, 6850K and 6900K?
 
First of all thanks for the effort on making this detailed guide. Can confirm everything working on a MSI x99A Gaming 7 - i7 5820K OC 4.400Mhz - Nvidia Titan X Maxwell. Just had to use the original OsxAptioFixDrv-64.efi + Test2-2016.efi as nickwoodhams specify on his site. Other than changing your ethernet kext (my mobo has a Killer E2205 Gigabit LAN) followed your guide step by step and got it working in minutes. Thanks again ;)
Update: Was using the VodooHDA for audio, sound volume was not as loud as it should be, so switched to your AppleALC - Optional Audio Configuration I. Was too lazy to create my own ssdt-hdmi, so gave yours a try and worked like a charm. Analog audio and Hdmi audio from both of my displays working.
 
Last edited:
  • Like
Reactions: kgp
UPDATE: Well, propositions exist to excite and the time it took me to write this post, the funny installer did get to boot using a USB 3.0 stick, using a USB 2.0 port (appropriate BIOS setting), using the GTX 1070 and the DP out farthest from the CPU and then waited at least 15 minutes for the installer to boot.

@kgp maybe you could put a time frame (for the installer to boot thus) into your original post, thus others might not get as anxious as me, as not everyone might read through 1290 posts to find an answer.

Und wer der Apparat wirklich so funzt, wie Du es "versprochen" hast, dann hast Du mein virtuelles Danke für mehrere Jahre (was ist nich für die Ewigkeit) und ich könnte einen Far Breton backen. Für mich natürlich. ;)

Good night.


ORIGINAL:

Hi,

I wanted to give it a go with the help of this guide and got the Asus X99-A II board, the i7-6800K CPU and 32 GB of Trident DDR4 RAM, after I got a GTX 1070 for upgrading my older i7-4790K based Hack, though its board died and the replacement had bent pins and so on.

Anyway, I tried all the settings to a T and never got into the installer, I once got to the "circle with a strike through" sign, but that was that.

I tried two different USB 3.0 USB sticks (Kingston and Samsung, 32 and 64 GB) using the USB 3.0 port below the Ethernet port (sorry, cannot check which post mentioned that USB port) and the appropriate settings in the BIOS. It often stops at the "Service exited with abnormal code: 1" message. After the message appears, I normally give it another 5 to 10 minutes, maybe something happens.
I also tried the USB port nearest to that PS/2 port, with the other appropriate BIOS setting.

The SSD is an empty, but preformatted Samsung 850, with a name like "X on the go". Should I rename it to something simple?

Anyway, since the X99-A II does not have a video out due to obvious circumstances, I always use the GTX 1070 (Gigabyte) and one of the three DP ports (also tried the HDMI port, does not seem to matter which).
I also read using the outermost DP out is important. Outermost from what? The CPU?

My questions:

Do I use a Pascal or Maxwell GPU to install macOS?
Do I have to use a USB 2.0 stick? If so, does it matter which USB port (3.0 or 2.0 or ...) I use with the appropriate and stated BIOS settings?
How much should I wait after having pressed the INSTALL icon in the Clover Boot Menu to let the installer appear?


PS: I will give it another go tomorrow evening, as I have to go to work in 9 hours and don't want to spend that much time with it before going to bed.

PPS: If it helps, and as I know the standard answer of having to follow the instructions in post one to the T, I can post my exact steps next time, maybe the error will become obvious to me that way. Or not.


PPS: The board came with BIOS 1401, I upgraded to the newest one, but after reading about some people having problems with that BIOS version in general (not Hack related as far as I remember), I downgraded to 1401 again.

As I still have a month left before the Hack has to work, I am not in a hurry. Windows runs quite well on it.
 
Last edited:
UPDATE: Well, propositions exist to excite and the time it took me to write this post, the funny installer did get to boot using a USB 3.0 stick, using a USB 2.0 port (appropriate BIOS setting), using the GTX 1070 and the DP out farthest from the CPU and then waited at least 15 minutes for the installer to boot.

@kgp maybe you could put a time frame (for the installer to boot thus) into your original post, thus others might not get as anxious as me, as not everyone might read through 1290 posts to find an answer.

Und wer der Apparat wirklich so funzt, wie Du es "versprochen" hast, dann hast Du mein virtuelles Danke für mehrere Jahre (was ist nich für die Ewigkeit) und ich könnte einen Far Breton backen. Für mich natürlich. ;)

Good night.


ORIGINAL:

Hi,

I wanted to give it a go with the help of this guide and got the Asus X99-A II board, the i7-6800K CPU and 32 GB of Trident DDR4 RAM, after I got a GTX 1070 for upgrading my older i7-4790K based Hack, though its board died and the replacement had bent pins and so on.

Anyway, I tried all the settings to a T and never got into the installer, I once got to the "circle with a strike through" sign, but that was that.

I tried two different USB 3.0 USB sticks (Kingston and Samsung, 32 and 64 GB) using the USB 3.0 port below the Ethernet port (sorry, cannot check which post mentioned that USB port) and the appropriate settings in the BIOS. It often stops at the "Service exited with abnormal code: 1" message. After the message appears, I normally give it another 5 to 10 minutes, maybe something happens.
I also tried the USB port nearest to that PS/2 port, with the other appropriate BIOS setting.

The SSD is an empty, but preformatted Samsung 850, with a name like "X on the go". Should I rename it to something simple?

Anyway, since the X99-A II does not have a video out due to obvious circumstances, I always use the GTX 1070 (Gigabyte) and one of the three DP ports (also tried the HDMI port, does not seem to matter which).
I also read using the outermost DP out is important. Outermost from what? The CPU?

My questions:

Do I use a Pascal or Maxwell GPU to install macOS?
Do I have to use a USB 2.0 stick? If so, does it matter which USB port (3.0 or 2.0 or ...) I use with the appropriate and stated BIOS settings?
How much should I wait after having pressed the INSTALL icon in the Clover Boot Menu to let the installer appear?


PS: I will give it another go tomorrow evening, as I have to go to work in 9 hours and don't want to spend that much time with it before going to bed.

PPS: If it helps, and as I know the standard answer of having to follow the instructions in post one to the T, I can post my exact steps next time, maybe the error will become obvious to me that way. Or not.


PPS: The board came with BIOS 1401, I upgraded to the newest one, but after reading about some people having problems with that BIOS version in general (not Hack related as far as I remember), I downgraded to 1401 again.

As I still have a month left before the Hack has to work, I am not in a hurry. Windows runs quite well on it.


Glad that you finally managed to install Sierra on your hack. However, I still believe that your problems might have been related to your USB BIOS settings. As I state in my guide, one should use xHCI Mode: "Enabled" or "Smart Auto", depending on whether USB3 or USB2 is used for MacOs Sierra installation. One usually uses one of the front USB3.0 ports for installation. I guess to wait at least 15 minutes for the installer to boot is definitely not the normal case. Anyway, it seems that now you managed pretty well and finally Sierra is running on your system. How many Far Breton did you make during the installation process? I hope you will not be that mean to stay with all of them? Why don't you send one to Germany? :lol::lol::lol:
 
Hey man, I have another question. I just read the Puget Systems article about the best CPU for After Effects. According to their testing, for the rendering of previews the xtreme processors are slower than the 6700k and 7700k. Are you a graphic user? Do you use Premiere and/or After Effects?
I will field this one. This is what I do all day everyday. What they are talking about in their article relates to after effects not being particularly good at multithreading. Therefore the Quad core 6700K will preform faster at stock speeds than the 6850X. now if you overclock then you can also get better performance. Most of us are running a 4.2GHZ overclock which is the top end stability on any processor. If you run this on any of the processors, they will all get similar results.

Kevin
 
  • Like
Reactions: kgp
View attachment 255556

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.

View attachment 249253


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). Compliance with my guide also has been reported for the Asus Rampage V Extreme (thanks to @morganb), 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 or Ivy-Bridge-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).​


View attachment 249022


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 not be deemed necessary. I will indicate later on, which steps of my guide are not required if the MSR 0xE2 register has been already unlocked by the BIOS patching procedure.

BIOS patching procedure (optional, not required):

1.) Download and unzip CodeRush's UEFI patch, attached towards the bottom of this guide.
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 folder.
4.) Open a terminal; type "cd ", drag the "UEFIPatch"-folder into the Terminal window; press "Enter"
5.) 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 "UEFI-Patch"-procedure.​
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:

View attachment 252635
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.

View attachment 228923

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) Mac OS 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 "Kernel and Kext Patches" you use FakeCPUID 0x040674 (Broadwell-E). In case you try my guide with a Haswell-E CPU, use FakeCPUID 0x0306F0.

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, @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

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.

View attachment 229776

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, @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.

View attachment 246528

a.) Verify that in "Kernel and Kext Patches" you use FakeCPUID 0x040674 (Broadwell-E). In case you try my guide with a
Haswell-E CPU, use FakeCPUID 0x0306F0.​
b.) Implement the correct "RT Variables" and "SMBIOS" entries by following "An iDiots's Guide To iMessage" by P1LGRIM.
It works perfectly. Note, that the BooterConfig (0x28) and CsrActiveConfig (0x67) are current default entries. In fact, you should change the Controls System Integrity Protection (SIP) (CSRActiveConfig) to "0x3" (partially disabled) instead of "0x67" (disabled completely) to allow the load of unsigned kexts and software from the AppStore and third party providers.​
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]

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:
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:
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) the ACPI DSDT Patches in the "ACPI" section of the clover configurator listed below:

Code:
Comment:                   Find* [Hex]       Replace* [Hex]
change _OSI to XOSI        5f4f5349          584f5349
change EHC1 to EH01        45484331          45483031
change EHC2 to EH02        45484332          45483032
change XHCI to XHC         58484349          5848435f
change XHC1 to XHC         58484331          5848435f
d.) the following USB settings in the "Device" section of the Clover Configurator: "Inject", "Add ClockID", "FixOwnership"
- checked; "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

Download the source distribution fo @RehabMan 's "USBInjectAll.kext" from HERE. The source distribution also contains a series of other goodies to be used later on. The built "USBInjectAll.kext" is available HERE.

1.) Choose again the following BIOS settings:

VT-d disabled
XHCI Mode Smart Auto
XHCI Hand-Off Enabled
EHCI Hand-Off Enabled

2.) Open your clover configurator, mount your EFI partition and open your config.plist.

a.) Add the following ACPI DSDT Patches listed below in the ACPI Section of the Clover Configurator:

Code:
Comment:                   Find* [Hex]       Replace* [Hex]
change _OSI to XOSI        5f4f5349          584f5349
change EHC1 to EH01        45484331          45483031
change EHC2 to EH02        45484332          45483032
change XHCI to XHC         58484349          5848435f
change XHC1 to XHC         58484331          5848435f

b.) In the "Device" section under "USB" untick "Inject" and tick "Add ClockID", "FixOwnership" and "HighCurrent".
c.) To increase the USB-Port-limitation under MacOS Sierra, add the following entry under KextsToPatch in the "Kernel and
Kext Patches" Section of the clover configurator:​

Code:
Name:                  Find:                   Replace:                Comment:                                               MatchOS:
AppleUSBXHCIPCI        83BD74FF FFFF10         83BD74FF FFFF1b        change 15 port limit to 26 in XHCI kext (100 series)   10.12

or

Code:
Name:                  Find:                   Replace:                Comment:                                               MatchOS:
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.​

d.) Save your config.plist

3.) Copy the "USBInjectAll.kext" to the /EFI/CLOVER/kexts/.10.12/ directory.

4.) Also copy the "XHCI-x99-injector.kext" from the source distribution to the /EFI/CLOVER/kexts/.10.12/ directory.

5.) Open the file "SSDT-XOSI.dsl" contained in the source distribution with MaciASL, goto preferences / iASL and change the
compiler options to ACPI 6.1. Close the preferences and press compile. Save the new file as SSDT-XOSI.aml, (ACPI Machine Language Binary), and copy the SSDT-XOSI.aml to /EFI/Clover/ACPI/patched/.​

6.) Download the latest version of @RehabMan 's OS-X-Fake-PCI-ID distribution. Unzip the file, go to
the sub-folder "Release" and copy "FakePCIID.kext" and "FakePCIID_XHCIMux.kext" to your /EFI/Clover/kexts/10.12/ directory and reboot.​

The advantage of this method is, that one finally is also able to create a custom SSDT for "USBInjectAll.kext", to exclude those USB ports not addressed within the actual configuration. Following Apple's system report, USB2.0 Bus, USB3.0 Bus and USB 3.1 Bus are again implemented correctly. USB2.0 devices are assigned to the USB 2.0 Bus, USB3.0 devices to the USB3.0 BUS and USB3.1 devices to the 3.1 USB Bus.

Apparent Disadvantage: USB2.0 devices only work in USB2.0 ports and USB3.0 devices only in USB3.0 ports. There is no interchangeability like in case of the Basic USB Configuration. I therefore decided to stay at present with the Basic USB Configuration described above.

For further details see the literature references below:

Literature:
https://github.com/RehabMan/OS-X-USB-Inject-All
https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
https://github.com/RehabMan/OS-X-Fake-PCI-ID


Additional Requirements:

1.) Download and apply the AGDPfix, which is also attached to my guide.

View attachment 228921

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 is only useful if you are using 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.​

View attachment 228922

----------------------------------------------------------------------------------------------------------------------------------------------
: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:
View attachment 243204
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
git clone https://github.com/RehabMan/patch-nvme.git patch-nvme.git
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.5)
-----------------------
Terminal Command:
-----------------------
Code:
./patch_nvme.sh --spoof 10_12_5
5.) Copy the created "HackrNVMeFamily-10_12_5.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)
{
    External (_SB.PCI0.BR1B.H000, DeviceObj)    // (from opcode)
    Method (_SB.PCI0.BR1B.H000._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If (LNot (Arg2))
        {
            Return (Buffer (One)
            {
                 0x03
            })
        }

        Return (Package (0x04)
        {
            "class-code",
            Buffer (0x04)
            {
                 0xFF, 0x08, 0x01, 0x00
            },

            "built-in",
            Buffer (One)
            {
                 0x00
            }
        })
    }
}
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
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.BR1B.H000, DeviceObj)
    Method(_SB.PCI0.BR1B.H000._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
    External(_SB.PCI0.BR2A.H000, DeviceObj)
    Method(_SB.PCI0.BR2A.H000._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
}
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)
{
    External (_SB_.PCI0.BR2D.H000, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.BR3A.H000, DeviceObj)    // (from opcode)

    Method (_SB.PCI0.BR2D.H000._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If (LNot (Arg2))
        {
            Return (Buffer (One)
            {
                 0x03
            })
        }

        Return (Package (0x04)
        {
            "class-code",
            Buffer (0x04)
            {
                 0xFF, 0x08, 0x01, 0x00
            },

            "built-in",
            Buffer (One)
            {
                 0x00
            }
        })
    }

    Method (_SB.PCI0.BR3A.H000._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If (LNot (Arg2))
        {
            Return (Buffer (One)
            {
                 0x03
            })
        }

        Return (Package (0x04)
        {
            "class-code",
            Buffer (0x04)
            {
                 0xFF, 0x08, 0x01, 0x00
            },

            "built-in",
            Buffer (One)
            {
                 0x00
            }
        })
    }
}
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!
View attachment 238576

View attachment 238577
----------------------------------------------------------------------------------------------------------------------------------------------
: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 i7-6950X but also for all other Broadwell-E or even Haswell-E and Ivy-Bridge-E processors in a much more general context. XCPM is certainly an important step forward with respect to advanced CPU powermanagment. I am eagerly looking forward to fruitful discussions, extensive feedback and further constructive input not only from experts.
1.) Verify that your System ID is MacPro 6.1

2.) Launch your CloverConfigurator and edit your config.plist

a) Verify that in the "Acpi" Section "Cpu0lst" and "CpuPm" appear under "Drop Tables".
b) Enable in the "Boot" Section also "-xcpm" (very likely obsolete)

c) "Kernel and Kext Patches" Section: Verify and add if necessary the "KextsToPatch" entry:

Code:
Name:               Find:                 Replace:                    Comment:                        MatchOS:
IOPCIFamily         4881fb00 000040       4881fb00 000080             X99 Patch by braumbear          10.12

View attachment 243755

This "KextsToPatch" entry is crucial for booting X99 Systems.
d) "Kernel and Kext Patches" Section: Verify and add if necessary the following "KernelToPatch" entries:

Code:
Find:                                                             Replace:                                                          Comment:                                  MatchOS:
0fb6c483 c0e983f8 47                                              0fb6c483 c0e183f8 47                                              xcpm_cpuid_set_info © Pike R. Alpha       10.12
554889e5 41574156 41554154 53504189d64189f7 4889fb45 85ff0f84     c39089e5 41574156 41554154 53504189d64189f7 4889fb45 85ff0f84     reboot fix 10.12db8 © Pike R. Alpha       10.12
20b9e200 00000f30                                                 20b9e200 00009090                                                 xcpm_idle patch by Pike R. Alpha          10.12
be070000 0031d2e8 94fcffff                                        be070000 0031d290 90909090                                        xcpm_pkg_scope_msr © Pike R. Alpha        10.12
be020000 0031d2e8 6cfcffff                                        be020000 0031d290 90909090                                        xcpm_core_scope_msrs © Pike R. Alpha      10.12

View attachment 243872

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.

In my case, the "KernelToPatch entry

Code:
Find:             Replace:          Comment:                                  MatchOS:
83c3c483 fb22     83c3bc83 fb22     xcpm_bootstrap Sierra © Pike R. Alpha     10.12

breaks "xcpm". I therefore disable this "KernelToPatch" entry for now.

Note that some of the "KernelToPatch" entries are CPU-architecture specific. The above "KernelToPatch" entries are for the Broadwell-E architecture. For other CPU-architectures (Haswell-E, Ivy-Bridge-E) see the respective instructions of Piker-Alpha. Below, for the sake of completeness I provide the deviating "KernelToPatch" entries for Haswell-E and Ivy-Bridge CPU architectures:

Haswell-E:
Code:
Find:                           Replace:                        Comment:                                     MatchOS:
0fb6c483 c0e983f8 47            0fb6c483 c0e683f8 47            xcpm_cpuid_set_info © Pike R. Alpha          10.12
83c3c483 fb22                   83c3c183 fb22                   xcpm_bootstrap Sierra © Pike R. Alpha        10.12

Ivy-Bridge-E:
Code:
Find:                           Replace:                        Comment:                                     MatchOS:
0fb6c483 c0e983f8 47            0fb6c483 c0e583f8 47            xcpm_cpuid_set_info © Pike R. Alpha          10.12
83c3c483 fb22                   83c3c283 fb22                   xcpm_bootstrap Sierra © Pike R. Alpha        10.12
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
             v6.6  Copyright (c) 2013 by † Jeroen
             v21.5 Copyright (c) 2013-2017 by Pike R. Alpha
-----------------------------------------------------------
Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <

System information: Mac OS X 10.12.4 (16E195)
Brandstring: "Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz"

Override value: (-acpi) label for ACPI Processors, now using 'CPU0'!
Override value: (-turbo) maximum (turbo) frequency, now using: 4000 MHz!

Version: models.cfg v170 / Broadwell.cfg v151

Generating ssdt.dsl for a 'MacPro6,1' with board-id [Mac-F60DEB81FF30ACF6]
Broadwell Core i7-6950X processor [0x406F1] setup [0x0a02]
With a maximum TDP of 140 Watt, as specified by Intel
Number logical CPU's: 20 (Core Frequency: 3000 MHz)
Number of Turbo States: 10 (3100-4000 MHz)
Number of P-States: 29 (1200-4000 MHz)
Injected C-States for CP00 (C1,C3,C6)
Injected C-States for CP01 (C1,C3,C6)

Compiling: ssdt_pr.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20140926-64 [Nov  6 2014]
Copyright (c) 2000 - 2014 Intel Corporation

ASL Input:     /Users/kgp/Library/ssdtPRGen/ssdt.dsl - 466 lines, 13470 bytes, 145 keywords
AML Output:    /Users/kgp/Library/ssdtPRGen/ssdt.aml - 3694 bytes, 64 named objects, 81 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

ssdtPRGen.sh generates a SDST.aml file in ~/Library/ssdtPRGen/
7.) Copy the SDST.aml from ~/Library/ssdtPRGen/ to /EFI/CLOVER/ACPI/patched/

8.) Reboot

9.) a.) Verify that in the ioRegistryExplorer you have now under CP00@0 the following entry:

Code:
Property:         Type:         Value:
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:
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>
124    1 0xffffff7f8279c000 0x7000     0x7000     com.apple.driver.X86PlatformShim (1.0.0) B1D28523-ABFF-37CB-8AE9-5EFA58B86DBB <98 97 96 7 4 3>
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.
-----------------------------------------------------------------
Bugs > https://github.com/Piker-Alpha/freqVectorsEdit.sh/issues <

Available resource files (plists) with FrequencyVectors:

[  1 ] Mac-031B6874CF7F642A.plist (iMac14,1)
[  2 ] Mac-06F11F11946D27C5.plist (MacBookPro11,5)
[  3 ] Mac-06F11FD93F0323C5.plist (MacBookPro11,4)
[  4 ] Mac-189A3D4F975D5FFC.plist (MacBookPro11,1)
[  5 ] Mac-27ADBB7B4CEE8E61.plist (iMac14,2)
[  6 ] Mac-2BD1B31983FE1663.plist (MacBookPro11,3)
[  7 ] Mac-35C1E88140C3E6CF.plist (MacBookAir6,1)
[  8 ] Mac-35C5E08120C7EEAF.plist (Macmini7,1 @ 2700)
[  9 ] Mac-3CBD00234E554E41.plist (MacBookPro11,2)
[ 10 ] Mac-42FD25EABCABB274.plist (iMac15,1)
[ 11 ] Mac-473D31EABEB93F9B.plist (MacBookPro13,1 @ 3100 HWP/3400 HWP)
[ 12 ] Mac-4BFBC784B845591E.plist (Unknown Model)
[ 13 ] Mac-50619A408DB004DA.plist (Unknown Model)
[ 14 ] Mac-65CE76090165799A.plist (iMac17,1)
[ 15 ] Mac-66E35819EE2D0D05.plist (MacBookPro13,2 @ 3300 HWP/3500 HWP/3600 HWP)
[ 16 ] Mac-77EB7D7DAF985301.plist (iMac14,3)
[ 17 ] Mac-7DF21CB3ED6977E5.plist (MacBookAir6,2)
[ 18 ] Mac-81E3E92DD6088272.plist (iMac14,4)
[ 19 ] Mac-937CB26E2E02BB01.plist (MacBookAir7,2 @ 2700/3200)
[ 20 ] Mac-9AE82516C7C6B903.plist (MacBook9,1 @ 2200 HWP/2700 HWP/3100 HWP)
[ 21 ] Mac-9F18E312C5C2BF0B.plist (MacBookAir7,1 @ 2700/3200)
[ 22 ] Mac-A369DDC4E67F1C45.plist (iMac16,1)
[ 23 ] Mac-A5C67F76ED83108C.plist (MacBookPro13,3 @ 3500 HWP/3600 HWP/3800 HWP)
[ 24 ] Mac-B809C3757DA9BB8D.plist (iMac17,1)
[ 25 ] Mac-BE0E8AC46FE800CC.plist (MacBook8,1 @ 2400/2600/2900)
[ 26 ] Mac-DB15BD556843C820.plist (iMac17,1)
[ 27 ] Mac-E43C1C25D4880AD6.plist (MacBookPro12,1)
[ 28 ] Mac-F305150B0C7DEEEF.plist (Unknown Model @ 2400/2600/2900)
[ 29 ] Mac-F60DEB81FF30ACF6.plist (MacPro6,1)
[ 30 ] Mac-FA842E06C61E91C5.plist (iMac15,1)
[ 31 ] Mac-FFE5EF870D7BA81A.plist (iMac16,2)

Please choose the desired plist for your hardware (Exit/1-31) ? 26

Triggering a kernelcache refresh ...

Do you want to open Mac-F60DEB81FF30ACF6.plist (y/n)? n
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
xcodebuild
cd build/Release
chmod -R 755 AppleIntelInfo.kext
sudo chown -R root:wheel AppleIntelInfo.kext

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:
--------------------------------------------------------------------------------------------
AppleIntelInfo.kext v2.5 Copyright © 2012-2017 Pike R. Alpha. All rights reserved.

Settings:
------------------------------------------
logMSRs..................................: 1
logIGPU..................................: 0
logCStates...............................: 1
logIPGStyle..............................: 1
InitialTSC...............................: 0xd407d28600d (485 MHz)
MWAIT C-States...........................: 8480

Processor Brandstring....................: Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz

Processor Signature..................... : 0x406F1
------------------------------------------
 - Family............................... : 6
 - Stepping............................. : 1
 - Model................................ : 0x4F (79)

Model Specific Registers (MSRs)
------------------------------------------

MSR_CORE_THREAD_COUNT............(0x35)  : 0x0
------------------------------------------
 - Core Count........................... : 10
 - Thread Count......................... : 20

MSR_PLATFORM_INFO................(0xCE)  : 0x20080C3BF3811E00
------------------------------------------
 - Maximum Non-Turbo Ratio.............. : 0x1E (3000 MHz)
 - Ratio Limit for Turbo Mode........... : 1 (programmable)
 - TDP Limit for Turbo Mode............. : 1 (programmable)
 - Low Power Mode Support............... : 1 (LPM supported)
 - Number of ConfigTDP Levels........... : 1 (additional TDP level(s) available)
 - Maximum Efficiency Ratio............. : 12
 - Minimum Operating Ratio.............. : 8

MSR_PMG_CST_CONFIG_CONTROL.......(0xE2)  : 0x8400
------------------------------------------
 - I/O MWAIT Redirection Enable......... : 1 (enabled, IO read of MSR(0xE4) mapped to MWAIT)
 - CFG Lock............................. : 1 (MSR locked until next reset)
 - C3 State Auto Demotion............... : 0 (disabled/unsupported)
 - C1 State Auto Demotion............... : 0 (disabled/unsupported)
 - C3 State Undemotion.................. : 0 (disabled/unsupported)
 - C1 State Undemotion.................. : 0 (disabled/unsupported)
 - Package C-State Auto Demotion........ : 0 (disabled/unsupported)
 - Package C-State Undemotion........... : 0 (disabled/unsupported)

MSR_PMG_IO_CAPTURE_BASE..........(0xE4)  : 0x10414
------------------------------------------
 - LVL_2 Base Address................... : 0x414
 - C-state Range........................ : 1 (C6 is the max C-State to include)

IA32_MPERF.......................(0xE7)  : 0xB039222E
IA32_APERF.......................(0xE8)  : 0xB5818B74
MSR_0x150........................(0x150) : 0x92323

MSR_FLEX_RATIO...................(0x194) : 0xE0000
------------------------------------------

MSR_IA32_PERF_STATUS.............(0x198) : 0x220200002200
------------------------------------------
 - Current Performance State Value...... : 0x2200 (3400 MHz)

MSR_IA32_PERF_CONTROL............(0x199) : 0x2800
------------------------------------------
 - Target performance State Value....... : 0x2800 (4000 MHz)
 - Intel Dynamic Acceleration........... : 0 (IDA engaged)

IA32_CLOCK_MODULATION............(0x19A) : 0x0

IA32_THERM_INTERRUPT.............(0x19B) : 0x0

IA32_THERM_STATUS................(0x19C) : 0x88470000
------------------------------------------
 - Thermal Status....................... : 0
 - Thermal Log.......................... : 0
 - PROCHOT # or FORCEPR# event.......... : 0
 - PROCHOT # or FORCEPR# log............ : 0
 - Critical Temperature Status.......... : 0
 - Critical Temperature log............. : 0
 - Thermal Threshold #1 Status.......... : 0
 - Thermal Threshold #1 log............. : 0
 - Thermal Threshold #2 Status.......... : 0
 - Thermal Threshold #2 log............. : 0
 - Power Limitation Status.............. : 0
 - Power Limitation log................. : 0
 - Current Limit Status................. : 0
 - Current Limit log.................... : 0
 - Cross Domain Limit Status............ : 0
 - Cross Domain Limit log............... : 0
 - Digital Readout...................... : 71
 - Resolution in Degrees Celsius........ : 1
 - Reading Valid........................ : 1 (valid)

MSR_THERM2_CTL...................(0x19D) : 0x0

IA32_MISC_ENABLES................(0x1A0) : 0x840089
------------------------------------------
 - Fast-Strings......................... : 1 (enabled)
 - FOPCODE compatibility mode Enable.... : 0
 - Automatic Thermal Control Circuit.... : 1 (enabled)
 - Split-lock Disable................... : 0
 - Performance Monitoring............... : 1 (available)
 - Bus Lock On Cache Line Splits Disable : 0
 - Hardware prefetch Disable............ : 0
 - Processor Event Based Sampling....... : 0 (PEBS supported)
 - GV1/2 legacy Enable.................. : 0
 - Enhanced Intel SpeedStep Technology.. : 0 (disabled)
 - MONITOR FSM.......................... : 1 (MONITOR/MWAIT supported)
 - Adjacent sector prefetch Disable..... : 0
 - CFG Lock............................. : 0 (MSR not locked)
 - xTPR Message Disable................. : 1 (disabled)

MSR_TEMPERATURE_TARGET...........(0x1A2) : 0x640A00
------------------------------------------
 - Turbo Attenuation Units.............. : 0
 - Temperature Target................... : 100
 - TCC Activation Offset................ : 0

MSR_MISC_PWR_MGMT................(0x1AA) : 0x402000
------------------------------------------
 - EIST Hardware Coordination........... : 0 (hardware coordination enabled)
 - Energy/Performance Bias support...... : 1
 - Energy/Performance Bias.............. : 0 (disabled/MSR not visible to software)
 - Thermal Interrupt Coordination Enable : 1 (thermal interrupt routed to all cores)

MSR_TURBO_RATIO_LIMIT............(0x1AD) : 0x2222222222222828
------------------------------------------
 - Maximum Ratio Limit for C01.......... : 28 (4000 MHz)
 - Maximum Ratio Limit for C02.......... : 28 (4000 MHz)
 - Maximum Ratio Limit for C03.......... : 22 (3400 MHz)
 - Maximum Ratio Limit for C04.......... : 22 (3400 MHz)
 - Maximum Ratio Limit for C05.......... : 22 (3400 MHz)
 - Maximum Ratio Limit for C06.......... : 22 (3400 MHz)
 - Maximum Ratio Limit for C07.......... : 22 (3400 MHz)
 - Maximum Ratio Limit for C08.......... : 22 (3400 MHz)

MSR_TURBO_RATIO_LIMIT1...........(0x1AE) : 0x2222222222222222
------------------------------------------
 - Maximum Ratio Limit for C09.......... : 22 (3400 MHz)
 - Maximum Ratio Limit for C10.......... : 22 (3400 MHz)

IA32_ENERGY_PERF_BIAS............(0x1B0) : 0x0

MSR_POWER_CTL....................(0x1FC) : 0x2904005B
------------------------------------------
 - Bi-Directional Processor Hot..........: 1 (enabled)
 - C1E Enable............................: 1 (enabled)

MSR_RAPL_POWER_UNIT..............(0x606) : 0xA0E03
------------------------------------------
 - Power Units.......................... : 3 (1/8 Watt)
 - Energy Status Units.................. : 14 (61 micro-Joules)
 - Time Units .......................... : 10 (976.6 micro-Seconds)

MSR_PKG_POWER_LIMIT..............(0x610) : 0x7FFF80015FFF8
------------------------------------------
 - Package Power Limit #1............... : 4095 Watt
 - Enable Power Limit #1................ : 1 (enabled)
 - Package Clamping Limitation #1....... : 1 (allow going below OS-requested P/T state during Time Window for Power Limit #1)
 - Time Window for Power Limit #1....... : 10 (2560 milli-Seconds)
 - Package Power Limit #2............... : 4095 Watt
 - Enable Power Limit #2................ : 1 (enabled)
 - Package Clamping Limitation #2....... : 1 (allow going below OS-requested P/T state setting Time Window for Power Limit #2)
 - Time Window for Power Limit #2....... : 3 (20 milli-Seconds)
 - Lock................................. : 0 (MSR not locked)

MSR_PKG_ENERGY_STATUS............(0x611) : 0x26052CB
------------------------------------------
 - Total Energy Consumed................ : 2433 Joules (Watt = Joules / seconds)

MSR_PKGC3_IRTL...................(0x60a) : 0x0
MSR_PKGC6_IRTL...................(0x60b) : 0x0
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x0
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x0
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x0
MSR_PKG_C6_RESIDENCY.............(0x3f9) : 0x0

IA32_TSC_DEADLINE................(0x6E0) : 0xD4080923AA7

CPU Ratio Info:
------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......: 12 (1200 MHz)
Maximum non-Turbo Ratio/Frequency........: 30 (3000 MHz)
Maximum Turbo Ratio/Frequency............: 40 (4000 MHz)
P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ (12) 28 34 ]
CPU C6-Cores [ 6 7 8 9 11 13 ]
CPU P-States [ (12) 25 28 34 ]
CPU C6-Cores [ 0 2 4 6 7 8 9 10 11 13 14 16 18 ]
CPU P-States [ (12) 25 26 28 34 ]
CPU C6-Cores [ 0 1 2 4 6 7 8 9 10 11 12 13 14 16 18 ]
CPU P-States [ 12 25 26 28 31 (34) ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ]
CPU P-States [ (12) 25 26 28 30 31 34 ]
CPU P-States [ 12 25 26 27 28 30 31 34 (35) ]
CPU P-States [ 12 25 26 27 28 29 30 31 (34) 35 ]
CPU P-States [ (12) 25 26 27 28 29 30 31 32 34 35 ]
States [ 12 24 25 26 29 30 31 33 (34) 35 ]
CPU P-States [ (12) 24 25 26 29 30 31 32 33 34 35 ]
CPU P-States [ (12) 24 25 26 28 29 30 31 32 33 34 35 ]
CPU P-States [ (12) 22 24 25 26 28 29 30 31 32 33 34 35 ]
CPU P-States [ 12 21 22 24 25 26 28 29 30 31 32 33 34 (35) ]
CPU P-States [ (12) 21 22 23 24 25 26 28 29 30 31 32 33 34 35 ]
CPU P-States [ (12) 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ]
CPU P-States [ (12) 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ]
CPU P-States [ 12 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 (40) ]
CPU P-States [ (12) 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 40 ]
--------------------------------------------------------------------------------------------

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
- BLCK Frequency: 100 Mhz
- CPU Core Ratio: Sync All Cores
- Core Ratio: 42

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.

View attachment 252349
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.​


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. There is no support for older CPU-architectures.

3.) Reboot

4.) Apply the following BIOS settings:

Advanced\CPU Configuration\CPU Power Management Configuration\​
  • Enhanced Intel SpeedStep Technology (EIST): Enabled
  • 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
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, which I detail below. However, all attempts to achieve a stable long-term Sleep/Wake configuration with EIST functionality (PMDrvr.kext) apparently failed so far. Long-term tests did not reveal the desired result. Unfortunately, it is still up to the user's decision to go for EIST or Sleep/Wake functionality, the combination of both appears more tricky and difficult than expected. Let me thank once more Matthew82 from InsanelyMac (synonym @borysbass on Tonymacx86) for all his valuable inputs and contributions to the yet unsuccessful attempt to make EIST (PMDrvr.kext) and Sleep/Wake work together. Further tests are ongoing and future improvements will be noticed and incorporated immediately below. Please note in any case, that this section of my guide is still of somewhat experimental nature and it's content might underlay further changes and updates. When talking about Sleep, I exclusively refer to forced sleep (clicking first on the "Apple-Symbol" in the menu bar and then on "sleep"). I did not experiment with "auto-sleep", so you can tick "Prevent computer from sleeping automatically when display is off" in any case in the Energy Saver Settings of the System Preferences. You also can tick "Put hard disks to sleep when possible" but you should untick "Wake for network access" and "Enable Power Nap". I do not consider Sleep/Wake to be crucial and deemed necessary nowadays, moreover as booting the system is a question of a few seconds, if you shut down your computer on a regular base.

How to achieve Sleep/Wake Functionality without EIST support:


1.) Remove PMDrvr.kext from /EFI/clover/kexts/10.12/ and disable EIST in your mobo BIOS.

2.) Download and unzip the VoodooTSCSync.kext.zip attached towards the end of my guide. Note, that the attached file
considers a 10-core CPU configuration. The adapt the file for 6-core or 8-core configuration, perform the following steps listed below:
a.) Right-click in the Finder-Window on the VoodooTSCSync.kext file. Select "Show Packet Contents".
b.) Go to /contents/, right-click on the "Info.plist" file and select "Open with / Other". Select the TextEdit.app and edit the
"Info.plist" file​
c.) substitute the default 10-core entry
Code:
<key>IOCPUNumber</key>
<integer>19</integer>
by
Code:
<key>IOCPUNumber</key>[/INDENT]
<integer>15</integer>
in case that you employ a 8-core CPU, or by
Code:
<key>IOCPUNumber</key>[/INDENT]
<integer>11</integer>
in case that you employ a 6-core CPU​
d.) save the modified "Info.plist" file
3.) Copy the final "VoodooTSCSync.kext" file to the /EFI/Clover/kexts/10.12/ directory of your System Disk.
4.) Open your "config.plist" in the /EFI/Clover/ directory of your System Disk with the Clover Configurator and select
"darkwake=0" in the "Boot" Section.

5.) Add the following "KernelToPatch" entries in the "Kernel and Kext Patches" Section:
Code:
Find* [HEX]                                                                                                        Replace* [HEX]                                                                                                     Comment
aa010000 dc330000 00000000 0000000000000000 00000000 01                                                            aa010000 00000000 00000000 0000000000000000 00000000 00                                                            SammlerG Sierra xcpm MSR Patch 1 / xcpm support Pike R. Alpha
3a060000 dc330000 00000000 000000001f000000 00000000 00000000 0000000000000000 00000000 00000000 00000000          3a060000 00000000 00000000 0000000000000000 00000000 00000000 0000000000000000 00000000 00000000 00000000          SammlerG Sierra xcpm MSR Patch 3 / xcpm support Pike R. Alpha
42060000 dc330000 00000000 000000001f000000 00000000 18                                                            42060000 00000000 00000000 0000000000000000 00000000 00                                                            SammlerG Sierra xcpm MSR Patch 4 / xcpm support Pike R. Alpha
e2000000 4c000000 00000000 000000000f040000 00000000 0500001e                                                      e2000000 4c000000 00000000 000000000f040000 00000000 0700007e                                                      SammlerG Sierra xcpm MSR Patch 5 / xcpm support Pike R. Alpha/MSR_PMG_CST_CONFIG_CONTROL0xE2=0x7E000007
6.) Save your "config.plist" and reboot.

Now you should have basic Sleep/Wake functionality on your ASUS X99-A II and very likely also on all other mobos.

If you want to restore the old Energy Saver Settings in System Preferences including the missing computer sleep slider bar, follow the instructions of @ghorwith provided by this link.

If you still face problems with Sleep/Wake, you can try do perform the following steps below in addition:

7.) Open your config.plist iwth Clover Configurator and remove the following ACPI DSDT Patches in the "ACPI" section of the
Clover Configurator as these tasks will be performed by the fixed and patched SSDT.aml we will build below:​

Code:
Comment:                   Find* [Hex]       Replace* [Hex]
change _OSI to XOSI        5f4f5349          584f5349
change EHC1 to EH01        45484331          45483031
change EHC2 to EH02        45484332          45483032
change XHCI to XHC         58484349          5848435f
change XHC1 to XHC         58484331          5848435f
8.) Save your "config.plist"

9.) At the main Clover bootloader screen, press F4. Clover will now dump the native ACPI files to /EFI/Clover/ACPI/origin/. You
can access these files after you booting MacOS.​

10.) Create a new folder on your Desktop, named e.g. /FIX-PATCH-DSDT/. Copy the DSDT.aml from /EFI/Clover/ACPI/origin/
to your newly created "FIX-PATCH-DSDT" directory.
11.) Open the DSDT.aml with MaciASL. The correct version of MaciASL for successful DSDT fixing and patching is attached
towards the end of my guide (MaciASL-DSDT.app.zip)​

12.) a.) Download and open @RehabMan 's USB Laptop-DSDT-Patch attached at the bottom of my
guide: usb_prw_0x0d_xhc.txt. This file can also be accessed on GitHub.​
b.) Copy its content
c.) Click in the MaciASL-Editor on the "Patch-symbol".
d.) Past the content of usb_prw_0x0d_xhc.txt into the newly opening window.
e.) Wait until the "Apply-Button" gets highlighted, press "Apply" and subsequently "Close"​
13.) a.) Download and open @nmanos fix for X99 DSDT errors attached at the bottom of my guide: X99 dsdt errors.txt.
b.) Copy its content
c.) Click in the MaciASL-Editor on the "Patch-symbol".
d.) Past the content of usb_prw_0x0d_xhc.txt into the newly opening window.
e.) Wait until the "Apply-Button" gets highlighted, press "Apply" and subsequently "Close"
14.) In the MaciASL menu-bar select "File" and "Save As..." and overwrite your DSDT.aml in the "FIX-PATCH-DSDT" directory in
the FileFormat "ACPI Machine Language Binary".​

15.) Copy your fixed and patched DSDT.aml to /EFI/Clover/ACPI/patched/ and reboot.

Note, that the patched DSDT.aml disables the USB functionality during sleep! In consequence, to wake your system, you have to press the "power-button" of your computer. Neither your keyboard nor your mouse will be functional during sleep, in contrast to steps 1.) to 6.), where full USB functionality is also provided during sleep and the Sleep/Wake functionality already might suffice your requirements.

Literature: @RehabMan 's Guide on Patching Laptop DSDT/SSDTs

Good luck :thumbup:

----------------------------------------------------------------------------------------------------------------------------------------------
:idea: Benchmarking :idea:

Geekbench-4.1 Scores:

View attachment 246113

View attachment 246114

Geekbench-4.1 Metal-Scores:

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

View attachment 248549

LuxMark 3.1:

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

View attachment 248553

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

View attachment 248555

View attachment 249301

Cinebench R15.0:

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

View attachment 248557

AJA Disk Speed Benchmark:

View attachment 246031

Black Magic Disk Speed Test 3.0:

View attachment 244822
----------------------------------------------------------------------------------------------------------------------------------------------
:idea: HWMonitoring :idea:
View attachment 249559
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 new FakeSMC.kext, 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!
5.) Reboot
Now you should have plenty of system hardware sensor data at your deposit. The HWmonitor.app can be automatically started at login.
View attachment 249560
----------------------------------------------------------------------------------------------------------------------------------------------


:idea: MacOS Sierra Upgradability :idea:

:thumbup: Sierra 10.12.5 working without problems! :thumbup:

If you are still running 10.12.4, 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.5 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.5):

-----------------------
Terminal Command:
-----------------------

Code:
./patch_nvme.sh --spoof 10_12_5

Copy the "HackrNVMeFamily-10_12_5.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_4.kext"
6.) Apply once more the AGDPfix!
7.) Download and Install the latest NVIDIA Web Drivers.
8.) Reboot as requested and you are done! Now you are running MacOs Sierra 10.12.5!

The same procedure might also apply for all upcoming MacOS Sierra updates. However, better await respective confirmations. 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 am a scientist, expert in solar physics, space weather forecast and related telescope/instrument/space-mission development. In the frame of my scientific research, I developed parallelized image reconstruction, spectral line inversion and numerical modeling algorithms/applications, which require tremendous parallelized calculation power, ram memory and storage capacities to reduce, analyze and interpret extensive and pioneering scientific ground-based or space-born observational data sets. This basically was also the professional motivation for my build. Anybody interested can find more details on my personal webpage.

I think my thread implements both, hardware build and installation guide at the same time. I am sure that this high-end build might find manifold application, not only in science and research at universities or research institutions, engineering facilities, or medical labs, etc.. The principal intention of my thread however was to demonstrate, that we are able to build and configure a stable and relatively "low-cost" high-end system nowadays, that goes far beyond of what Apple is able to offer 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, etc.), processor models (e.g. Broadwell-E 6800K, 6850K, 6900K, 6950X and Haswell-E CPUs) and Ram Memory (16-128GB) makes it affordable for anybody (also home office, video editing, etc.) and allows its perfect adaptation for the specific purpose and requirement. I am using my system on a daily basis. The system is running 24/7/365 and is absolutely stable. There are no issues at all with sleep/wake disabled at present. :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 am very willing to provide further benchmarking for its ultimate configuration if desired by the community. Additional results can be easily added towards the end of my guide without large additional efforts. 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:
View attachment 228925

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

Thank you for this great manual. My Setup is very close to yours (ASUS X99 A II, 1080 TI, i7-6800k) and nearly everything is working very fine now. Only Handoff still denies any function although I'm using the "Original-Hackintosh-Card" from your description (OSXWIFI). iMessage and Facetime is working. Any idea what I might have forgotten?
Thanks in advance
 
Thank you for this great manual. My Setup is very close to yours (ASUS X99 A II, 1080 TI, i7-6800k) and nearly everything is working very fine now. Only Handoff still denies any function although I'm using the "Original-Hackintosh-Card" from your description (OSXWIFI). iMessage and Facetime is working. Any idea what I might have forgotten?
Thanks in advance

Not really... the OSXWIFI card has native support..
 
Ok, for now this is what I've do :

- Change npci=0x2000 to npci=0x3000
- Remove the PMDrvr kext from EFI
- Install these kexts to S/L/E instead of EFI : BrcmFirmwareRepo, BrcmPatchRAM2
- Remove these drivers from EFI/Clover/drivers64UEFI : AppleImageCodec-64, AppleKeyAggregator-64, AppleUITheme-64, SMCHelper-64

I also put my old RAM Kit to confirm that reboots were not made by memory compatibility issues.
Like I said in my previous post, When I put the PMDrvr.kext into EFI I got reboots quickly.
I would like to confirm that my system is stable without any random reboot during a few days with this . After I'll try to understand step by step how it become unstable.


Ok now I assume that system is stable enough, I have passed 4 days without any random reboots. Since yesterday I'm running this config entirely based with your guide except I don't use the PMDrvr.kext. No reboot or kernel panics I'm confident the system is stable too with this shema. After a couple of days without any issue I'll try to put the PMDrvr kext into the EFI folder just to confirm it come from this kext.
Stay tuned ;)
 
Status
Not open for further replies.
Back
Top