Contribute
Register

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

Status
Not open for further replies.
@kgp
do you want some infos from me:
I mean kexts used or others...
for now my rig is totally stable with your guide just needed to not use the PMDrvr and not use EIST
let me know if you want infos to complete your great guide

cheers

PS concerning memory maybe it can help
i inject everything on clover like it
cause as I use 128GB I wanted to be sure to have no problems

View attachment 271342


Yes of course! Please provide here in this thread the most important details to your build and setup and about all the work you did! This would be absolutely awesome! To see what of all that I can still implement in my 10.12 guide.... :thumbup:

However, I encourage you once more to focus now on 10.13, which will be the future! I count on your collaboration during the upcoming 10.13 betas. Note that I just distributed an upgrade of my 10.13 High Sierra Desktop Guide to PB4/DP5!
Any contribution from your side during the upcoming weeks will be highly welcome and much appreciated! :thumbup:

Cheers,

KGP :wave:
 
  • Like
Reactions: GDS
So, I just updated to 10.12.6, no issues. I did update my AppleALC and Lilu, but the upgrade went very smooth. I have been using the Pikeralpha patch for my Samsung 960 Pro, and again, no issues.

KGP - so, how far along are with your 10.13 testing?

Meagan
 
So, I just updated to 10.12.6, no issues. I did update my AppleALC and Lilu, but the upgrade went very smooth. I have been using the Pikeralpha patch for my Samsung 960 Pro, and again, no issues.

KGP - so, how far along are with your 10.13 testing?

Meagan

Just take a test drive and follow my 10.13 macOS High Sierra Guide! Working flawless already !
 
I will do my best for the X.13
but during this time I dont work for my NPO and please understand that I need to ;)
I mean this is a tool for me this Hackintosh so I will try to implement your X.13 guide
but cannot afford too much time on it if it is not ok :(
for now for sure, the program I use doesn't let me working as best as possible on X.13

Anyway to be more positive here some infos
it is not a perfect presentation but take all the infos necessary in this post to add on your guide as you want ;)
and let me know what you would like to have in details

to resume:
1/ I followed your guide step by step perfectly
2/ the points i add here are just to have better reliability only cause with your guide it works perfectly as it is ;)
3/ I added the info concerning the TRIM (from your X.13 guide)
4/ I added problem to stand with NVMe process as I have 2 and didn't want to loose too much time on it so I directly inject it as before (not the best way but it works perfectly)
5/ I added the line for the PLEXTOR PX-1TM8PeG on clover to have it fully recognized and useful


concerning my rig:
* Mobo: X99 deluxe II (last bios)
* processor: 2696 v4 (OEM of 2699v4)
* DDR4: 128 GB of 8 x 16 GB corsair OC at 2400MHz / reference: CMK128GX4M8A22133C13
* 2 NVMe: one SM961 (system) and one PX-1TM8PeG (for stock and exchange between W$10 and Mac OS) in exFAT
(each 1TB)
* Graphic cards: 2 titan X maxwell, OC at 1266 / 3900MHz (so a gain of 266 and 400 MHz on each card), it works for me but I cannot advice people to do the same at all!!!
* PSU: LEPA Maxplatinum 1375W P1375-MA (cheap and super duper powerful and reliable),
as advice: do not buy any CORSAIR AXi, tons of problems and all around me people needed to change it too
* sound card external: DUET Apogee II
* 3 screens 4K, 40 inches (2 installed at this moment)

everything internal parts are watercooled with EKWB and Aquacomputer system
much more for reliability and silence than high performance
in full use
CPU: 30°C
and each graphic card: 39°C
the SM961 is water-cooled too cause it is a very great Nvme but throttles appear like crazy at high temp.
with WC the results are reliable and very great
the Plextor is a good Nvme but far of a SM961

OS: dual boot windows 10 LSBT Red Optimized / Mac OS X.12.6
way of installing following the guide of @Going Bald
https://www.tonymacx86.com/threads/guide-multibooting-uefi.197352/

Everything work perfectly (USB, bluetooth that I added, 4k@60fps on each screen, ...)
concerning the sound: as I have a DUET APOGEE II I dont need to focus on how to make it ok with internal mobs sound

* EIST and PMDrvr.kext makes my hack rebooting (sometimes)
so I turned off and pulled out the .kext

so far perfectly stable
and results on GB: awesome


problems:
* I cannot use the ICould folder, strangely I can use all services, Photos, calendar, notes etc etc
but the ICould folder is definitely empty :(
* the web driver Nvidia cannot be opened with HT active (so 44 threads), not a problem at all as I have great score on GB and also records on Luxmark




concerning the CPU:
* I join here the screen of the kext I use from your installation also the "others" folder
for the VoodooTSCSync I had to modify tiny bit to recognize the 44 threads so I changed (as you presented it well on your guide) the number of the threads minus 1: 43 in my case (IOCPUNumber)
as it:

Code:
<key>VoodooTSCSync</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>org.voodoo.driver.VoodooTSCSync</string>
            <key>IOClass</key>
            <string>org_voodoo_driver_VoodooTSCSync</string>
            <key>IOMatchCategory</key>
            <string>VoodooTSCSync</string>
            <key>IOPropertyMatch</key>
            <dict>
                <key>IOCPUNumber</key>
                <integer>43</integer>
            </dict>
            <key>IOProviderClass</key>
            <string>AppleACPICPU</string>
        </dict>

Also
* in clover I use fakeCPUID 0x040674 for Broadwell E
changing it for 0x406F1 as Broadwell EP doesn't bring me anything interesting

so I came back and it is perfectly recognized as 44 threads CPU

* for the ssdtPRGen.sh method I dont use any turbo or else only "./ssdtPRGen.sh -a"
and it is ok

the 2696v4 allows me in mono thread to go above 3,4 GHz (shortly on GB)
for a 2,2GHz core frequency not so bad


for now this is the points which came to my mind...

PS: as advice, never ever install 3rd part program to manage NTFS partition it is crappy
use instead exFAT recognized natively with W$ and Mac OS X

PS2: cause my rig is MEOWPURRDY here a tiny video :D
"haters gonna hate, potatoes gonna potate"





cheers

pic.JPG Capture d’écran 2017-08-09 à 02.30.57.pngCapture d’écran 2017-08-10 à 02.15.48.png Capture d’écran 2017-08-10 à 02.19.29.pngCapture d’écran 2017-08-10 à 02.19.48.pngCapture d’écran 2017-08-07 à 18.36.47.pngCapture d’écran 2017-08-07 à 18.36.54.pngCapture d’écran 2017-08-10 à 01.51.42.png Capture d’écran 2017-08-10 à 01.51.16.pngCapture d’écran 2017-08-10 à 01.50.38.png Capture d’écran 2017-08-07 à 19.31.25.png Capture d’écran 2017-08-07 à 19.31.35.png Capture d’écran 2017-08-07 à 19.31.44.png Capture d’écran 2017-08-09 à 22.15.02.png


However, I encourage you once more to focus now on 10.13, which will be the future! I count on your collaboration during the upcoming 10.13 betas. Note that I just distributed an upgrade of my 10.13 High Sierra Desktop Guide to PB4/DP5!
Any contribution from your side during the upcoming weeks will be highly welcome and much appreciated! :thumbup:

Cheers,

KGP :wave:
 
Last edited:
  • Like
Reactions: kgp
i add the result of frequency on "AppleIntelInfo.kext"

so in theory: 2,2 GHz / core
and turbo: 3,7 GHz
strangely I can go tiny bit more than turbo mode (on GB) mono thread maybe it is a mistake of INTEL Gadget but I saw 3,75

Also something strange
on your guide you posted the AppleIntelInfo
and you have it:


Code:
--------------------------------------------------------------------------------------------
AppleIntelInfo.kext v2.5 Copyright © 2012-2017 Pike R. Alpha. All rights reserved.

Settings:
------------------------------------------
logMSRs..................................: 1
logIGPU..................................: 0
logCStates...............................: 1
logIPGStyle..............................: 1
InitialTSC...............................: 0x10e9ae70b5478 (9917 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)

what I feel strange it is the processor signature
and it confirms that the fact to put (as I did before): 0x406F1 always for EP processor: it is pointless
I mean 0x406F1 I think it is for all broadwell processors (E or EP)
as a 6950X is recognized with this processor signature
and my rig confirm it with using the Boradwell E signature that you showed on your 1st page


Capture d’écran 2017-08-07 à 18.07.36.png
 
Last edited:
i add the result of frequency on "AppleIntelInfo.kext"

so in theory: 2,2 GHz / core
and turbo: 3,7 GHz
strangely I can go tiny bit more than turbo mode (on GB) mono thread maybe it is a mistake of INTEL Gadget but I saw 3,75

Also something strange
on your guide you posted the AppleIntelInfo
and you have it:


Code:
--------------------------------------------------------------------------------------------
AppleIntelInfo.kext v2.5 Copyright © 2012-2017 Pike R. Alpha. All rights reserved.

Settings:
------------------------------------------
logMSRs..................................: 1
logIGPU..................................: 0
logCStates...............................: 1
logIPGStyle..............................: 1
InitialTSC...............................: 0x10e9ae70b5478 (9917 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)

what I feel strange it is the processor signature
and it confirms that the fact to put (as I did before): 0x406F1 always for EP processor: it is pointless
I mean 0x406F1 I think it is for all broadwell processors (E or EP)
as a 6950X is recognized with this processor signature
and my rig confirm it with using the Boradwell E signature that you showed on your 1st page


View attachment 271440

The 0x406F1 is just the result of AppleIntelInfo. You know that I use a different FakeCPUID. You have to ask Pike why AppleIntelInfo assigns all Broadwell-E CPUs to 0x406F1
 
Is this method suppose to work with xeon e5 v4 CPU?
I could not get machdep.xcpm.mode to 1..
I've been trying to fix it for weeks.. so frustrated.
 
Could you please share your config?

i add the result of frequency on "AppleIntelInfo.kext"

so in theory: 2,2 GHz / core
and turbo: 3,7 GHz
strangely I can go tiny bit more than turbo mode (on GB) mono thread maybe it is a mistake of INTEL Gadget but I saw 3,75

Also something strange

what I feel strange it is the processor signature
and it confirms that the fact to put (as I did before): 0x406F1 always for EP processor: it is pointless
I mean 0x406F1 I think it is for all broadwell processors (E or EP)
as a 6950X is recognized with this processor signature
and my rig confirm it with using the Boradwell E signature that you showed on your 1st page


View attachment 271440
 
View attachment 267712

Being frustrated about the present Customac Pro hardware configuration proposed by Tonymacx's Buyer's guide, I decided to go for a new Customac Pro Build based on the Broadwell-E CPU, X99 chip-set and LGA2011-v3 socket with Mac OS Sierra beating records, running like hell, behaving absolutely stable and providing forced-sleep/wake functionality. Please find below my corresponding macOS Sierra 10.12 Desktop Guide, which will guide you in all detail in setting up a stable and fully functional macOS Sierra 10.12 distribution on your X99 System. The logical continuation of this desktop guide, i.e. its extension to macOS High Sierra 10.13 can be accessed by following THIS LINK. Note that macOS High Sierra 10.13 is still in a beta stage. Use a separate test drive for the 10.13 beta installation and do not directly upgrade your macOS Sierra 10.12 System Drive, which we will configure in all detail here below!

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). Further important information concerning Thunderbolt 3 compatibility has been provided by @Raddles and can be accessed on page 132, post 1318 of this thread. Compliance with my guide also has been reported for the Asus Rampage V Extreme (thanks to @morganb and @Raddles), the Asus Sabertooth X99 TUF (thanks to @sebtech), the Asus X99-E (thanks to @superjunaid), the ASRock X99 Taichi (thanks to @welkram; mobo drawback: on-board WIFI/Bluetooth not supported by MacOS), the ASRock X99 Extreme 4/3.1 (thanks to @AndrewL7332), the Gigabyte X99-UD4 (thanks to @ahmadno; mobo drawback: internal NVMe runs only at x2/x1 speeds, i.e. 700MB/s at most), the Gigabyte X99-SLI (thanks to @Coquin), the Gigabyte X99 Ultra Gaming (thanks to @gajaciosif and @hooked), the Gigabyte x99-SOC-Force (thanks to @hooked) and the MSI X99A Gaming 7 (thanks to @tneely; original OsxAptioFixDrv-64.efi + Test2-2016.efi, different Ethernet-kext for Killer E2205 Gigabit LAN). I indeed expect compatibility of my guide with most of the X99 mobos (further success feedback will be appreciated and is highly welcome). Full sleep/wake functionality with my build and guide has been reported first for both the Gigabyte X99 Ultra Gaming and Gigabyte X99-SOC-Force by @hooked and for the Gigabyte X99-SLI by @erlipton05. For the ASUS X99-A II, Sleep/Wake did not work Out of Box (OoB). However, after a few additional patches, forced-sleep/wake functionality is now also provided for this mobo and likely also for all other X99 ASUS-mobos.​
CPU: I7-6950X(10-core)
I7-6800K (6-core); I7-6850K (6-core), I7-6900K (8 core) are further "low-budget" options. HERE you find the ASUS X99-A II CPU compatibility list. Note that concerning XCPM, for Haswell-E CPUs some of the "KerneltoPatch"-entries differ from those for Broadwell-E CPUs provided below.​
RAM: 128GB KIT (8x16GB) G.Skill TridentZ (F4-3200C14Q2-128GTZSW)
You are free to select any other memory configuration specified by the ASUS Memory Qualified Vendors List that I attach at the bottom of this thread. Important Note: Initially, I used 2x Crucial Ballistix Sport LT 64 GB Kit (128GB). However I faced stability issues with this memory type not specified for the ASUS X99-A II.​
System Disk: Samsung 850 EVO 1TB (SSD) / Samsung 960 EVO 1TB (NVMe, M.2)
RAID: 3x Western Digital Red Pro 6TB (18TB); Note that the the ASUS X99-A II employs Intel Rapid Storage for RAID creation,
which is not supported by MacOS. In order to create a Hardware RAID you need to use a hardware RAID controller (PCIE), external hardware RAID array (like an Areca ARC-8050T2 or OWC Qx2). Alternatively you can create a software RAID using Disk Utility or software like SoftRAID (thanks to @flmmkr and @dogmaphobic for their clarifications).​
Graphics: Gigabyte AORUS GeForce® GTX 1080 Ti Xtreme Edition 11G (GV-N108TAORUS X-11GD)
On 4/10/2017, Nvidia released web drivers with support for all Pascal GPUs (378.05.05.05f01). Definitely time to say bye-bye to Maxwell and my former Gigabyte GeForce GTX 980 TI ;). See the new benchmark results towards the end of my guide. However, it should be emphasized at this place that any other Nvidia Pascal or Maxwell GPU will be compatible with this guide and build (see e.g. Tonymacx Pascal Graphics Cards Byer's Guide).​
Wifi + Bluetooth: OSXWIFI PC/Hackintosh - Apple Broadcom Bcm94360cd - 802.11 A/B/G/N/AC + Bluetooth 4.0 PCIe
Adapter. Works flawless! Native MacOS-support, native Airdrop support, native Handoff support, supports Bluetooth keyboard in BIOS/UEFI or Clover Bootloader. Windows 10 driver for dual-boot system attached to this post. Thanks to @dasboot5 for this excellent advice.​
Power Supply: Corsair AX860
CPU Cooler: Corsair H80i v2
Webcam: Logitech HD Pro Webcam C930
Monitor: LG 38UC99-W, 38", WQHD, 21:9, 3840x1600 pixel, 75 Hz. Only drawback: No G-sync support for game enthusiasts.
This monitor replaces my former Asus MX299Q, 29", WQHD, 21:9, 2560x1080 pix, 60 Hz Display.​
Case: Corsair CC600TWM-WHT, Graphite Series 600T, Mid Tower
Keyboard: Logitech K811
Mouse: Logitech Ultra-Thin Touch Mouse T631
Blu-Ray/DVD Writer: LG Super Multi Blue BH16 (BH16NS55)
Cable-management: Individually Sleeved AX 860/760 ATX 24pin (white) CP-8920074; Professional Individually sleeved DC
Case modding: 2x Nanoxia Rigid Bar RGB NRLED30RGB; HitLights RGB LED Light Strip 4 Pin Splitter; Nanoxia Led controller
NXRGBC (ASUS Aura control software only available for windows; extremely rudimentary Aura BIOS settings; no option for separate control of individual aura components).​


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 strongly recommended but not be deemed necessary. However, always remember that without patched BIOS on ASUS mobos, one has to check the KernelPm entry and enable the xcpm_idl_wrmsr KernelToPatch entry in the "Kernel and Kext Patches" Section of the Clove Configurator!

View attachment 270951

Also note that the MSR 0xE2 register lock does not relate to Gigabyte, ASRock or MSI mobos. Users with the latter board configuration can simply ignore this section of my guide.


BIOS patching procedure (optional, not required):


1.) Download and unzip 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 the "CPU" Section the "Type" entry is set to "0x0a02" and that in the "Kernel and Kext Patches" section your "FakeCPUID" entry is "0x040674" (Broadwell-E). For Haswell-E users, the "Type" and "FaceCPUID" entries must be "0x0a01" and "0x0306F2", respectively.​

No other files will be needed for the X99-A II board! Note that also kext-files like "NullCPUPowerManagement.kext", "BrcmBluetoothInjector.kext" or "AppleIntelE1000e.kext" apparently are not required anymore. The configuration files are also valid for the ASUS X-99 Deluxe II, ASUS Rampage V Extreme, Asus Sabertooth X99 TUF, ASUS X99-E, ASRock X99 Taichi, ASRock X99 Extreme 4/3.1, Gigabyte X99-UD4, Gigabyte X99-SLI, Gigabyte X99 Ultra Gaming and the Gigabyte X99-SOC-Force (once more thanks to @KevinAGI, @Thireus, @morganb, @Raddles, @sebtech, @superjunaid, @welkram, @AndrewL7332, @ahmadno, @Coquin, @gajaciosif and @hooked and for their feedback). Note that for the MSI X99A Gaming 7, the original OsxAptioFixDrv-64.efi + Test2-2016.efi files and a different Ethernet-kext (Killer E2205 Gigabit LAN) seems to be required (thanks to @tneely for his feedback).​

!!You are done!!

6.) Before installing MacOS Sierra on your new system, don't forget to apply the BIOS settings listed above.

7.) Boot the USB Installation Medium with the following boot options: -v npci=0x2000 nv_disable=1

8.) Install MacOS Sierra onto your system; Important Note: starting with Sierra 10.12.4, Error code 202 " The installer payload failed signature check" has been reported during the initial OS Sierra installation by several users. Apparently this problem can be circumvented by repeating the OS Sierra installation, entering the Apple installer menu and enabling a WI-FI connection to update the time by running the following terminal command:

Code:
nt-date -u time.apple.com

Once the time was updated, the installer encountered no other problems. Thanks to @Raddles for this important information and contribution!

9.) Now perform the Post-Installation procedure described below


System Disk Post-Installation Guide


Install the latest CLOVER distribution on your System Disk

Download and install the latest Clover distribution on your Sierra system disk by verifying the proper Install-Location (Sierra System Disk) and customizing (don't press "Install" but "Customize" instead) the following options:

a) Install for UEFI booting only
b) Install Clover in the ESP
c) Select the Bootloader Themes you want to install
d) Enable Install RC scripts on target volume
e) Only select EmuVariableUefi-64.efi in the Drivers64UEFI menu!
f) Select Install RC scripts on target volume
g) Select Install Clover Preference Pane​

During installation, Clover will automatically create and mount the EFI drive of your Sierra system disk and copy all required files to the /EFI/CLOVER/Drivers64UEFI/ directory.

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, @Raddles, @sebtech, @superjunaid, @welkram, @AndrewL7332, @ahmadno, @Coquin, @gajaciosif and @hooked and for their feedback). Note that for the MSI X99A Gaming 7, the original OsxAptioFixDrv-64.efi + Test2-2016.efi files and a different Ethernet-kext (Killer E2205 Gigabit LAN) seems to be required (thanks to @tneely for his feedback).


2.) Download the latest Version of the Clover Configurator and open ptzulu's "config.plist" file in the /EFI/CLOVER/ directory on the EFI-Paritition of your Sierra system disk.

View attachment 246528

a.) Verify that in the "CPU" section you use under "Type" the value "0x0a02" (Broadwell-E) and in the "Kernel and Kext
Patches" Section for "FakeCPUID" the value "0x040674" (Broadwell-E). Haswell-E users have to use "0x0a01" and "0x0306F2", respectively. Note that with a fully configured Xnu CPU Power Management (XCPM), the "CPU Type" and "FakeCPUID" entries become obsolete.
b.) Implement the correct "RT Variables" and "SMBIOS" entries by following "An iDiots's Guide To iMessage" by P1LGRIM.
It works perfectly. IMPORTANT NOTE: In order to avoid a black screen after boot with Nvidia graphics cards and in order to successfully run XCPM, you have to setup a Mac Pro 6.1 SMBIOS!
c.) Select the following "BOOT" options: npci=0x2000

d.) Save the modified config.plist configuration​
Audio Configuration

1.) VodooHDA - Standard Audio Configuration

The "kexts" folder of ptzulu contains an outdated VoodooHDA.kext which is fully working but apparently results in a low audio gain signal. Download the latest VoodooHDA.kext from sourceforge (VoodooHDA.kext-289.zip) and replace ptzulu's VoodooHDA.kext in "/EFI/clover/kexts/10.12/". This latest VoodooHDA.kext works absolutely flawless!

2.) AppleALC - Optional Audio Configuration I

A very nice optional audio configuration can be achieved by means of AppleALC. For installing the basic analogue audio configuration, just few steps are required as listed below:

a.) Remove the VoodooHDA.kext from the "/EFI/clover/kexts/10.12/" of your System Disk.
b.) Download and unzip the "AppleALC Audio.zip"-file, attached to my guide.
c.) Copy its content (the AppleALC.kext, the Lilu.kext, and the CodecCommander.kext) to "/EFI/clover/kexts/10.12/"
d.) Open your config.plist with the Clover Configurator and add the following "DSDT patch" in the "ACPI section":

Code:
Comment:                Find:           Replace:[/INDENT]

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 only works with the MacPro6,1 system definition.

2.) Download and install the latest NVIDIA Web-drivers and reboot as requested.

The AORUS Geforce GTX 1080 TI Extreme Edition supports 2 monitors OOB, at least when connect at the two outermost Display Ports at boot. I did not check any other configuration.​

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 and Haswell-E processors in a much more general context. XCPM is certainly an important step forward with respect to advanced CPU power managment. I am eagerly looking forward to fruitful discussions, extensive feedback and further constructive input not only from experts.

Before configuring XCPM on your system, verify the following BIOS settings:

\Advanced\CPU Configuration\CPU Power Management Configuration\​
  • Enhanced Intel SpeedStep Technology (EIST): Disabled
  • Turbo mode: Enabled
  • CPU C-State: Enabled
  • Enhanced C1 State: Enabled
  • CPU C3 Report: Enabled
  • CPU C6 Report: Enabled
  • Package C State Limit: C6(non Retention) state
Now, follow the stepwise approach below:
1.) Verify that your System ID is MacPro 6.1

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

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

Code:
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.
b) "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
8d43c483 f822                                                     8d43c383 f822                                                     xcpm_bootstrap Sierra © 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
20b9e200 00000f30                                                 20b9e200 00009090                                                 xcpm_idle patch by 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

View attachment 269650

Note the updated xcpm_bootstrap entry for 10.12.6! With this new patch, xcpm_bootstrap is now also fully working for Broadwell-E! Note that I actually do not use the "xcpm_preboot_fix" and "xcpm_core_scope_msrs" entries (disabled) as they seem to disable the C3 states! The "xcpm_idle patch" by Pike R. Alpha circumvents the MSR 0xE2 register write. On ASUS-mobos with patched BIOS and unlocked MSR 0xE2 register, this "KernelToPatch" entry could be in principle omitted and disabled. However, it seems that the "xcpm_idle patch" has major implications on the system sleep/wake functionality when using XCPM. I therefore leave this "KernelToPatch" entry enabled for now.

Note that some of the "KernelToPatch" entries are CPU-architecture specific. The above "KernelToPatch" entries are for the Broadwell-E architecture. For the Haswell-E CPU architecture see the respective necessary changes summarized below. Note once more the updated xcpm_bootstrap entries for 10.12.6! Thanks to PMheart and @nmano for providing the correct values!

Haswell-E:
Code:
Find:                           Replace:                        Comment:                                     MatchOS:
0fb6c483 c0e983f8 47            0fb6c483 c0e683f8 47            xcpm_cpuid_set_info © Pike R. Alpha          10.12
8d43c483 f822                   8d43c183 f822                   xcpm_bootstrap Sierra © Pike R. Alpha        10.12


Please note that Haswell-E processors in principle do not require the patching of the switch table used by "xcpm_cpuid_set_info". Apple already took care of it. One can therefor disable the xcpm_cpuid_set_info KernlToPatch entry for the latter processor architecture. If you encounter against all expectations problems during your XCPM configuration though, use the "xcpm_cpuid_set_info" entry provided above!

It should be emphasized that the "KernelToPatch" entries above are the cornerstone for a working and stable XCPM aka Xnu CPU Power Management. Thus, double check if you have the correct "KernelToPatch" entries for your specific CPU-architecture!

3.) Reboot

4.) Verify with the terminal command "sysctl machdep.xcpm.mode" if the XCPM mode is now active. If so, "sysctl
machdep.xcpm.mode
" should return "1".

5.) Download Piker-Alpha's ssdtPRGen.sh from Github.

6.) Drop ssdtPRGen.sh into a terminal and add the following parameters to also enable turbo frequencies of up to 4000 Mhz.

Code:
./ssdtPRGen.sh -a CPU0 -turbo 4000

Result:

Code:
ssdtPRGen.sh v0.9  Copyright (c) 2011-2012 by † RevoGirl
             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 SSDT.aml file in ~/Library/ssdtPRGen/
7.) Copy the SSDT.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...............................: 0x10e9ae70b5478 (9917 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)  : 0x1E000005
------------------------------------------
 - I/O MWAIT Redirection Enable......... : 0 (not enabled)
 - CFG Lock............................. : 0 (MSR not locked)
 - C3 State Auto Demotion............... : 1 (enabled)
 - C1 State Auto Demotion............... : 1 (enabled)
 - C3 State Undemotion.................. : 1 (enabled)
 - C1 State Undemotion.................. : 1 (enabled)
 - 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 (C-States not included, I/O MWAIT redirection not enabled)

IA32_MPERF.......................(0xE7)  : 0xFEAF48A9D
IA32_APERF.......................(0xE8)  : 0x134F97C554
MSR_0x150........................(0x150) : 0x0

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

MSR_IA32_PERF_STATUS.............(0x198) : 0x203700001E00
------------------------------------------
 - Current Performance State Value...... : 0x1E00 (3000 MHz)

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

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

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

IA32_THERM_STATUS................(0x19C) : 0x883E0000
------------------------------------------
 - 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...................... : 62
 - Resolution in Degrees Celsius........ : 1
 - Reading Valid........................ : 1 (valid)

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

IA32_MISC_ENABLES................(0x1A0) : 0x850089
------------------------------------------
 - 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.. : 1 (enabled)
 - 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) : 0x2A2A2A2A2A2A2A2A
------------------------------------------
 - Maximum Ratio Limit for C01.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C02.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C03.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C04.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C05.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C06.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C07.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C08.......... : 2A (4200 MHz)

MSR_TURBO_RATIO_LIMIT1...........(0x1AE) : 0x2222222222222A2A
------------------------------------------
 - Maximum Ratio Limit for C09.......... : 2A (4200 MHz)
 - Maximum Ratio Limit for C10.......... : 2A (4200 MHz)

IA32_ENERGY_PERF_BIAS............(0x1B0) : 0x1
------------------------------------------
 - Power Policy Preference...............: 1 (highest performance)

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) : 0x1790A7
------------------------------------------
 - Total Energy Consumed................ : 94 Joules (Watt = Joules / seconds)

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

IA32_TSC_DEADLINE................(0x6E0) : 0x10E9AE8F276BC

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............: 42 (4200 MHz)
P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ (12) 35 ]
CPU C3-Cores [ 1 3 4 6 7 8 13 14 15 16 18 ]
CPU C6-Cores [ 0 2 4 6 8 10 12 14 16 18 ]
CPU P-States [ 12 26 35 (42) ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 13 14 15 16 18 19 ]
CPU P-States [ (12) 26 33 35 42 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 12 13 14 15 16 18 19 ]
CPU C6-Cores [ 0 2 4 6 7 8 10 12 14 16 18 ]
CPU P-States [ (12) 26 27 33 35 42 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 9 12 13 14 15 16 18 19 ]
CPU C6-Cores [ 0 2 3 4 6 7 8 10 12 14 16 18 ]
CPU P-States [ 12 26 27 28 33 35 (42) ]
CPU C6-Cores [ 0 2 3 4 6 7 8 10 12 14 16 17 18 ]
CPU P-States [ 12 26 27 28 (30) 33 35 39 42 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 9 12 13 14 15 16 17 18 19 ]
CPU C6-Cores [ 0 2 3 4 6 7 8 10 11 12 14 16 17 18 ]
CPU P-States [ 12 26 27 28 (30) 32 33 35 39 42 ]
CPU P-States [ 12 21 26 27 28 30 32 33 35 39 (42) ]
CPU P-States [ 12 21 26 27 28 30 32 33 35 37 39 (42) ]
CPU C6-Cores [ 0 2 3 4 6 7 8 9 10 11 12 14 16 17 18 ]
CPU P-States [ 12 21 26 27 28 (30) 32 33 35 36 37 39 42 ]
CPU P-States [ (12) 21 26 27 28 30 32 33 35 36 37 38 39 42 ]
CPU P-States [ (12) 19 21 26 27 28 30 32 33 35 36 37 38 39 42 ]
CPU P-States [ (12) 19 21 23 26 27 28 30 32 33 35 36 37 38 39 42 ]
CPU C6-Cores [ 0 2 3 4 5 6 7 8 9 10 11 12 14 16 17 18 ]
CPU P-States [ 12 18 19 21 23 26 27 28 (30) 32 33 35 36 37 38 39 42 ]
CPU P-States [ (12) 16 18 19 21 23 26 27 28 30 32 33 35 36 37 38 39 42 ]
CPU P-States [ 12 16 18 19 21 23 26 27 28 30 32 33 34 35 36 37 38 39 (42) ]
CPU C6-Cores [ 0 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 ]
CPU P-States [ 12 16 18 19 21 23 24 26 27 28 (30) 32 33 34 35 36 37 38 39 42 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 ]
CPU P-States [ (12) 16 17 18 19 21 23 24 26 27 28 30 32 33 34 35 36 37 38 39 42 ]
CPU P-States [ 12 16 17 18 19 21 22 23 24 26 27 28 (30) 32 33 34 35 36 37 38 39 42 ]
CPU P-States [ (12) 16 17 18 19 21 22 23 24 26 27 28 29 30 32 33 34 35 36 37 38 39 42 ]
CPU P-States [ 12 16 17 18 19 21 22 23 24 25 26 27 28 29 (30) 32 33 34 35 36 37 38 39 42 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 ]
CPU P-States [ (12) 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 42 ]
--------------------------------------------------------------------------------------------

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.

3.) Reboot

4.) Apply the following BIOS settings:

Advanced\CPU Configuration\CPU Power Management Configuration\​
  • Enhanced Intel SpeedStep Technology (EIST): Enabled
5.) Save your BIOS settings with F7 and F10 and reboot

Literature:
Haswell E Powermanagment yet another option

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

:!: Sleep/Wake Functionality: :!:
While already with one of the first versions of this guide, Sleep/Wake on the Gigabyte X99 Ultra Gaming, Gigabyte X99-SOC-Force and Gigabyte X99-SLI has been achieved OoB (thanks to @hooked and @erlipton05 for their valuable feedback and inputs), Sleep/Wake functionally now can also be achieved on the ASUS X99-A II (and supposedly on all other X99 ASUS mobos) thanks to a couple of additional patches.

For details see the Section "Sleep/Wake Functionality" of my macOS High Sierra 10.13 Desktop Guide, which also directly applies to macOS Sierra 10.12. Just note that in case of macOS Sierra 10.12, the repeatedly indicated path "/EFI/CLOVER/kexts/Others/" changes to "/EFI/CLOVER/kexts/10.12/".

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

Geekbench-4.1 Scores:

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

Black Magic Disk Speed Tests v3.1:

View attachment 267964
----------------------------------------------------------------------------------------------------------------------------------------------
: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 CPUSensors.kext, ACPISensors.kext and LPCSensors.kext to the /EFI/CLOVER/kexts/10.12/
directory of your system disk.

Warning! Do not copy the GPUSensors.kext! The latter kext-plugin caused kernel-panic while booting my system! Also do not copy the included FakeSMC.kext, as it seems to cause freezing and random reboots!
In fact the included FakeSMC.kext is required to properly monitor fan speeds. However, it is much more important to have a stable system then taking profit of this minor add-on. Please stay with the original FakeSMC.kext included in kexts.zip attached towards the end of my guide.
5.) Reboot
Now you should have plenty of system hardware sensor data at your deposit. The HWmonitor.app can be automatically started at login.
View attachment 249560
----------------------------------------------------------------------------------------------------------------------------------------------


:idea: MacOS Sierra Upgradability :idea:

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

If you are still running 10.12.5, simply perform the following steps:

1.) Download and install the latest Clover distribution. Check after clover installation, that "OsxAptioFix2Drv-free2000.efi" is the
only "OsxAptioFix*Drv**.efi" file in your /EFI/CLOVER/Drivers64UEFI/ directory.
2.) In the web driver menu, change from "web driver" to "OS X default graphics driver".
3.) Download the MacOS Sierra 10.12.6 update from the App-Store.
4.) Reboot as requested (only in case that you encounter problems with the graphics card, boot just once with the
boot-flag: nv_disable=1)
5.) All Nvme Users: Download the latest version of "patch-nvme-master" from https://github.com/RehabMan/patch-nvme.
Run patch_nvmw.sh with the --spoof parameter and the actual system version as additional parameter (Sierra 10.12.6):

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

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

Copy the "HackrNVMeFamily-10_12_6.kext" (also attached at the bottom of my guide) into your /EFI/CLOVER/kexts/10.12
partition or system's S/L/E or L/E. Remove the former "HackrNVMeFamily-10_12_5.kext"
6.) Apply once more the AGDPfix!
7.) Download and Install the latest NVIDIA Web Drivers.
8.) Reboot as requested
9.) Now proceed to the Section XCPM, and re-inject the frequency vector to your Mac-F60DEB81FF30ACF6.plist. Note
that the latter file has been rewritten during the macOS Sierra upgrade!​
10.) If you decided to go for sleep/wake functionality instead of EIST and PMDrvr.kext, finally proceed to Section Sleep/Wake
Functionality and redo the DSDT creation. Copy the resulting DSDT.aml to /EFI/CLOVER/ACPI/patched/ and reboot.​

Now you are done and you are successfully running MacOs Sierra 10.12.6!

The same procedure might also apply for all upcoming MacOS Sierra updates. However, better await respective confirmations.
Concerning macOS High Sierra 10.13, the logical continuation of my macOS Sierra 10.12 Desktop Guide depicted above and its extension to macOS High Sierra 10.13 has been published today (13 July 2017). Anybody, interested can follow THIS LINK. Note that macOS High Sierra 10.13 is still in an early beta stage. Use the latter guide only for test purposes. Do not directly upgrade your macOS Sierra 10.12 System Drive!

In general, don't forget to create a clone of your system-disk before performing any update or modification! The famous quote "never touch a running system" is still valid to some point :lol:.

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

a.) Open the EFI Partition of your Clone Drive and System Disk with the Clover Configurator. Be careful not to confuse between
the EFI partition of your Boot Disk and Clone Drive, subsequently!
b.) If the EFI partition of your Clone Drive is not empty delete all its content.
c.) Copy the EFI folder of your System disk to the EFI partition of your Clone Drive

If your Clone Drive does not have any EFI partition, you will have to create it primerly by means of a Clover installation. Then proceed with b.)

By this procedure, your clone-drive will be identical to your system-disk and you can directly boot from it in case of problems. You also can repair the system-disk or restore the backup from your clone drive.

Always keep your clone-drive up-to-date and frequently clone your system-disk!

Good luck! :thumbup:

----------------------------------------------------------------------------------------------------------------------------------------------
;) Famous Last Words, Summary and Conclusion ;)

I am a scientist, expert in solar physics, space weather forecast and related telescope/instrument/space-mission development and AIT. 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 for my own innovative Customac-Pro build iSPOR-S, the imaging Spectropolarimetric Parallel Organized Reconstruction Server running iSPOR-DP, the Imaging Spectropolarimetric Parallel Organized Reconstruction Data Pipeline software package for the GREGOR Fabry-Pérot Interferometer, located at the 1.5m GREGOR Solar Telescope (Europe's largest solar telescope) on Tenerife, Canary Islands, Spain. Anybody interested can find more details on my personal webpage.

I think my actual thread implements both, hardware build and installation guide at the same time. I am sure that this high-end build finds manifold application, not only in science and research at universities or research institutions, engineering facilities, or medical labs, etc... The principal intention of my guide however is 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, MSI, etc.), different processor models (Broadwell-E, Haswell-E) and different Ram memory configurations (16-128GB) makes it affordable for anybody (also home office, audio and video editing/production, etc.) and allows its perfect adaptation for the specific purpose, requirements and available budgets. Finally it should be mentioned, that such a system now is able to run absolutely stable on a 24/7/365 basis. :thumbup:

In my opinion, X99 definitely deserves to be recognized by Tonymacx's buyer's guide, specifically when addressing possible Customac Pro or Customac High-End configurations.

I kindly invite all users with similar or different X99 configurations to provide their feedback on my guide and thread, although also many non-x99 boarders will be able to take profit of major parts of my guide. Of course, also their feedback is warmly welcome.

In an case many thanks for recognizing my thread on Tonymacx86 and all the support I received in the meanwhile!
It is a personal pleasure to be part of Tonymacx86! :clap::clap::clap:

:thumbup:!! Good Luck with my guide!!:thumbup:
View attachment 228925

:thumbup:!! Good Luck with my guide !!:thumbup:
----------------------------------------------------------------------------------------------------------------------------------------------
Im having a really hard time patching the bios, i always get an error in terminal. I have a x99 deluxe ii, and a 6800k. if anyone can help that would be great!
 
Last edited:
Also, i have A 256GB Samsung EVO ssd that has windows on it right now. I want to install osx on a 1tb Hard Drive to see if it works for me, and if it does is there any way i can transfer the data over to the ssd from the hdd?
 
Status
Not open for further replies.
Back
Top