Contribute
Register

Giacomoleopardo's Workstation Triplet

Status
Not open for further replies.
Joined
Apr 28, 2011
Messages
909
Motherboard
Asus Prime Z690M-Plus D4
CPU
i7-12700KF
Graphics
RX 6600
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Giacomoleopardo's Workstation Triplet
Intel® Core™ i7-6900K Processor - Asus X99-A II - EVGA GeForce GTX 980 Ti HYBRID GAMING
macOS Sierra 10.12.3 UEFI Clover step by step install method


full


Components

Asus Asus X99-A II Motherboard
https://www.amazon.com/dp/B01F854XAY/
http://www.newegg.com/Product/Product.aspx?Item=N82E16813132830

Intel® Core™ i7-6900K 20M Broadwell-E 8-Core 3.2 GHz LGA 2011-v3 140W
https://www.amazon.com/dp/B01FJLAIG0/
http://www.newegg.com/Product/Product.aspx?Item=N82E16819117645

EVGA GeForce GTX 980 Ti 06G-P4-1996-KR 6GB HYBRID GAMING
https://www.amazon.com/dp/B00Z0UX8TA/
http://www.newegg.com/Product/Product.aspx?Item=N82E16814487144

Carbide Series® Clear 400C Compact Mid-Tower Case - Corsair
https://www.amazon.com/dp/B017XPP9KK/
http://www.newegg.com/Product/Product.aspx?Item=N82E16811139072

2x CORSAIR Vengeance LPX 32GB (2 x 16GB) DDR4 SDRAM DDR4 3000 (PC4 24000) Desktop Memory Model CMK32GX4M2B3000C15R
https://www.amazon.com/dp/B01B1H2STG/
http://www.newegg.com/Product/Product.aspx?Item=N82E16820233986

Samsung 950 PRO Series - 512GB PCIe NVMe - M.2 Internal SSD (MZ-V5P512BW)
https://www.amazon.com/dp/B01639694M/
http://www.newegg.com/Product/Product.aspx?Item=9SIA12K3U60461

2x Samsung 850 PRO - 512GB - 2.5-Inch SATA III Internal SSD
https://www.amazon.com/dp/B00LF10KTO/
http://www.newegg.com/Product/Product.aspx?Item=N82E16820147361

Corsair Hydro Series H115i Extreme Performance Liquid CPU Cooler
https://www.amazon.com/dp/B019955RNQ/
http://www.newegg.com/Product/Product.aspx?Item=N82E16835181100

Corsair HXi Series, HX1000i, 1000 Watt (1000W), Fully Modular Power Supply, 80+ Platinum Certified
https://www.amazon.com/dp/B00M2UINT6/
http://www.newegg.com/Product/Product.aspx?Item=N82E16817139082

Gigabit Wireless Network Card BCM94360CD BT 4.0 802.11AC Dual-band
ebay

Asus ThunderboltEX II/DUAL Thunderbolt Adapter
http://www.amazon.com/dp/B000KS8S9W/
http://www.newegg.com/Product/Product.aspx?Item=N82E16817998020


Already owned

My three monitors:
- 27" Apple Cinema Display (MiniDisplay Port) - 2560 x 1440 - Audio via DisplayPort + USB
- 24" Apple Cinema Display (MiniDisplay Port) - 1920 x 1200 - no Audio
- 23,5 Asus VN247 (HDMI) - 1920 x 1080 - Audio via HDMI​

Apple Wired Keyboard
https://www.amazon.com/dp/B005DPF08E/
http://www.newegg.com/Product/Product.aspx?Item=9SIA37820R9906

My little skylake Hackintosh on ASRock Fatal1ty Z170 Gaming-ITX/ac + Intel® Core™ i7-6700


Comments

The story has been updated to the latest macOS Sierra (10.12.3 at the time of writing), guys! For reference, the original El Capitan install process has been moved to this post. That said let's go with the real deal, here.
Well, first of all, you're not sick, there are three computers above here.
Roma calling Milano, this time. Movie makers need power to work on a bunch of (amazing) projects. So I stepped in. Three identical machines with three different tasks (don't ask me: I'll find out in a couple of weeks in Roma). Oh, by the way: put into the vase an "old" Asus Z9PE-D8 WS Dual Socket with dual Xeon - E5-2687W 3,1 GHz in need of refresh, but this is another story...maybe next time.
Let's talk about hacking, here.
X99 motherboards are well known for the lack of support due to a total absence of Apple hardware. Nevertheless, a lot of guys (smarter than me) have reached stability and reliability. What we do know, is that PikeRAlpha has found a way to patch the Kernel for unsupported CPUs (Broadwell-E among them). Honestly, this is too much for my little knowledge. There are a few threads on insanelymac where this method has been successfully applied, but still: there are a lot of micro problems that could compromise the stability and the opportunity to update the system. I needed a workaround. Fast.
Then I found it (see next steps and credits).
Some other clarification:
- Movie making, rendering processes and no quadro GPUs? The bottom line was money first, furthermore post production guys told me they're already using a GTX 980. No need to exceed in Quadro GPUs . Well, I slightly disagree, but no need to argue: 980 Ti will do the job just fine, I trust them!
- The Samsung 950 Pro nvme will be the system drive, and they asked me precisely two sata SSDs 850 Pro in Raid 0 configuration due to 1 GB/s transfer rate.
- Pretty small case you would say, and firstly I thought the same thing, but I re-defined the internal ventilation. This picture talks for itself
full
- I had to study the PCI Express configuration and bandwidth sharing. First of all disabled ASMedia® USB 3.1 controller, which share bandwidth with the PCIe x16_2 and the PCIe x1_2. Since I don't need PCIe x1_2 nor usb 3.1 I decided to keep fully operational the PCIe x16_2. Furthermore the Asus ThunderboltEX II/DUAL (PCIe x4) works ONLY into the PCIe x16_4, but this one share bandwidth with PCIe x16_1. The only one working on PCIe gen 3.0 @16x is the PCIe x16_3. So here is my PCIe configuration

full

PAY ATTENTION! These rigs are not meant to be updated to macOS Sierra‎ 10.12.x for now. They need to work day and night. No further updates or any other sort of change. So this guide is El Capitan 10.11.6 based, period. Any suggestion is totally welcome to improve the performance or the stability, but keep in mind that in two weeks, I mean by the end of August 2016, I won't have them anymore.

What works
- SpeedSteps and Power Management - ONLY WITH SPECIFIC BIOS SETTINGS AND 3,5 GHz Turbo, no 4.0 nor Overclocking)
- Sleep, Autosleep and Wake
- Intel USB 2.0, 3.0 and ASMedia USB 3.1
- Thunderbolt II Dual controller (not tested, I don't have proper devices)
- Audio and HDMI Audio via HDMI and DisplayPort
- NVME protocol and performances
- Intel® I218V, 1 x Gigabit LAN Controller
- Dual Boot with Windows 10 Pro 64 bit
- Dual monitor is working plugging on first and last DisplayPort on this graphics card. I didn't have time to go deeper. Any suggestion about that (GFX1 on SSDT, or different PCI-e, or whatever could work and give us full multi-monitor support just like on El Capitan) would be more than welcome

What doesn't work
- ASMedia® USB 3.1 controller, not needed for now
- Wake from sleep. Most of us knows that this feature is often tricky. On Sierra something is going to break it, but I didn't have that kind of time in Rome, to go deeper, I mean.
So basically almost everything works, yes, something with smart workaround, and something is native. That's hackintosh, right?

Installation
Index
Tools
Step 1 - Patch and update Bios
Step 2 - Bios configuration
Step 3 - Pre Installation
Step 4 - macOS Sierra 10.12.X installation
Step 5 - Post installation

Tools:
- Latest Asus X99-A II bios (Version 801 1401 at the moment)
- CodeRush's UEFIPatch (attached here, as well)
- Clover Bootloader Installer
- Clover Configurator
- MaciASL Open Beta
- IORegistryExplorer 3.0.X (google for it) or IOJones
- macOS Sierra install App
- 8 GB (at least) USB pen drive
- A working Mac or Hackintosh​

Step 1 - Patch and update Bios
A wonderful feature that Asus implemented on this board is the Asus Bios Flashback. It allows to update bios without any kind of software, even without powering on the machine! Here are the steps.
- Download the latest proper bios
- Unzip UEFIPatch file, let's say, on Desktop (it's a folder, actually)
- Unzip the bios file and copy the X99-A-II-ASUS-1401.CAP file into the UEFIPatch folder
- Open Terminal and type "cd" (no quotes), leave a space and drag the UEFIPatch folder into the Terminal window, then press Enter
- Drag and drop the exec file UEFIPatch into the terminal window, and after that do the same with the X99-A-II-ASUS-1401.CAP file. Press enter and you will find a X99-A-II-ASUS-1401.CAP.patched file in the UEFIPatch folder: this is the patched (MSR 0xE2 unlocked) bios file!. The terminal window will be like this
full

- Now rename X99-A-II-ASUS-1401.CAP.patched into X99A2.CAP, that's because Bios Flashback process will read ONLY a .CAP file named in that way (at least for this motherboard, of course), and copy it onto a FAT formatted USB pen drive
- The last steps are explained in the motherboard manual: here's a picture of it

full

- As explained in post 130 on this very thread, you can find tons of infos about locked bioses here. To quote CodeRush this unlocking process allows "modern UEFI BIOSes from different vendors to prevent from locking MSR 0xE2 and therefore make the system with patched BIOS compatible with native OS X power management". Also PikeRAlpha gives us some relevant pieces of that here. A new bios version is out right now and you can do that with that version as well (1501).
At the end of it, basically, it will result in a better Power Management by macOS
- So, that's it: your motherboard has now an unlocked and updated bios.​


Step 2 - Bios configuration

- Boot pc
- Press Del key to gain Bios settings
- Press F7 for Advanced Mode
- Go to Exit and load Optimized Defaults
full


full

- Ai Tweaker set
  • Ai Overclock Tuner Manual
  • CPU Strap 100MHz
  • BCLK Frequency 100.0
  • ASUS Multicore Enhancement Disabled
full
  • CPU Core Ratio Sync All Cores
  • 1-Core Ratio Limit insert the value you wish: I found stability with a light overclock at 42 (that stands for 4200 MHz)
full
  • Internal PLL Overvoltage Disabled
  • Set your DRAM Frequency (2666MHz it's stable for me)
Attention! The only configuration with speedsteps enabled in OS X is to leave CPU Core Ratio as Auto. Otherwise my frequencies will be stuck at max turbo set. On the other hand, in this way I can reach 3,50 GHz Turbo (not 4.0 as Turbo Default for 6900K). Of course with no kernel support (see Step 3 - Pre Installation/Config.plist/Kernel and Kext Patches/FakeCPUID)!

full
- Ai Tweaker\Internal CPU Power Management set
  • Enhanced Intel SpeedStep Technology Disabled
  • Turbo mode Enabled
  • Long Duration Package Power Limit set as TDP of your CPU (140 for Intel i7 6900K)
  • Short Duration Package Power Limit set as TDP x 1,25 (175 for Intel i7 6900K)
full

- Advanced\CPU Configuration\CPU Power Management Configuration set
  • Enhanced Intel SpeedStep Technology 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
full

- Advanced\USB Configuration set
  • Intel xHCI Mode Enabled
  • EHCI Legacy Support Enabled
  • xHCI Hand-off Enabled
  • EHCI Hand-off Disabled
full

- Advanced\Onboard Devices Configuration\SPDIF Out Type as HDMI
- Advanced\Onboard Devices Configuration\PCIEX16_2 Slot Bandwidth as X4 Mode (ASMedia USB 3.1 will be disabled) Auto
- Asmedia USB 3.1 Controller as Enabled (in macOS Sierra this controller is OOB)
- Advanced\Onboard Devices Configuration\RGB LED lighting as off (if you don't like to much led on the board)

full
- Advanced\Onboard Devices Configuration\Serial Port Configuration as Off

full
- Advanced\Intel(R) Thunderbolt as ON
- Advanced\Intel(R) Thunderbolt\Security Level as Legacy Mode
- Advanced\Intel(R) Thunderbolt\AIC Location Group as CPU0 NB PCIE Slot
- Advanced\Intel(R) Thunderbolt\AIC Location as NB PCIE X16_4
- Advanced\Intel(R) Thunderbolt\Thunderbolt PCIe Cache-line Size as 128

Thanks to BoomR for the info about Thunderbolt settings

Attention! The Thunderbolt section in BIOS\Advanced will be available only after you install Windows 10 and the Asus ThunderboltEX II/DUAL driver. Sorry guys, you have to find a Windows 10 installer and go through that.

full


full
- Boot\Fast Boot as Disabled
- Boot\Setup Mode as Advanced Mode

full
- Boot\CSM (Compatibility Support Module)\Launch CSM as Disabled)

full
- Boot\Secure Boot\OS Type as Other OS

full

- Boot\Boot Option #1 as Clover start boot.efi at Mac... or UEFI OS (that means OS X) --> Leave this last steps for the post installation

full
- Press F10 key to Save and Reboot​


Step 3 - Pre Installation
We need to take care about a few things before the install process, to set up the USB install pendrive, such as:

Preparing bootable USB pen drive with UEFI Clover
  1. Make sure your Install macOS Sierra.app would be in Applications folder
  2. Plug your 8 GB USB in and open /Applications/Utilities/Disk Utility
  3. Open /Applications/Utilities/Disk Utility
  4. Highlight the USB drive in left column
  5. Click on the Erase upper button
  6. Scheme: GUID Partition Table
  7. Name: usb
  8. Format: Mac OS Extended (Journaled)
    full
  9. Click Erase (lower right button)
  10. Open /Applications/Utilities/Terminal
  11. Type the following, enter password (even if you don't see anything typed) and hit enter. This command completely erases the USB, then creates native macOS installer media from the Install macOS Sierra Application.
    Code:
    sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app --no interaction
  12. Upon completion, the USB will be renamed Install macOS Sierra
  13. Download the latest Clover installer from here
  14. Open Clover package installer
  15. Hit Continue, Continue, Change Install Location...
  16. Choose the USB, now called Install macOS Sierra
  17. Hit Customize and install Clover to the same USB with the following Custom Install settings:
    full
  18. Please note that EmuVarableUefi-64, along the option Install RC Script on target volume are mandatory for this motherboard. As stated from pokenguyen in this thread, I found that on this motherboard the NVRAM is not stable and can't keep data after reboot. That leads to issues like random boot failures, as long as no drivers injected correctly, rather than a general instability of the entire system. Quoting Pokenguyen: "You can install this by select "Install RC Script to target partition" in Clover. This is how Clover Installer saved NVRAM (up to Clover 2711). It utilizes OS X’s feature of loading /etc/rc.local when booting up, and /etc/rc.shutdown.local when shutting down, Clover Installer added execute scripts to save log files into rc.local and save nvram.plist into rc.shutdown.local". So that's it. It works!
  19. The USB EFI partition will be mounted
  20. In the next steps we'll set up the EFI partition

Clover's config.plist file set up
With the help of Clover configurator we can easily set up the config.plist file.
Here are the steps:
  1. Open Clover Configurator and open EFI\EFI\CLOVER\config.plist
  2. Section Acpi\DSDT: add Rename ALZA to HDEF in Comment, 414C5A41 in Find* [Hex], 48444546 in Replace [Hex]. This will be mandatory for Realtek ALC Audio
  3. Section Acpi\Select Smart UPS and Halt Enabler in the lower left corner
    full
  4. Boot Section:
    • darkwake=0 to correct wake with just one hit with keyboard, or mouse or whatever
    • flag on nvda_drv=1 and nv_disable=1 for unsupported nVidia Graphics Card (9xx Series)
    • Timeout 20. This is important. I noticed that Clover "takes a while" during boot, to recognize all the PCIe lanes and/or devices. A lower Timeout or worse Fast option will often results in hanging on the
      access denied sign. No worries, Clover, take your time!
    • npci=0x3000 flag (in some cases npci=0x2000 flag will be better)
    • XMPDetection=No not sure about that. It might be not mandatory, as a matter of fact I need to inject memory data (see SMBIOS section)
    full

  5. CPU section: set QPI to 100 and Type to 0x0A02 (for Broadwell-E processors)
    full
  6. Devices section: set Audio on 1
    full
  7. Gui section: I'm not sure about this settings to be mandatory. For me, this set up works, if you want to take a look.
    full
  8. Graphics section: NOTHING, that's important. Injection are provided by nVidia web drivers and SSDT
    full

  9. Kernel and Kext Patches:
    • Flag on KernelHaswellE to bypass some MSR blocks for series-E CPUs (seems to work for Broadwell-E as well)
    • FakeCPUID as 0x0306A0 to simulate supported Ivy Bridge CPUs. This would be non necessary if the Kernel would be correctly patched (an perhaps we would have full turbo steps and overclock AND power management!).
    • Kext to Patch. AppleUSBXHCIPCI patch to remove the limit of 15 USB connections, IOPCIFamily patch by Brumbaer (no boot without it --> mandatory for Broadwell-E with no patched kernel), AppleHDAController patch working along the SSDT for ALC on board audio on X99 chipset, IOAHCIBlockStorage patch to enable trim, AppleHDA (three different patches) patches by toleda for Realtek Audio (along the previous mentioned AppleHDAController patch), a bunch of IONVMeFamily patches for Samsung 950 Pro M.2, provided by PikeRAlpha and Mork vom Ork
    • Here's the text code for Kernel and Kext Patches section
      Code:
      <key>KernelAndKextPatches</key>
          <dict>
              <key>AppleRTC</key>
              <false/>
              <key>AsusAICPUPM</key>
              <false/>
              <key>Debug</key>
              <false/>
              <key>DellSMBIOSPatch</key>
              <false/>
              <key>FakeCPUID</key>
              <string>0x0306A0</string>
              <key>KernelCpu</key>
              <false/>
              <key>KernelHaswellE</key>
              <false/>
              <key>KernelLapic</key>
              <false/>
              <key>KernelPm</key>
              <false/>
              <key>KernelToPatch</key>
              <array>
                  <dict>
                      <key>Comment</key>
                      <string>_xcpm_pkg_scope_msr 10.12 © Pike R. Alpha</string>
                      <key>Disabled</key>
                      <true/>
                      <key>Find</key>
                      <data>
                      vgcAAAAx0uiU/P//
                      </data>
                      <key>Replace</key>
                      <data>
                      vgcAAAAx0pCQkJCQ
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>_xcpm_SMT_scope_msrs 10.12 © Pike R. Alpha</string>
                      <key>Disabled</key>
                      <true/>
                      <key>Find</key>
                      <data>
                      vgsAAAAx0uhZ/P//
                      </data>
                      <key>Replace</key>
                      <data>
                      vgsAAAAx0pCQkJCQ
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string> reboot fix 10.12db8 © Pike R. Alpha</string>
                      <key>Disabled</key>
                      <true/>
                      <key>Find</key>
                      <data>
                      VUiJ5UFXQVZBVUFUU1BBidZBifdIiftFhf8PhA==
                      </data>
                      <key>Replace</key>
                      <data>
                      w0iJ5UFXQVZBVUFUU1BBidZBifdIiftFhf8PhA==
                      </data>
                  </dict>
              </array>
              <key>KextsToPatch</key>
              <array>
                  <dict>
                      <key>Comment</key>
                      <string>t1-10.12-AppleHDA/Realtek ALC...</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      ihnUEQ==
                      </data>
                      <key>Name</key>
                      <string>AppleHDA</string>
                      <key>Replace</key>
                      <data>
                      AAAAAA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>t1-10.9-10.12-AppleHDA/Realtek ALC1150</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      ixnUEQ==
                      </data>
                      <key>Name</key>
                      <string>AppleHDA</string>
                      <key>Replace</key>
                      <data>
                      AAnsEA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>t1-AppleHDA/Resources/xml&gt;zml</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      eG1sLnps
                      </data>
                      <key>Name</key>
                      <string>AppleHDA</string>
                      <key>Replace</key>
                      <data>
                      em1sLnps
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily IONameMatch</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4=
                      </data>
                      <key>InfoPlistPatch</key>
                      <true/>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4=
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#6_7</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      icGB4f8PAABIAdFIgfn/DwAAdzs=
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      icGB4f8BAABIAdFIgfn/AQAAdzs=
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#11</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      AABJiY4iAQAAugAQAABIKQ==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      AABJiY4iAQAAugACAABIKQ==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#3</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      AMeDpAAAAAAQAABIi0gISA==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      AMeDpAAAAAACAABIi0gISA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#13</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      4b+AQBUGTYnWugAQAABFMQ==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      4b+AQBUGTYnWugACAABFMQ==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#4</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      SYnGTYX2dGFBwecMSWP/vg==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      SYnGTYX2dGFBwecJSWP/vg==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#12</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      yAAAAEkp17gAEAAATYskJA==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      yAAAAEkp17gAAgAATYskJA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#8</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      SYHF/w8AAEnB7QxJiwQkSA==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      SYHF/w8AAEnB7QlJiwQkSA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#9_10</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      BgIAAEyNuAAQAABMiflIgeEA8P//SYmGGgEAAEmJjiIB
                      AABBvAAQAABJKfQ=
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      BgIAAEyNuAACAABMiflIgeEA8P//SYmGGgEAAEmJjiIB
                      AABBvAACAABJKfQ=
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#15</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      Bf8PAABIwegMZvfB/w8PlQ==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      Bf8PAABIwegJZvfB/w8PlQ==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>Change 15 Port Limit To 26 in XHCI 10.12</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      g710////EA==
                      </data>
                      <key>MatchOS</key>
                      <string>10.12.x</string>
                      <key>Name</key>
                      <string>AppleUSBXHCIPCI</string>
                      <key>Replace</key>
                      <data>
                      g710////Gw==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#1</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      ibPwAgAAweAMBQAQAACJgw==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      ibPwAgAAweAJBQAQAACJgw==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#5</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      hv8PAABIwegMD7cPgeH/Dw==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      hv8PAABIwegJD7cPgeH/Dw==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#14</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      iWTY+EmBxAAQAABJgccA8A==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      iWTY+EmBxAACAABJgccA8A==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#17</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      RYTJD5XAD7bAweAMRAnYRA==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      RYTJD5XAD7bAweAJRAnYRA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>5960XPatch 10.12 by mano</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      SIH7AAAAQA==
                      </data>
                      <key>MatchOS</key>
                      <string>10.12.x</string>
                      <key>Name</key>
                      <string>IOPCIFamily</string>
                      <key>Replace</key>
                      <data>
                      SIH7AAAAgA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#16</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      weIIQQ+2wcHgDEQJ0EQJwA==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      weIIQQ+2wcHgCUQJ0EQJwA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>IONVMeFamily Pike R. Alpha Patch#2</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      D7aMiIIAAACD+QwPhTIBAA==
                      </data>
                      <key>Name</key>
                      <string>IONVMeFamily</string>
                      <key>Replace</key>
                      <data>
                      D7aMiIIAAACD+QkPhTIBAA==
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>TRIM Enabler</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      AEFQUExFIFNTRAA=
                      </data>
                      <key>Name</key>
                      <string>IOAHCIBlockStorage</string>
                      <key>Replace</key>
                      <data>
                      AAAAAAAAAAAAAAA=
                      </data>
                  </dict>
                  <dict>
                      <key>Comment</key>
                      <string>10.10-10.12+x99-ALC-Onboar-Audio</string>
                      <key>Disabled</key>
                      <false/>
                      <key>Find</key>
                      <data>
                      oIw=
                      </data>
                      <key>Name</key>
                      <string>AppleHDAController</string>
                      <key>Replace</key>
                      <data>
                      II0=
                      </data>
                  </dict>
              </array>
          </dict>
    full

  10. RT Variables section: BooterConfig set as 0x28 and CrsActiveConfig set as 0x67 (or 0x3). Check Tony's guide on this. For ROM and MLB fields I strongly recommend to read the iMessage Fix thread by jaymonkey or, at least, the brief version by P1LGRIM
    full

  11. SMBIOS section: Use the magic wand to choose MacPro 6,1 and generate a valid serial number. Also recommended the iMessage fix guides. As you can see from the screenshot down here, I needed RAM injection
    full
  12. System Parameters: Inject kext as Yes and select NvidiaWeb for 9 Series cards (Maxwell)
    full
  13. Save File and quit
Download my config.plist attached at the end of the post

Kexts folder set up
Open EFI\EFI\CLOVER\kext\10.12 and copy the attached kexts
  1. FakeSMC.kext mandatory for any hackintosh
  2. IntelMausiEthernet.kext by Mieze for Intel® I218V, 1 x Gigabit LAN Controller
  3. NullCPUPowerManagement.kext unfortunately still mandatory in this case
  4. realtekALC.kext injected by toleda's script for Realtek Audio
  5. USBInjectAll.kext along XHCI-x99-injector.kext by RehabMan for USB 2.0 and 3.0
  6. VoodooTSCSync.kext for 6 or more cores CPUs. Please remember to check VoodooTSCSync.kext\Contents\Info.plist, that must be
    Code:
    <dict>
                    <key>IOCPUNumber</key>
                    <integer>15</integer>
                </dict>
    where in my case 15 is correct (16 logic cores for Intel I7 6900K -1). If you are using a 6 cores CPU, then add 11 (12 logic cores -1)
  7. X99_Injector.kext to inject and activate AppleLPC

drivers64UEFI folder set up
  1. Open EFI\EFI\CLOVER\drivers64UEFI folder
  2. Download HFSPlus.efi from here and copy it in EFI/EFI/CLOVER/drivers64UEFI
  3. Remove VBoxHfs-64.efi from EFI/EFI/CLOVER/drivers64UEFI
  4. Download from here Test2-2016.efi by Nick Woodhams and put it into EFI\EFI\CLOVER\drivers64UEFI folder. Long story short: Clover seems to have some troubles with X99 systems allocating a lot of memory to PCIe devices. That results in random and quite disturbing hang on boot. More info here where Mr Woodhams found two solution: the first one is to delete from EFI\EFI\CLOVER\drivers64UEFI folder OsxAptioFix2Drv-64.efi (or OsxAptioFixDrv-64.efi) and replace it with his driver OsxAptioFix2Drv-free2000.efi. The second (good for me, it seems) is to add Test2-2016.efi to EFI\EFI\CLOVER\drivers64UEFI folder to work along the usual OsxAptioFixDrv-64.efi already installed by Clover itself. Please note that this is not the same problem I was talking about in Clover's config.plist file set up\Boot Section\Timeout 20, at least I guess they are not the same. Anyway: if you want to stay up to date, here's the Clover ticket still open.
Download my drivers64UEFI folder attached at the end of the post

ATTENTION! Due to possible issues with toleda's audio_CloverALC script for RealtekALC Audio that you'll need to run on post installation, I strongly recommend to delete from the Kext folder 10.12 attached, the realtekALC.kext file, plus, from config.plist attached, delete the three AppleHDA patch and the AppleHDAController one from Kernel and Kext Patches/KextToPatch. At first you won't have ALC Audio, but after run toleda's script, the realtekALC.kext file will be automatically put into EFI\EFI\CLOVER\Kext\10.12, the three AppleHDA patches will be in config.plist\Kernel and Kext Patches/KextToPatch as well, and the only thing you'll have left to do is to manually add the AppleHDAController patch you deleted before:
Name* AppleHDAController
Find* [HEX] A08C
Replace* [HEX] 208D
Comment 10.10-10.12+x99-ALC-Onboar-Audio

Here's the config for the USB drive without AppleHDA and AppleHDAController patches

The USB install drive is now ready to do the job. Jump to Step 4​


Step 4 - macOS Sierra 10.12.X installation
  1. Power on and press F8 key to get Boot menu
  2. Boot from UEFI USB (Uefi name of your USB)
  3. Follow the install process until desktop. If you have nVidia Maxwell card (9xx series) your graphics acceleration will be disabled, don't worry, soon we'll take care about that!
  4. Copy on desktop the Clover installer package from Install macOS Sierra partition of the USB pen drive
  5. Open Clover package installer
  6. Install Clover on the main OS partition (from now on "Mac partition") with the same settings as above
    full
  7. Mount USB EFI partition: open Applications/Terminal and type
    Code:
    diskutil list
    you'll see all the disks on your pc. Locate the EFI partition of the USB drive (for instance disk2s1) then type
    Code:
    diskutil mount /dev/disk2s1
    full
  8. Replace ACPI folder, kexts folder, drivers64UEFI folder and config.plist from USB EFI/EFI/CLOVER (usually White icon) to Mac EFI/EFI/CLOVER (usually internal icon or external orange one for some nvme drives)
  9. Download from here the latest nVidia Drivers for macOS Sierra, install them but DO NOT RESTART yet. Leave the nVidia installer open!
  10. Assuming that you have chosen Macpro6,1 System Definition, we need to take care about two mandatory things: Black Screen with MacPro 6,1 after reboot and MacPro 6,1 missing frequency vectors both thanks to the work of the usual PikeRAlpha (Thanks, man!). To fix the first one, there is a patch "on the fly" for Clover, but in my case that doesn't work, so the best solution is to inject directly /System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist with shilohh's script. More info and other workarounds in his thread. So run the patch and DON'T REBOOT yet!
  11. For the second issue, proceed manually through these steps:
    • Copy IOPlatformPluginFamily.kext from S/L/E to desktop, then copy it to another location (for backup)
    • Delete IOPlatformPluginFamily.kext from S/L/E (password required)
    • Empty trash
    • Open from Desktop IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents and you'll find a lot of .plist files: frequency vectors instruction are stored in some of those files. Mac-F60DEB81FF30ACF6.plist (MacPro 6,1 board id) doesn't have. Mac-27ADBB7B4CEE8E61.plist (iMac 14,2 board id) does have!
    • Copy Mac-27ADBB7B4CEE8E61.plist on desktop, rename it Mac-F60DEB81FF30ACF6.plist, then copy the new named file back into IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents replacing the original MacPro 6,1 file which doesn't have frequency vectors.
    • Make sure no other kexts are on desktop besides our modified IOPlatformPluginFamily.kext
    • Run KextBeast, run it and install in System/Library/Extentions
      full
    • Check in System/Library/Extentions: our modified IOPlatformPluginFamily.kext will be there!
    Please note that these steps (shilohh patch and modifying IOPlatformPluginFamily.kext do not survive to System Update
  12. Place the attached CodecCommander.kext, unzip it, copy it on Desktop and run again KextBeast with the same location (System/Library/Extentions). This kext is necessary to avoid faulty Realtek ALC 1150 Audio after wake from sleep. In fact, it could be installed in EFI/EFI/CLOVER/kext/10.12, but that didn't work for me.
  13. EFI/EFI/CLOVER/config.plist with Clover Configurator and remove the nv_disable=1 flag: with nVidia Drivers, AppleGraphicsDevicePolicy.kext patched (PikeRAlpha patch --> shilohh script) we'll have full acceleration graphics after reboot.
  14. Reboot


Step 5 - Post installation

Last steps:
  1. Enable Realtek® ALC1150
  2. Enable HDMI Audio via nVidia Graphics Card
  3. Change nvme icon from external orange to internal


Enable Realtek® ALC1150
  • Mount EFI partition of System disk: open Applications/Terminal and type
    Code:
    diskutil list
    you'll see all the disks on your pc. Locate the EFI partition of the OS X disk (for instance disk0s1) then type
    Code:
    diskutil mount /dev/disk0s1
    full
  • Connect the rig to internet, download from toleda's github repo audio_CloverALC-master, unzip audio_cloverALC-120.command.zip, run audio_cloverALC-120_v1.0f.command, a Terminal window will appear asking for password, type it (even if you don't see anything on Terminal), then type y for yes when the script asks you Confirm Realtek ALC1150 (y/n), again type y for Clover Audio ID Injection (y/n), once more type y for Use Audio ID: 1 (y/n). The result will be more or less like this
    full
  • Reboot and check System Preferences\Sound\Output
    full
  • No HDMI Audio via nVidia card? See next steps!​

Enable HDMI Audio via nVidia Graphics Card
  • Open IORegistryExplorer, in the upright corner search field type display0 and take a look at the results in the left column. As you can see from this picture, the NVDA device is in PCI0@0 > BR2A@2 > H000@0
    full
  • Download from toleda's github repo audio_hdmi_amd-nvidia-master, go to ssdt_hdmi-nvidia folder, unzip ssdt_hdmi-nvidia-BR3A.zip and open SSDT-HDMI-NVIDIA-BR3A.aml with MaciASL from the ssdt_hdmi-nvidia-BR3A unzipped folder.​
  • In MaciASL Find BR3A and Replace with BR2A (Replace All). Compile, Save and rename it SSDT.aml
    full
  • Put your custom SSDT.aml in EFI\EFI\CLOVER\ACPI\patched.​
  • Rebuild cache and repair pemission with my caches_rebuild.command attached to this post (password required)​
  • Reboot and check System Preferences\Sound\Output
    full

Change nvme icon from external orange to internal
  • If your nvme drive shows up as external, toleda (based on PikeRAlpha's patch on nvme) found a workaround. Possible injection via Clover Patch on the fly (not working for me), add _DSM in DSDT.aml (don't have one) or the same injection via custom SSDT.aml. So if you're confortable with SSDT.aml, follow next steps.​
  • Open IORegistryExplorer, in the upright corner search field type nvme and take a look at the results in the left column. As you can see from this picture, the nvme device shows up in PCI0@0 > BR1B@1,1 > H000@0
    full
  • Note the values that are showing up for your device​
  • Now download my attached SSDT-1.aml.zip, unzip it and open SSDT-1.aml with MaciASL and customize the highlighted values as in the picture, based on what you found on IOReg
    full
  • Compile, Save and put your custom SSDT-1.aml in EFI\EFI\CLOVER\ACPI\patched folder​
  • Please note that if you have an SSDT.aml for Power Management (not necessary, unfortunately, here), you have to rename other SSDTs.aml in SSDT-1.aml, SSDT-2.aml, SSDT-3.aml etc...​
  • Rebuild cache and repair pemission with my caches_rebuild.command attached to this post (password required)​
  • Reboot and check nvme icon​


CREDITS
  • Tonymac - For gathering info on Clover installation, test thread on Thunderbolt Cards
  • PikeRAlpha - Too many things to enumerate!
  • Toleda - For great support, guides, and infos
  • shilohh - For the very useful script
  • jaymonkey - For iMessage solution and huge work
  • Slice & co. - For the amazing Clover, what else?
  • Mieze - For LAN kext and a lot of support
  • Boomr - For useful info on Thunderbolth Cards
  • Nick Woodhams - For the workaround AllocateRelocBlock Error
  • Stinga11 - For useful info about X99 chipset
  • Brumbaer - For his patch on Broadwell-E CPUs
  • Silvia and Alan - For this opportunity
  • Azimuth1 - For nothing. Just wanted to say hello! (useful man :lol:)

END
See next post for screenshots and updates
 

Attachments

  • CodecCommander.kext.zip
    23.9 KB · Views: 1,224
  • caches_rebuild.command.zip
    669.7 KB · Views: 1,254
  • SSDT-1.aml.zip
    297 bytes · Views: 1,209
  • UEFIPatch_0.3.9_osx.zip
    1.9 MB · Views: 1,073
  • config.plist.zip
    3.9 KB · Views: 1,265
  • X99A II kexts.zip
    142.1 KB · Views: 1,280
  • drivers64UEFI.zip
    79.8 KB · Views: 932
  • configUSB.zip
    3.9 KB · Views: 944
Last edited:
UPDATE LOG
- August, 25th 2016 - Replaced config.plist file with added Quad Channel injection RAM and 8 slots count in SMBIOS section
- March, 18th 2017 - Thread updated for macOS Sierra 10.12.3 fresh install



SCREENSHOTS
  • Geekbench 3.4.1 64bit CPU @3,50 GHz (SpeedSteps working)
    full
  • Geekbench 3.4.1 64bit CPU @4,40 GHz (SpeedSteps NOT working)
    full
  • LuxMark v2.1 intel 64 --> GPU Test
    full
 
Last edited:
Excellent build description, giacomoleopardo! Thank you for providing a X99 Thunderbolt solution.
 
Excellent build description, giacomoleopardo! Thank you for providing a X99 Thunderbolt solution.
Thanks Stork, but please keep in mind that I simply gather infos around. Guys smarter than me have to be thanked to! ;)
 
Thanks Stork, but please keep in mind that I simply gather infos around. Guys smarter than me have to be thanked to! ;)
I understand. However, you consolidate that information to make it work and help others. :thumbup:
 
amazing guide! I wonder what minimum changes will I have to do to get 100% performance using a 5820k?

Congrats on the build!
 
Sorry mine looks slightly different from your pictures, giacomoleopardo. Could someone tell me what to change in the SSDT from to exactly? Also can you have more than one SSDT in the patched folder in clover? SSDT.aml and SSDT-1.aml etc


Screen Shot 2016-08-13 at 6.34.55 PM.png
 
Sorry mine looks slightly different from your pictures, giacomoleopardo. Could someone tell me what to change in the SSDT from to exactly? Also can you have more than one SSDT in the patched folder in clover? SSDT.aml and SSDT-1.aml etc
Try the attached one.
And yes: you can have more than one SSDT in EFI\EFI\CLOVER\ACPI\patched folder. The first one has to named SSDT.aml, than the other ones, SSDT-1.aml, SSDT-2.aml etc...
 

Attachments

  • SSDT nvme ekwipt.zip
    275 bytes · Views: 363
Last edited:
Status
Not open for further replies.
Back
Top