The Perfect Customac Pro - macOS High Sierra 10.13 on X99 - Full Success

Discussion in 'High Sierra Desktop Guides' started by kgp, Jul 12, 2017.

  1. kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Jul 12, 2017 at 3:52 PM #1
    kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Up and successfully running Broadwell-E/X99 with macOS High Sierra 10.13.4 (17DE199)!

    X99-10.13.4-17E199.png

    Abstract and Introduction:

    This Broadwell-E/EP, Hasell-E/EP, X99 Build and macOS High Sierra 10.13 Desktop User Guide is the logical continuation of my Broadwell-E/EP, Hasell-E/EP, X99 Build and macOS Sierra 10.12 Desktop User Guide: The Perfect Customac-Pro: X99-A II, i7-6950X, 128GB G.Skill TridentZ, Aorus GTX TI Xtreme (hereafter, Sierra Desktop Guide). Note that just recently, I released my brand new iMac Pro Skylake-X/X299 Build and Desktop Guides for macOS Sierra 10.12 macOS and High Sierra 10.13 to live already now the future: Skylake-X/X299 - Live the future now on macOS Sierra 10.12 [Successful Build/Extended Guide] and Skylake-X/X299 - Live the future now on macOS High Sierra 10.13 [Successful Build/Extended Guide].

    This guide might still marginally grow in the future thanks to your estimated and appreciated user feedback. However, it is nice to see that my X99 system behaves absolutely stable and is fully functional, including native Handoff and Airdrop and even forced Sleep/Wake functionality.

    Let me first briefly summarise my actual build, which constitutes the base for this macOS High Sierra Desktop Guide. Note however that like in case of 10.12 macOS Sierra, there should be also compatibility of my guide with all Broadwell-E/EP and Haswell-E processors and most X99 mobos (ASUS, GYGABYTE, ASRock, MSI etc.). During the last months, I received even success feedback of users with Broadwell-EP/Haswell-EP processers with up to 22 cores (44 threads) at clock speeds around 2.8 Ghz each thread, making X99 to a "realtively cheap" alternative to iMac Pro Systems. In detail, success with my 10.13 Desktop Guide has been reported for the ASUS X99 Deluxe II by users @Obecny (i7-6900K), @GDS (E5-2696V4), @wayne2401 (i7-6900K), @duckgrossberg (i7-6950X) and @Whydotheneedthis (i7-6850K), the Asus X99 Sabertooth by user @Pears (i7-6950X) and once more for the Asus X99-A II by user @dragoonchang (E5-2696V3). Further user feedback for other mobo and CPU configurations as well as suggestions for further improvements and modifications are highly welcome and will be considered and implemented if adequate and applicable.

    Before starting with all detailed instructions, please find a Table of Content that provides an overview of the individual topics addressed within this guide:

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

    Table of Contents:

    A.) Hardware Summary

    B.) Mainboard BIOS
    B.1) ASUS BIOS Firmware Patching
    B.2) ASUS X99-A II BIOS Configuration

    C.) Important General Note/ Advice and Error Prevention

    D.) MacPro macOS 10.13 High Sierra System Setup
    D.1) MacPro EFI-Folder Preparation
    D.2) MacPro macOS High Sierra 10.13.4 (17E199) Installer Download Procedure
    D.3) MacPro macOS High Sierra 10.13.4 (17E199) USB Flash Drive Installer Creation
    D.4) macPro macOS High Sierra 10.13.4 (17E199) Clean Install on Broadwell-E/EP/Haswell-E/EP X99
    D.5) MacOS High Sierra Update from earlier macOS distributions as well as future MacPro macOS High Sierra Update Procedures

    E.) Post Installation Process
    E.1) Graphics Configuration
    E.2) Audio Configuration
    E.3) USB Configuration
    E.4) M.2/NVMe Configuration
    E.5) SSDT TRIM Support
    E.6) Xnu CPU Power Management (XCPM) Configuration
    E.7) Enhanced Intel SpeedStep Technology (EIST) and PMDrvr.kext
    E.8) Overclocking
    E.9) ASUS X99-A II PCI Deice Implementation - Sleep/Wake Functionality
    E.9.1) ACPI DSDT Replacement Patching Table Implementation
    E.9.2) SSDT-ASUS-X99-A-II.aml PCI Implementation
    E.9.2.1) HDEF - onboard Audio Controller PCI Implementation
    E.9.2.2) GFX1, HDAU - Nvidia Graphics Card and HDMI/DP Audio PCI Implementation
    E.9.2.3) IMEI - onboard Intel Management Engine Interface (IMEI) Controller PCI Implementation
    E.9.2.4) Glan - onboard LAN Controller PCI Implementation
    E.9.2.5) XHCI - onboard Extended Host Controller Interface (XHCI) PCI Implementation
    E.9.2.6) ASMedia ASM1142 USB3.1 Controller PCI Implementation
    E.9.2.7) SAT1 - Intel AHCI SATA Controller PCI Implementation
    E.9.2.8) EVVS - Intel X99 sSata Controller PCI Implementation
    E.9.2.9) NVMe Controller PCI Implementation
    E.9.2.10) Inateck KTU3FR-502U XHC 7-Port USB 3.0 Controller PCI Implementation
    E.9.2.11) ARPT - OSX WIFI Broadcom BCM94360CD 802.11 a/b/g/n/ac + Bluetooth 4.0 AirPort Controller PCI Implementation
    E.9.2.12) ThunderboltEX 3 Controller Implementation
    E.9.2.13) DTGP Method

    E.10) Hardware Monitoring

    E.11) System Overview CPU Cosmetics

    F.) Benchmarking
    F.1) i7-6950X CPU Benchmarks
    F.2) Gigabyte AORUS GTX 1080 Ti 11GB Xterme Edition OpenGL and Metal Benchmarks
    F.3) Blackmagic Disk Speed Benchmarks

    G.) Summary and Conclusion

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

    Now enjoy and have have fun with the detailed guidelines below.

    A.) Hardware Summary

    Motherboard:
    Asus X99-A II
    CPU: I7-6950X(10-core)
    RAM: 128GB KIT (8x16GB) G.Skill TridentZ (F4-3200C14Q2-128GTZSW)
    System Disk: Samsung 850 EVO 1TB (SSD) / Samsung 960 EVO 1TB (NVMe, M.2)
    RAID: 3x Western Digital Red Pro 6TB (18TB);
    Graphics: Gigabyte AORUS GeForce® GTX 1080 Ti Xtreme Edition 11G (GV-N108TAORUS X-11GD)
    Wifi + Bluetooth:
    OSXWIFI PC/Hackintosh - Apple Broadcom Bcm94360cd - 802.11 A/B/G/N/AC + Bluetooth 4.0 PCIe
    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.
    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)

    screen.png

    For further details see my Sierra Desktop Guide.

    B.) ASUS Mainboard BIOS

    Please find below a detailed instruction for ASUS X99 mainboard BIOS Firmware patching, as well as a summary of my actual Asus X99-A II BIOS configuration.


    B1.) ASUS Mainboard BIOS Patching

    On a real Mac with native OSX XCPM power management, the MSR 0xE2 register is unlocked and therefore writeable. However, on ASUS mobos this register is usually read only. This is also the case for all ASUS X99 mobos. When the kernel tries to write to this locked register, it causes a kernel panic. This panic can happen very early in the boot process, with the result that your system freezes or reboots during the boot process. We can circumvent the MSR 0xE2 register write with a dedicated KernelToPatch entry in the config.plist, namely "xcpm_core_scope_msrs © Pike R. Alpha" and by enabling the "KernelPM" in the config.plist in Section "Kernel and Kext Patches" of the Clover Configurator. See Section E.1) for further details.

    However, thanks to CodeRush's Longsoft UEFIPatch distribution and sophisticated MSR 0xE2 Register patches, we are able to successfully patch any ASUS X99 mainboard BIOS distribution and unlock the MSR 0xE2 register. This makes the "xcpm_core_scope_msrs © Pike R. Alpha" KernelToPatch entry obsolete and allows full native read/write MSR 0xE2 register access by the OSX kernel. The patched ASUS mainboard BIOS firmware finally can be uploaded each specific ASUS X99 mainboard by means of the ASUS EZ BIOS Flashback Procedure.

    The individual steps for the ASUS X99 BIOS Patching are detailed below:

    1.) Download and unzip the CodeRush's UEFI patch (attached towards the bottom of this guide) to your Desktop.

    2.) To patch the latest BIOS for your ASUS mobo, download the most actual BIOS version from the ASUS mobo support page (e.g., follow the subsequent link to obtain the latest BIOS Version for the Asus X99-A II).

    3.) Unzip the bios file and copy the CAP file into the UEFIPatch directory on your Desktop.

    4.) Open a terminal; type "cd " and drag the "UEFIPatch"-folder on your Desktop into the Terminal window and press "Enter". One can also use the terminal command equivalent:

    Code (Text):
    cd ~/Desktop/UEFIPatch_0.3.9_osx/
    Note that this step is important to successfully execute the UEFI-Patch procedure! You must be in the UEFIPatch directory on your terminal, in order to successfully execute step 5.) below!

    Once in the UEFIPatch directory on your terminal, drop the "UEFIPatch"-executable into the terminal window; Also drop the most actual BIOS CAP file into the terminal window; Press enter to execute the "UEFIPatch"-procedure. The equivalent terminal command is:

    Code (Text):
    ./UEFIPatch X99-A-II-ASUS-1701.CAP
    by assuming that you want to patch the latest X99-A-II-ASUS-1701.CAP BIOS-files for the ASUS X99-A II. For other mobos, please adapt the adequate BIOS CAP-filename in the command!

    During the patch procedure, you will see something like the following message, which can be simply ignored:

    Code (Text):
    parseImageFile: Aptio capsule signature may become invalid after image modifications
    parseSection: section with unknown type 52h
    parseFile: non-empty pad-file contents will be destroyed after volume modifications
    parseSection: section with unknown type 52h
    parseFile: non-empty pad-file contents will be destroyed after volume modifications
    patch: replaced 6 bytes at offset F69h 0FBA6C24400F -> 0FBA7424400F
    Image patched
    6.) You will now find a ***.CAP.patched BIOS-file in the UEFIPatch folder, which is your patched (MSR 0xE2 unlocked) BIOS file.

    7.) Rename the ***.CAP.patched BIOS file to X99A2.CAP, the required filename for the ASUS X99-A II BIOS Flashback procedure. Note that the required filename varies for each ASUS mobo. For details see the ASUS BIOS Flashback filename convention.

    8.) Copy the X99A2.CAP (or it's derivative in case you use a different ASUS mobo) to a FAT-formatted USB2.0 storage device.

    9.) Shut-down your hack, connect the USB2.0 storage device to the USB-port assigned to the ASUS BIOS Flashback procedure (see the mobo manual for details). Press the BIOS-Flashback button for three seconds until the flashback-led starts to blink, indicating that the BIOS Flashback is in progress. Release the button. The locations of the BIOS-Flashback button and the USB-port assigned to the BIOS-Flashback procedure on the ASUS X99-A II are indicated in the figure below:

    Flashback.png

    10.) Wait until the Flashback-led stops blinking and turns off, indicating that the BIOS Flashback process as been successfully completed. You now successfully installed the most actual patched BIOS, compatible with native OSX/MacOS power management.

    11.) Boot your system and apply the BIOS settings described below.


    B.2) ASUS X99-A II BIOS Configuration

    bios.jpg

    The BIOS settings for macOS High Sierra 10.13 are identical with the BIOS settings for macOS Sierra 10.12 and can be directly retrieved from my Sierra Desktop Guide but are also summarized here below for the sake of simplicity.

    To overclock your RAM memory in concordance with your RAM specifications, enable the EZ XMP Switch on your ASUS Mainboard and enable posteriorly XMP in the Standard ASUS BIOS Setup mode (F7). Subsequently switch from standard to advanced ASUS BIOS Setup mode by pressing again F7.

    BIOS-Settings.png

    Press F7 and subsequently F10 key to change to "Standard Mode", Save and Reboot

    Important Note:

    "ASUS MultiCore Enhancement": When set to "Auto", MCE allows you to maximise the overclocking performance optimised by the ASUS core ratio settings. When disabled, MCE allows to set to default core ratio settings.

    "Sync All Cores": Tremendous increase in CPU performance can be achieved with the CPU Core Ratio set to "Sync All Cores". In case of i9-7980XE stock settings (4.4 Ghz, Sync All Cores), the Geekbench score difference is approx. 51.000 (disabled) compared to 58.000 (enabled)! Note however, that Sync All Cores should be used only in case of the availability of an excellent and extremely sophisticated water cooling system! Otherwise, CPU Core Ratio should be set to "Auto". Further note that with CPU Core Ratio set to "Sync All Cores", the AVX Instruction Core Ratio Negative Offset must be set to "3" and the AVX-512 Instruction Core Ratio Negative Offset must be set to "2". Without the correct core ratio offsets, your system might become unstable with CPU Core Ratio set to "Sync All Cores"!

    VT-d Note: For compatibility with VM or parallels, VT-d can be also ENABLED... Verify however, in this case that in your config.plist the boot flag "dart=0" is checked under Arguments in the "Boot" Section of Clover Configurator! The boot flag "dart=0" is now implemented by default in config.plist of the EFI-Folder contained in EFI-X99-10.13.4-Release-020418.zip in line with the boot flag implementation "slide=0".

    Above 4G Decoding Note: I always assumed that the latter BIOS functionality would be mandatory for successfully operating the ThunderboltEX 3 PCie adaptor. This is definitely not the case. Thus in contrary to the BIOS Settings Table above I now rather recommend to DISABLE the latter BIOS functionality (Above 4G Decoding: off), as it also seems to affect the system sleep/wake functionality when enabled.


    C.) Important General Note/Advice and Error Prevention

    Please note the following important General Note / Advice and Error Prevention, when setting up your X99 System by implementing the latest macOS High Sierra 10.13 distribution.

    Before entering the detailed description of the individual System Upgrade Options from previous versions of macOS High Sierra 10.13 or the Clean Install of macOS High Sierra 10.13.4 (17E199), please consider the following error prevention.

    1.) Note that the /EFI/Clover/drivers64UEFI/-directory of EFI-X99-10.13.4-Release-020418.zip implements a totally new approach, namely AptioMemoryFix.efi developed by @vit9696, which successfully replaces OsxAptioFix2Drv-free2000.efi.

    Note that AptioMemoryFix.efi is under permanent development. For further details and to access the ongoing discussion to the topic follow THIS LINK.

    To retrieve the most actual version, download and compile the AptioMemoryFix.efi Source Code from Github by means of AptioMemory-Builder.sh developed by @Pavo, using the following terminal commands:

    Code (Text):
    rm -rf AptioMemFix

    git clone https://github.com/Pavo-IM/AptioMemFix
    rm -rf ~/Desktop/AptioMemFix/
    rm -rf ~/Desktop/AptioFix/
    mv AptioMemFix/ ~/Desktop/
    chmod +x ~/Desktop/AptioMemFix/AptioMemory_Builder.sh
    ~/Desktop/AptioMemFix/AptioMemory_Builder.sh
     
    This will create "AptioFix" and "AptioFix_Build" folders on your Desktop. Now you can copy the most actual compiled AptioMemoryFix.efi release from ~/Desktop/AptioFix_Build/RELEASE/ to the /EFI/Clover/drivers64UEFI/ directories in the EFI-Folders of your macOS USB Flash Drive Installer and macOS System Disk. Don't forget to remove OsxAptioFix2Drv-free2000.efi from the /EFI/Clover/drivers64UEFI/ directories in the EFI-Folders of your macOS USB Flash Drive Installer and macOS System Disk.

    Note that with Clover_v2.4k_r4392, AptioMemoryFix.efi has become an official Customization Option of Clover and can now be selected and therefore also just easily implemented in the frame of the Clover Boot Loader Installation.

    AptioMemoryFix.efi works absolutely flawless on my system, without any memory allocation errors or slide issues with the "slide" boot flag disabled. Note that also with AptioMemoryFix.efi, Clover's RC Scripts have to be omitted during the clover boot loader installation. If already previously installed, remove Clover's RC Scripts from the /etc directory of your macOS USB Flash Drive Installer or System Disk with the following terminal commands:

    Code (Text):
    sudo rm -rf /etc/rc.boot.d
    sudo rm -rf /etc/rc.shutdown.d


    2.a.) ATI Starter Graphics Cards solutions like the ATI Radeon RX 560 or RX 580 just require two basic kexts in the /EFI/Clover/kexts/Other/ directory of the EFI folders on both USB Flash Drive Installer and 10.13 System Disk , i.e. namely WhateverGreen.kext v1.1.7 and Lilu.kext v1.2.2.

    Advanced ATI Vega 64 and Frontier GPUs are natively implemented by OSX and run Out of Box (OoB). No need for an additional Whatevergreen.kext and Lilu.kext implementation. Remaining HDMI/DP port errors, hot plug errors and flaws with multi-monitor or 5K display configurations can be fixed by means of VegaGraphicsFixup.kext, kindly provided by @jyavenard. Important notifications for all Vega users with 4K monitors: When connecting e.g. the Vega Frontier with e.g. the LG 38UC99-W (WUHD, 3840 pix x 1600 pix) via one of the Display Ports (DPs), the screen resolution is fine under both Windows 10 and macOS High Sierra but is totally at odd during boot (VGA like boot screen resolution). @DSM2 reported similar issues with his true 4K display. Thus the VEGA DP 4K boot screen resolution issue is not related with the fact that the LG 38UC99-W is a ultra-wide (3840x1600) and not a true UHD (3840x2160) monitor. It is definitely a Vega firmware problem in combination with 4K displays, as the DP 4K boot screen resolution issue is totally absent with my Nvidia GPU and the problem also does not only affect the ASUS Splash Screen but also spreads over the entire boot process until the login screen is reached (Windows and macOS). Splash Screen, Apple logo or verbose boot messages are not stretched but rather have VGA like resolution. Any fix of the AMD vBIOS would be highly appreciated. It is more than disappointing to witness such issues with 1000$ GPUs... Fortunately, the 4K boot screen issue is restricted to the Vega DP ports and likely due to the fact that the LG 38UC99-W only supports DP 1.2. Solution: Connect your Vega and your 4K display via the HDMI port and everything will work as expected.

    b.) Nvidia Kepler Graphics Cards were already natively implemented in the earlier beta distributions of macOS 10.13.

    All Users with Maxwell and Pascal Nvidia Graphics Cards on SMBIOS MacPro6,1 can employ officially distributed Nvidia 10.13 Web Drivers for their Nvidia Pascal and Maxwell graphics cards! Users reported lagging UI issues with the most recent Nvidia Web Driver 387.10.10.10.30.103 for 10.13.4 (17E199) when using Maxwell GPUs, while this Web Drivers seems to work flawless with Pascal GPUs. Maxwell GPU Users can alternatively use the Web Driver WebDriver-78.10.10.10.25.106 after the simple patching procedure detailed blow. Future 10.13.5 Public Beta users can either use WebDriver-78.10.10.10.25.106 or 387.10.10.10.30.103 after the same Web Driver patching procedure.

    For further details and error prevention see Section E.1).


    3.) Avoid any MacOS assignments in KextToPatch and KernelToPatch entries implemented in the "Kernel and Kext Patches" Section of the Clover Configurator. If subsequently in my Guide you still find MatchOS assignments in respective figures or text, just ignore all likely yet persistent MatchOS assignments. In the config.plist of the EFI-Folder contained in EFI-X99-10.13.4-Release-020418.zip, all MatchOS assignments have been definitely removed.

    4.) Note that non ASUS mobo owners might have to check the "KernelPm" entry in the "Kernel and Kext Patches" Section of the Clove Configurator to successfully boot the 10.13 MacOS USB Flash Drive Installer or 10.13 System Disk! However, this entry is currently unchecked in the config.plist of the EFI-Folder contained in EFI-X99-10.13.4-Release-020418.zip for all ASUS boarders.

    Kernel-PM.png

    5.) Always check that you have the actual apfs.efi in the /EFI/CLOVER/drivers64UEFI/ - directory of your USB Flash Drive Installer and System Disk!

    The actual apfs.efi can be obtained by following the respective guideline detailed below:

    a.) Download and install Pacifist for Mac.

    b.) Copy the "Install macOS High Sierra.app" to your Desktop -> right-click with your mouse on the app and select "Show Package Contents" -> click with the mouse on "Contents" and subsequently on "Shared Support" -> right-click with the mouse on "BaseSystem.dmg" and select "Open With" -> select "pacifist.app". Pacifist is now loading the "BaseSystem.dmg" package contents.

    c.) Now click with the mouse on "usr" -> "standalone" -> "i386". After a right-click on apfs.efi, select "Extract to Custom Location...". Choose your Desktop as Destination. Answer the subsequent question "Extract apfs.efi ?" with "Extract". You now have the most actual version of apfs.efi on your Desktop.

    d.) Note that the EFI-Folder EFI-X99-10.13.4-Release-020418.zip contains a patched apsf.efi without verbose boot. The respective patching procedure and the related discussion can be derived by following THIS LINK. Credits to PMheart and ErmaC from InsanelyMac.

    e.) If necessary (usually the /EFI/CLOVER/drivers64UEFI/ - directory of my distributed EFI-Folders already containsthe most actual apfs.efi version), copy the actual patched apfs.efi to the /EFI/CLOVER/drivers64UEFI/ - directories of your USB Flash Drive Installer and System Disk!

    6.) To avoid boot problems and for sleep/wake functionality, it is absolute mandatory to have VoodooTSCSync.kext in the
    /EFI/CLOVER/kexts/Other/ directory of both USB Flash Drive and System Disk.

    Please note that the VoodooTSCSync.kext.zip attached at the end of this originating post/guide is configured for a 10-core CPU (12 threads) like the i7-6950X. To adopt the kext for Skylake-X processers with more or less than 10 cores, apply the following approach:

    a.) Download and unzip the VoodooTSCSync.kext.zip attached at the end of this originating post/guide to your desktop.

    b.) Right-click with the mouse on the VoodooTSCSync.kext file and select "Show Packet Contents".

    c.) Double-click with the mouse on /contents/ . After a right-click on the "Info.plist" file, select "Open with / Other". Select the TextEdit.app and edit the "Info.plist" file.

    d.) Use the "find"-function of TextEdit.app and search for the term "IOCPUNumber"

    e.) Note that the adequate IOCPUNumber for your particular Skylake-X processor is the number of its threads -1, by always keeping in mind that the number of it's threads is always 2x the number of it's cores.

    Thus in case of the 10 core i7-6950X, the IOCPUNumber is 19 (20 threads - 1).

    Code (Text):
    <key>IOCPUNumber</key>
    <integer>19</integer>
    By following this methodology, the correct IOCPUNumber for the 8-core i7-6900K would be (16 threads -1)

    Code (Text):
    <key>IOCPUNumber</key>
    <integer>15</integer>
    and the IOCPUNumber for the 6-core i7-6800K would result in (12 threads -1)

    Code (Text):
    <key>IOCPUNumber</key>
    <integer>11</integer>
    f.) After adopting the IOCPUNumber for your particular Skylake-X processor, save the info.plist file and copy the
    modified VoodooTSCSync.kext to the /EFI/CLOVER/kexts/Other/ - directories of both USB Flash Drive Installer and System Disk!

    7.) Already during the last Beta Versions of macOS 10.13 High Sierra, Apple forced the beta users to use the new Apple file system APFS in case of a Clean Install/update of MacOS High Sierra 10.13. Also within macOS High Sierra 10.13.4 (17E199) this is the case. Most APSF incompatibilities with available system related software apparently have been already removed. The actual version of Carbon Copy Cloner (CCC) now supports the direct cloning of APFS system disks and hereby enables the previously missing option for APFS system backups. Until Boot-Loader Distribution Clover_v2.4k_r4210, it was also impossible to install the Clover Boot-Loader in the EFI-Partition of an APFS System Disk by means of the Clover Boot-Loader Installer Package. However, with any actual Clover Boot-Loader Distribution, the Clover Boot-Loader Installation works absolutely flawless on APFS System Disks.

    Note that there is no way to convert an APFS disk back to HFS+ without the loss of all data, but one can easily reformat an APFS formatted disk to HFS+ under OSX by using either Apple's Disk Utility App or "diskutil" commands. All you need to do is to previously unmount the APFS volume before erasing it with a journaled HFS+ file system and a GRUB Partition Table (GTP). If you want to maintain the disk's content, perform a backup before erasing the disk with a HFS+ format.

    The application of Apple's Disk utility is straight forward. The "diskutil" equivalent is detailed below:

    In the Terminal app, type:

    Code (Text):
    diskutil list
    In the output which you can read by scrolling back, you will find all internal disks named /dev/disk0, /dev/disk1, depending upon how many physical disks are present in your system.

    Make a note of the disk identifier for the disk you intend to format (you can eliminate risk by removing all disks but the intended target).

    In the Terminal app, type:

    Code (Text):
    diskutil unmount /dev/diskX
    where diskX is a place holder for the disk to be unmounted.

    Subsequently, you can erase the entire disk with HFS+ and a GPT by typing the following terminal command:

    Code (Text):
    diskutil partitionDisk /dev/diskX 1 GPT jhfs+ "iMacPro" R
    where /dev/diskX is again a place holder for disk to be erased and iMacPro would be the label for the single partition created. The remaining 1 GPT jhfs+ and R arguments tell diskutil to create a single partition, within a GUID partition table, formatted as Journaled HFS+ and using the entire disk, respectively.

    Alternatively one can also use the following terminal command:

    Code (Text):
    diskutil partitionDisk /dev/diskX GPT JHFS+ iMacPro 0b
    where /dev/diskX is again a place holder for disk to be erased and iMacPro is again the label for the disk partition created. The GPT HFFS+ and 0b arguments again tell diskutil to create a single partition, within a GUID partition table, formatted as Journaled HFS+ and covering the entire disk, respectively.

    In the Terminal app, type now:

    Code (Text):
    diskutil mount /dev/diskX
    where diskX is again a place holder for the disk to be remounted.

    Note, that by means of the "diskutil approach", brand new unformatted or not compatibly formatted system NVMe, SSD and HDD system drives can be also directly formatted within the macOS Clean Install procedure. When presented with the initial install screen where you are presented options to Restore From Backup or Install, select Terminal from the Utilities menu bar item;

    The "diskutil" terminal approach is also able to convert a HFS+ macOS High Sierra 10.13 System Disk to APFS. To do so enter the following terminal command:

    Code (Text):
    diskutil apfs convert /dev/diskX
    where diskX is again a place holder for the HFS+ disk to be converted to APFS. The same procedure again can also be directly performed by means of Apple's Disk Utility.

    If you opt for an APFS System Disk implementation, please note that all other disks on your system also should be formatted with APFS. On systems with APFS disks and non-APFS disks, the boot duration will increase, as apsf.efi will perform a fsck check of non-AFPS disks (like HFS+ or Fat32) during boot. However, dual boot APFS Systems with an NTFS Windows System Disk are not effected by the apsf.efi issue, as OSX does not know how to properly deal with NTFS.

    8.) To clearly get kernel panic images with a call trace in case of kernel panics, I implemented (checked) boot flags "debug=0x100" and "keepsyms=1" in the config.plist of EFI-X99-10.13.4-Release-020418.zip in the "Boot" Section of Clover Configurator under "Arguments".

    9.) Note that in the current EFI-X99-10.13.4-Release-020418.zip distributions, I also removed CsmVideoDxe-64.efi from /EFI/CLOVER/drivers64UEFI, as the latter file is only required for proper Legacy screen resolution purposes with CSM enabled, which is definitely not our case.


    D.) MacPro macOS 10.13 High Sierra System Setup

    Below, one finds a detailed description for the Clean Install of macOS High Sierra 10.13.4 (17E199) (D.4). This also includes the MacPro EFI-Folder Preparation (D.1) as well as the Mac Pro macOS High Sierra 10.13.4 (17E199) Full Package Download Procedure (D.2) and the Mac Pro macOS High Sierra 10.13.4 (17E199) USB Flash Drive Installer Creation (D.3). One also finds detailed instructions for the MacOS High Sierra update from earlier MacOS distributions as well as for future Mac Pro macOS High Sierra Update Procedures.


    D.1) MacPro EFI-Folder Preparation

    In order to successfully boot a macOS USB Flash Drive Installer or System Disk on a Hackintosh system, both drives must be equipped with an EFI-Folder in their EFI partitions. In this Section we will prepare a fully equipped EFI-Folder with SMBIOS MacPro6,1 System definition.

    1.) Download and unzip EFI-X99-10.13.4-Release-020418.zip attached at the bottom of this originating post/guide and copy the therein contained EFI-Folder to your Desktop.

    2.) Open the config.plist in /EFI/Clover/ with the latest version of Clover Configurator (>/= v.4.60.0), proceed to the "SMBIOS" Section and complete the SMBIOS MacPro6,1 Serial Number, Board Serial Number and SMUUID entries. These details are mandatory to successfully run iMessage and FaceTime on your iMac Pro System. Note that all other MacPro6,1 SMBIOS Details are already implemented in the config.plist of EFI-X99-10.13.4-Release-020418.zip.

    In order to successfully run XCPM with Pike Alpha's ssdtPRGen.sh and ssdt.aml, you have to maintain the MacPro6,1 SMBIOS entries already implemented in the config.plist in the distributed EFI-Folder.

    i.) Press several times the "Generate New" Button next to serial number text field. Copy the serial number and perform the serial number check on http://www.everymac.com/ultimate-mac-lookup/ by following @P1LGRIM 's related instructions in "An iDiots's Guide To iMessage".

    ii.) Also perform the serial number check on https://checkcoverage.apple.com by following @P1LGRIM 's related instructions in "An iDiots's Guide To iMessage". If all checks have been past successfully, proceed to point iii.) below.

    iii.) Note that the latest versions of Clover Configurator already correctly implements the Board Serial Number in parallel. Thus one can skip the related description in@P1LGRIM 's "An iDiots's Guide To iMessage".

    iv.) In the final step, open a terminal, enter repeatedly the command "uuidgen", and copy the output value to the SMUUID field in the "SMBIOS" Section of the Clover Configurator.

    3.) Depending on your system configuration (Broadwell-E/EP or Haswell-E/EP) change or adopt the following settings if necessary:

    a.) CPU "TYPE" in the "CPU" Section (obsolete with properly configured XCPM):

    CPU-Type.png

    Broadwell-E/EP CPU Type:
    "0x0a02"

    Haswell-E/EP CPU Type: "0x0a01" (thanks to @nmano for his valuable feedback)

    b.) "FakeCPUID" in the "Kernel and Kext Patches" Section (obsolete with properly configured XCPM):

    FakeCPUID.png

    Broadwell-E/EP FakeCPUID:
    "0x040674" (thanks to @GDS for his valuable feedback based on his XEON e5-2696v4)

    Haswell-E/EP standard FakeCPUID:
    "0x0306F2" (thanks to @nmano and @dragoonchang for their valuable feedback)

    c.) "KernelToPatch" entries in the "Kernel and Kext Patches" Section:

    Kernel-patches.png

    Broadwell-E/EP "xcpm_cpuid_set_info" and "xcpm_bootstrap":
    Code (Text):
    Find:                            Replace:                           Comment:                                    MatchOS:
    723cd077 500fb6c0                6a3cd077 500fb6c0                  xcpm_cpuid_set_info © Pike R. Alpha         10.13.x
    89d804c4 3c227722                89d804c3 3c227722                  xcpm_bootstrap © Pike R. Alpha              10.13.x

    Haswell-E/EP "xcpm_cpuid_set_info" and "xcpm_bootstrap":

    Code (Text):
    Find:                            Replace:                           Comment:                                    MatchOS:
    723cd077 500fb6c0                6f3cd077 500fb6c0                  xcpm_cpuid_set_info © Pike R. Alpha         10.13.x
    89d804c4 3c227722                89d804c1 3c227722                  xcpm_bootstrap © Pike R. Alpha              10.13.x
    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 KernelToPatch 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!

    Note that the appropriate Xnu Cpu Power Management (XCPM) settings for each CPU architecture are once more addressed, discussed and finalized in the Xnu Cpu Power Management (XCPM) Section of this guide below.

    Finally save the modified config.plist.

    3.) Copy the appropriate VoodooTSCSync.kext, which you modified by following error prevention C.7), to the /EFI/CLOVER/kexts/Other/ directory of the EFI-Folder.

    You know have a fully equipped EFI-Folder for subsequent implementations as detailed below.

    D.2) MacPro macOS High Sierra 10.13.4 (17E199) Installer Download Procedure

    To derive the macOS 10.13.4 build 17E199 Full-Package Installer download the latter from the Mac App Store. The "Install macOS High Sierra.app" will be installed in your /Applications folder.


    D.3) MacPro macOS High Sierra 10.13.4 (17E199) USB Flash Drive Installer Creation

    Follow the individual steps detailed below to successfully create a bootable iMac Pro macOS High Sierra 10.13.4 (17E199) USB Flash Drive Installer.

    1.) Format a USB Flash Drive of your choice (source, named USB) with HFS+ [(Mac OS Extended (Journaled)] and a GUID partition table by means of Apple's Disk Utility on any other Hackintosh or Mac of your choice. This will create an empty HFS+ Partition and a yet empty EFI-partition on your iMac Pro macOS USB Flash Drive Installer.

    2.) With the iMac Pro macOS High Sierra 10.13.4 (17E199) Installer Package in your /Application Folder, connect your USB Flash Drive (named USB) and run the following terminal command:

    Code (Text):
    sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction
    Alternatively, one can create the iMac Pro macOS USB Flash Drive Installer also by means of the Install Disk Creator.app

    4.) For successfully booting your Mac Pro macOS USB Flash Drive Installer, the latter must however also contain a valid EFI- Folder with an SMBIOS MacPro6,1 system definition. Thus, copy the EFI-Folder you prepared in Section D.1) to the yet empty EFI Partition of your Mac Pro macOS USB Flash Drive Installer.

    You now have a fully functional and bootable iMac Pro macOS High Sierra 10.13.4 (17E199) USB Flash Drive Installer.


    D.4) MacPro macOS High Sierra 10.13.4 (17E199) Clean Install on Broadwell-E/EP/Haswell-E/EP X99

    clean-install.png

    Follow the individual steps detailed below to successfully setup macOS High Sierra 10.13.4 (17E199) on a virgin system drive of your choice (NVMe, SSD or HDD).

    1.) In order to perform a clean install of macOS High Sierra 10.13.4 (17E199), prepare a virgin NVMe, SDD or HDD destination drive for the iMac Pro macOS installation by formatting the drive with HFS+ [(Mac OS Extended (Journaled)] and a GUID partition table by means of Apple's Disk Utility on any other Hackintosh or Mac of your choice. This will create an empty HFS+ Partition and a yet empty EFI-partition on the drive.

    2.) Copy the EFI-Folder you prepared in Section D.1) to the yet empty EFI Partition.

    3.) Now connect the Destination Drive to your Hackintosh System and boot the latter with the plugged Mac Pro macOS High Sierra 10.13.4 (17E199) USB Flash Drive Installer, your created in Section D.2)

    4.) While booting your system, press the F8 button to enter the BIOS boot menu. Select to boot from your iMac Pro macOS USB Flash Drive Installer.

    5.) Subsequently, click on the USB Flash Drive Installer Icon in the clover boot menu to boot the respective macOS Installer partition on your iMac Pro macOS USB Flash Drive Installer.

    6.) After successful boot, pass the individual steps of the macOS high Sierra 10.13 installation menu and finally select the destination drive of your macOS High Sierra 10.13 Installation, which should be logically the system disk you successfully configured above. In the next step, the Installer will create a macOS High Sierra 10.13 Installer Partition on the system disk and subsequently reboot your system.

    7.) During system reboot, just press again the F8 button to enter the BIOS boot menu. Select again to boot from your USB Flash Drive. In contrary to 6.), click this time on the "Install MacOS.." Icon in the clover boot screen to boot the newly created macOS High Sierra 10.13 Installer Partition on your system disk.

    8.)After successful boot, you will enter now the macOS High Sierra 10.13 Installer Screen with a progress bar starting at 34 minutes.

    9.) After another reboot, press again the F8 button to enter the BIOS boot menu. Select to boot with your System Disk EFI-folder. Click on the "MacOS High Sierra" icon in the clover boot screen to boot the updated macOS High Sierra 10.13 partition on your system disk.

    10.) After successful boot you will enter again the macOS High Sierra 10.13 Installer Screen with a progress bar starting at 18 minutes. After successfully registration at iCloud at the end of the macOS installation, you now have your first
    Mac Pro macOS High Sierra 10.13.4 (17E199) build.

    Proceed to Section D.5.) and Section E.) - Post Installation Process.


    D.5) macOS High Sierra Update from earlier macOS distributions as well as future MacPro macOS High Sierra Update Procedures

    upgrade-1.png

    1.) Backup you current system disk EFI-Folder.

    2.) Copy the EFI-Folder prepared in D.1) to the EFI-Partition of your System Disk

    3.) If you intent to update a previous macOS High Sierra Installation, just proceed with the standard MacOS Appstore procedure, indicated by the red circle on the Appstore Icon directly from your system disk. If you intent to update from macOS Sierra 10.12.6, download the macOS High Sierra Full Package Installer as described in D.2) and double-click on the "Install MacOS High Sierra.app" in your /Applications folder.

    4.) After reboot, click on the "Install MacOS.." Icon in the clover boot screen to boot the newly created macOS High Sierra 10.13 Installer Partition on your system disk.

    5.)
    After successful boot, you will enter now the macOS High Sierra 10.13 Installer Screen with a progress bar starting at 43 minutes.

    6.) After another reboot, click on the "MacOS High Sierra" icon in the clover boot screen to boot the updated macOS High Sierra 10.13 partition on your system disk.

    7.) After successful boot you will enter again the macOS High Sierra 10.13 Installer Screen with a progress bar starting at 18 minutes. After successfully registration at iCloud at the end of the macOS installation, you now have your most actual
    Mac Pro macOS High Sierra 10.13 build.

    8.) After finishing the macOS Upgrade, proceed to Section Graphics Configuration. Download and update the Nvidia 10.13 Web Driver compatible with your current macOS High Sierra 10.13 distribution.

    9.) Now proceed to the Section "Xnu CPU Power Managment XCPM" below, and re-inject the frequency vector to your Mac- F60DEB81FF30ACF6.plist. Note that the latter file has been rewritten during the macOS High Sierra upgrade! If you are using EIST and PMDrvr.kext, add the latter to your EFI directory! It is not part of EFI-X99-10.13.4-Release-020418.zip!

    You are done!

    The same update procedure will also apply for all future macOS High Sierra 10.13 releases.


    E.) Post Installation Process

    post-installation.png

    By following the individual steps listed below, you will gain an absolutely stable and fully functional system.


    E.1) Graphics Configuration:

    Grphics.png

    ATI Starter Graphics Cards solutions like the ATI Radeon RX 560 or RX 580 just require two basic kexts in the /EFI/Clover/kexts/Other/ directory of the EFI folders on both USB Flash Drive Installer and 10.13 System Disk , i.e. namely WhateverGreen.kext v1.1.7 and Lilu.kext v1.2.2.

    Advanced ATI Vega 64 and Frontier GPUs are natively implemented by OSX and run Out of Box (OoB). No need for an additional Whatevergreen.kext and Lilu.kext implementation. Remaining HDMI/DP port errors, hot plug errors and flaws with multi-monitor or 5K display configurations can be fixed by means of VegaGraphicsFixup.kext, kindly provided by @jyavenard. Important notifications for all Vega users with 4K monitors: When connecting e.g. the Vega Frontier with e.g. the LG 38UC99-W (WUHD, 3840 pix x 1600 pix) via one of the Display Ports (DPs), the screen resolution is fine under both Windows 10 and macOS High Sierra but is totally at odd during boot (VGA like boot screen resolution). @DSM2 reported similar issues with his true 4K display. Thus the VEGA DP 4K boot screen resolution issue is not related with the fact that the LG 38UC99-W is a ultra-wide (3840x1600) and not a true UHD (3840x2160) monitor. It is definitely a Vega firmware problem in combination with 4K displays, as the DP 4K boot screen resolution issue is totally absent with my Nvidia GPU and the problem also does not only affect the ASUS Splash Screen but also spreads over the entire boot process until the login screen is reached (Windows and macOS). Splash Screen, Apple logo or verbose boot messages are not stretched but rather have VGA like resolution. Any fix of the AMD vBIOS would be highly appreciated. It is more than disappointing to witness such issues with 1000$ GPUs... Fortunately, the 4K boot screen issue is restricted to the Vega DP ports and likely due to the fact that the LG 38UC99-W only supports DP 1.2. Solution: Connect your Vega and your 4K display via the HDMI port and everything will work as expected.

    Nvidia Kepler Graphics Cards were already natively implemented in the earlier beta distributions of macOS 10.13.

    All Users with Maxwell and Pascal Nvidia Graphics Cards on SMBIOS MacPro6,1 can employ officially distributed Nvidia 10.13 Web Drivers for their Nvidia Pascal and Maxwell graphics cards! Users reported lagging UI issues with the most recent Nvidia Web Driver 387.10.10.10.30.103 for 10.13.4 (17E199) when using Maxwell GPUs, while this Web Drivers seems to work flawless with Pascal GPUs. Maxwell GPU Users can alternatively use the Web Driver WebDriver-78.10.10.10.25.106 after the simple patching procedure detailed blow. Future 10.13.5 Public Beta users can either use WebDriver-78.10.10.10.25.106 or 387.10.10.10.30.103 after the same Web Driver patching procedure.

    How to patch the WebDriver:

    Download the Nvidia WebDriver-Payload Repackager from InsanelyMac. Credits to Chris111 and Pavo.

    The patch procedure is simple and fully described in the implemented Readme.txt and will reveal a Repackaged-WebDriver.pkg, which can be used for the Nvidia Web Driver Installation by all Maxwell GPU users or all users under 10.13.4 (17E199) or future 10.13.5 Public Beta versions.


    Nvidia Web Driver Installation and Black Screen Prevention:

    As we do use SMBIOS macPro6,1, we MUST implement some way of subverting AppleMobileFileIntegrity banning the driver before performing the Nvidida Web Driver Installation!

    Important Note: if you ever tried before a Black Screen Prevention by means of the NVWebDriverLibValFix.kext v1.0.0 in /EFI/CLOVER/kexts/Other/, remove the latter file from the latter directory! Note that NVWebDriverLibValFix.kext is now already implemented in NvidiaGraphicsFixup.kext v1.2.1! If you apply the content of the primer kext twice, you will end up in a boot loop!

    a.) Copy NvidiaGraphicsFixup.kext v1.2.4 and Lilu.kext v1.2.2 to the /EFI/CLOVER/kexts/Other/ directory in the EFI-Partition of your System Disk.


    b.) Install now the original or patched Nvidia 10.13 Web Driver Package.

    c.) Now reboot as requested by the Nvidia Web Driver Installer. All users who installed the official NVIDIA Web Driver Package will already have fully functional Web Driver.

    Webdriver-2.png


    d.) All Maxwell GPU 10.13.4 (17E199) and future 10.13.5 Public Beta users still have to perform the following additional steps after installing the respective patched Nvidia Web Driver:

    i.) Copy /L/E/ NVDAStartupWeb.kext to your Desktop.

    ii.) Right-click on NVDAStartupWeb.kext and select show package content.

    iii.) Change to "Contents" and edit the "Info.plist" with Xcode.

    iv.) Go to IOKitPersonalities -> NVDAStartup -> change "NVDARequiredOS" from "17C205" or "17E199" to "17E199" or to the respective future 10.13.5 public beta build number.

    v.) Save "Info.plist" and copy the modified "NVDAStartupWeb.kext" to /L/E/ with root permission.

    vi.) Open a terminal and enter the following commands:

    Code (Text):
    sudo chmod -R 755 /Library/Extensions/NVDAStartupWeb.kext
    Code (Text):
    sudo chown -R root:wheel /Library/Extensions/NVDAStartupWeb.kext
    Code (Text):
    sudo touch /System/Library/Extensions && sudo kextcache -u /
    Code (Text):
    sudo touch /Library/Extensions && sudo kextcache -u /


    vii.) Reboot.

    viii.) The Web Driver will not be active yet. Therefore, open the Nvidia Driver Manager and select "Nvidia Web Driver".

    ix.) Reboot and you have a fully functional WEB Driver also for Maxwell 10.13.4 (17E199) or future 10.13.5 public beta versions.


    E.2) Audio Configuration:

    audio.jpg

    The EFI folder attached towards the end of this post already contains a fully functional AppleALC audio configuration. If however this audio configuration does not work in your case, perform the following steps listed below.

    1.) Download the latest version of the AppleALC.kext from Github (actually AppleALC.kext v1.2.4) and copy it to the "/EFI/CLOVER/kexts/Other/"-directory of your 10.13 System Disk. Note however that the latter kext is already part fo the EFI-Folder implemented in EFI-X99-10.13.4-Release-020418.zip.

    2.) Download the latest version of Lilu.kext from Github (actually Lilu.kext v1.2.2) and copy it to the "/EFI/CLOVER/kexts/Other/"-directory of your 10.13 System Disk. Note however that the latter kext is already part fo the EFI-Folder implemented in EFI-X99-10.13.4-Release-020418.zip.

    3.) Download the latest version of codeccommander.kext from Github and copy it to the "/EFI/CLOVER/kexts/Other/"-directory
    of your 10.13 System Disk. Note however that the latter kext is already part fo the EFI-Folder implemented in EFI-X99-10.13.4-Release-020418.zip.

    4.) Open your config.plist with the Clover Configurator and add the following "DSDT patch" in the "ACPI section":

    Code (Text):
    Comment:                Find:           Replace:
    Rename ALZA to HDEF     414c5a41        48444546
    Furthermore, Inject Audio ID "1" in the Section "Devices" and save your config.plist

    5.) After reboot you should now have a perfectly working analogue audio configuration. Under "System Preferences" and "Audio" select "Internal Speakers" for the Analogue Audio Output and you are done.

    6.) The correct HDMI/DP digital Audio PCI implementation will be detailed in Section E.9) in line with the HDEF and GPU PCI device implementation.


    Control Panel implementation:

    Audio.png

    Audio System report:

    Audio-System-Report.png


    E.3) USB Configuration:

    USB.png

    The EFI-Folder implemented in EFI-X99-10.13.4-Release-020418.zip, contains a fully functional USB configuration,which consists of the following implementations:

    1.) the "X99_Injector USB 3.kext" in the /EFI/CLOVER/kexts/Others/ directory of your hopefully successfully configured and completed 10.13 system test drive.

    2.) the 10.13 AppleUSBXHCI KextsToPatch entry in the "Kernel and Kext Patches" section of the clover configurator:

    Code (Text):
    Name*          Find*[Hex]               Replace* [Hex]           Comment
    AppleUSBXHCI   837d940f 0f839704 0000   837d941a 90909090 9090   10.13.4 USB Port Limit Patch
    3.) the following USB settings in the "Device" section of the Clover Configurator: "Inject", "Add ClockID", "FixOwnership", "HighCurrent" - everything unchecked.

    4.) also remember the correct BIOS settings:
    • XHCI Mode Smart Auto
    • XHCI Hand-Off Enabled
    • EHCI Hand-Off Enabled
    As already in macOS Sierra 10.12, with the above USB configuration, also in macOS High Sierra 10.13 all USB2 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.

    USB-System-Report.png


    Alternative USB Configuration - board-specific XHC USB Kexts

    Alternatively to the above USB configuration, all ASUS X99-A II owners can use the novel and innovative XHC USB Kext in the /EFI/CLOVER/kexts/Other/ directory of their USB Flash Drive Installer or 10.13 System Disk. Recently, @kingkong89 confirmed full compatibility of this latter XHC USB Kext with the ASUS X99 DELUXE II (identical XHC USB port-configuration).

    For this novel kext approach approach, download, unzip and copy the XHC USB Kext contained in DSM2-ASUS-X99-A-II-USB.kext.zip (attached at the end of this originating post/guide) to the /EFI/Clover/kexts/Other/-directory in the EFI-Folder of your 10.13 System Disk. In parallel, remove the "X99_Injector USB 3.kext" from the latter directory and reboot.

    Again, uncheck the following USB settings in the "Device" section of the Clover Configurator: "Inject", "Add ClockID", "FixOwnership", "HighCurrent".

    Finally note, that also the USB BIOS settings have to be slightly modified:
    • XHCI Mode Enabled
    • XHCI Hand-Off Enabled
    • EHCI Hand-Off Enabled
    Within the latter approach, all internal and external USB2.0 and USB 3.0 ports on the ASUS X99-A II and ASUS X99 DELUXE II will be correctly implemented and reveal the expected data rates.

    All owners of mainboards different from the ASUS X99-A II and ASUS X99 DELUXE II, can create their own board-specific XHC USB Kext by following the detailed XHC USB Kext creation guidelines provided in Section E.4) in my Skylake-X/X299 macOS High Sierra 10.13 Desktop Guide.


    E.4) M.2/NVME Configuration:

    evo.jpg

    In contrary to macOS Sierra 10.12, macOS High Sierra 10.13 provides native support of non-4Kn NVMe SSDs, like my Samsung EVO 960 M.2/NVMe. All patches applied under macOS Sierra 10.12 are now obsolete. The native support of non-4Kn NVMe SSDs enables the unique opportunity to directly perform a clean-install of macOS High Sierra 10.13 on M.2 NVMEs like the Samsung EVO 960.

    The only current drawback consists in the external drive implementation of NVMEs. This minor issue should be easily solved by adding the actual External NVME Icon KextToPatch entry to the config.plist by means of the Clover Configurator.

    Code (Text):

    Name*            Find* [HEX]           Replace* [HEX]        Comment
    IONVMeFamily     4885c074 07808b20     4885c090 90808b20     External NVME Icon Patch
    Not however, that already in earlier beta versions and also now within the macOS High Sierra 10.13.4 (17E199) distribution, this approach does not seem to work anymore, despite the actual KextToPatch entry above! If you still have your NVMe implemented in form of an external drive you have to perform the following workaround, detailed below.

    1.) Disable the not working External NVME Icon KextToPatch entry.

    2.) Open the IORegistryExplorer, in the upright search field type nvme and take not of values in the left column, i.e. indicated as v.1, v.2 and v.3 and marked by red rectangles in the figure below. As you can see by following these entries, your nvme device shows up in PCI0@0 > BR1B@1,1 > H000@0

    NVMe-Patch.png

    3.) Download and unzip the SSDT-NVMe-extern-icon-patch.aml.zip, and open the SSDT-NVMe-extern-icon-patch.aml with MaciASL-DSDT.app, both attached towards the end of this guide. For deviating system configurations, replace the values highlighted in blue color in the figure below with those of your IOReg, marked by red rectangles and indicated by v.1, v.2 and v.3 in the figure of my IOReg above.

    nvme-patch.aml.png

    4.) Save and copy the modified SSDT-NVMe-extern-icon-patch.aml to the /EFI/CLOVER/ACPI/patched/ folder of your system drive.

    5.) Reboot

    Now your NVMe drive should correctly show up as internal.

    storage.png

    Disk-Utility.png


    E.5) SSD TRIM Support:

    Macs only enable TRIM for Apple-provided solid-state drives they come with. If you upgrade a Mac with an aftermarket SSD, the Mac won’t use TRIM with it. The same applies for SSD's used by a Hackintosh. When an operating system uses TRIM with a solid-state drive, it sends a signal to the SSD every time you delete a file. The SSD knows that the file is deleted and it can erase the file’s data from its flash storage. With flash memory, it’s faster to write to empty memory — to write to full memory, the memory must first be erased and then written to. This causes your SSD to slow down over time unless TRIM is enabled. TRIM ensures the physical NAND memory locations containing deleted files are erased before you need to write to them. The SSD can then manage its available storage more intelligently.

    Note that the config.plist in the EFI folder of EFI-X99-10.13.4-Release-020418.zip, attached towards the end of this originating post/guide, contains an SSD "TRIM Enabler" KextsToPatch entry, which can be found in the " Kernel and Kext Patches" Section of the Clover Configurator.

    SSD-Trim-Enabler.png

    Code (Text):
    Name*                   Find*[HEX]                  Replace*[HEX]               Comment
    IOAHCIBlockStorage      4150504c 45205353 4400      00000000 00000000 0000      Trim Enabler
    With this KextToPatch entry, SSD TRIM is fully enabled on your 10.13 System, see Apple's System Report below.

    TRIM-SystemReport.png


    E.6) Xnu CPU Power Management (XCPM) Configuration:

    power-management.png

    The EFI folder of EFI-X99-10.13.4-Release-020418.zip, attached towards the end of this post, already contains a nearly fully functional XCPM configuration for the i7-6950X Broadwell-E CPU, which needs to be finalized (yet missing injection of frequency vector) and adopted for other CPU configurations (Broadwell-E/EP different from i7-6950X, Haswell-E).

    Before finalizing, adapting or tuning the XCPM configuration, 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
    Subsequently, follow the individual steps below.

    1.) Verify that your System ID is MacPro 6.1

    2.) Open the config.plist of your 10.13 test drive and revise the "Kernel and Kext Patches" Section.

    XCPM-KernelTopatch.png

    Code (Text):

    Find:                                                               Replace:                                                              Comment:
    72 3cd07750 0fb6c0                                                  6a 3cd07750 0fb6c0                                                    xcpm_cpuid_set_info © Pike R. Alpha
    89d804c4 3c227722                                                   89d804c3 3c227722                                                     xcpm_bootstrap © Pike R. Alpha
    554889E5 41574156 41554154 53504189 D64889FB 85F60F84 84000000      C39089E5 41574156 41554154 53504189 D64889FB 85F60F84 84000000        xcpm_program_msrs © Pike R. Alpha
    be070000 0031d2e8 8ffcffff                                          be070000 0031d290 90909090                                            xcpm_pkg_scope_msrs © Pike R. Alpha
    be0b0000 005de908 000000                                            be0b0000 005dc390 909090                                              xcpm_SMT_scope_msrs © Pike R. Alpha
    be030000 0031d2e8 72fcffff                                          be030000 0031d290 90909090                                            xcpm_core_scope_msrs © Pike R. Alpha
    b9e20000 000f30                                                     b9e20000 009090                                                       xcpm_idle_wrmsr © Pike R. Alpha
    4885c074 07808b20                                                   4885c090 90808b20                                                     External NVMe FIX
    07000000 31d2e88f fcffff                                            07000000 31d29090 909090                                              10.13 Installer/Updater essential
     
    Verify for Broadwell-E/EP and modify for Haswell-E/EP the "xcpm_cpuid_set_info" and "xcpm_bootstrap" KernelToPatch entries for Broadwell-E/EP. Note that I actually do not use the "xcpm_program_msrs" and "xcpm_core_scope_msrs" KernelToPatch entries (disabled), as they seem to disable C3 states! Note that the "xcpm_program_msrs" entry was previously erroneously called "xcpm_reboot_fix". Please note that the above KernelToPatch configuration considers a patched ASUS mobo-BIOS with unlocked MSR 0xE2 register ("xcpm_idle_wrms" KernelToPatch entry disabled). With locked MSR 0xE2 register, you might have to enable "xcpm_idle_wrms". By the way, note that ASUS mainboard owners can uncheck "KernelPM", yet checked for the general use of my EFI-Folder also with mainboards different from ASUS. Further note that I also disabled the external NVMe FIX, as it currently does not seem to work within the latest implementations of macOS High Sierra 10.13, despite the fact that this KernelToPatch entry is correctly implemented. Finally note that the "10.13 Installer/updater essential" KernelToPatch entry seems to be required for successful booting an macOS High Sierra 10.13 Flash Drive Installer, which needs to be created in the frame of the 10.13 macOS High Sierra Update or Clean Install.

    Here are the necessary modifications for the Haswell-E CPU architecture:

    Haswell-E "xcpm_cpuid_set_info" and "xcpm_bootstrap":
    Code (Text):
    Find:                            Replace:                           Comment:
    723cd077 500fb6c0                6f3cd077 500fb6c0                  xcpm_cpuid_set_info © Pike R. Alpha
    89d804c4 3c227722                89d804c1 3c227722                  xcpm_bootstrap © Pike R. Alpha
    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 KernelToPatch entry for the latter three processor architectures. If you encounter against all expectations problems during your XCPM configuration though, use the "xcpm_cpuid_set_info" entry provided above!

    Many thanks to PMheart from the InsanelyMac Forum for providing the correct 10.13 XCPM KernelToPatch entries for Broadwell-E! Many thanks to @nmano for providing the correct 10.13 XCPM KernelToPatch entries for Haswell-E!

    3.) Reboot

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

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

    6.) Drop ssdtPRGen.sh into a terminal and add the following parameters to also enable turbo frequencies ( in my case in line
    with an OC of 4400 Mhz.

    Code (Text):
    ./ssdtPRGen.sh  -turbo 4400
    Result:

    Code (Text):
    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.13 (17A306f)
    Brandstring: "Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz"

    Override value: (-turbo) maximum (turbo) frequency, now using: 4200 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: 12 (3100-4200 MHz)
    Number of P-States: 31 (1200-4200 MHz)
    Injected C-States for CP00 (C1,C3,C6)
    Injected C-States for CP01 (C1,C3,C6)
    Warning: 'system-type' may be set improperly (1 instead of 3)
         - Clover users should read https://clover-wiki.zetam.org/Configuration/ACPI#acpi_smartups
    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 - 467 lines, 13569 bytes, 144 keywords
    AML Output:    /Users/kgp/Library/ssdtPRGen/ssdt.aml - 3706 bytes, 64 named objects, 80 executable opcodes

    Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
    7.) Copy the SSDT.aml from ~/Library/ssdtPRGen/ to /EFI/CLOVER/ACPI/patched/. Please find a fully working SSDT.aml
    sample file for the i7-6950X attached towards the end of this post.

    Important note: if your CPU is unsupported, ssdtPRGen.sh will fail in creating the SSDT.aml. Go to the ~/Library/ssdtPRGen/ folder, open the "Data " folder, and open "User Defined.cfg" with text wrangler. Add your cpu parameters, save the "User Defined.cfg" and redo steps 6.) and 7.)

    8.) Reboot

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

    Code (Text):
    Property:         Type:         Value:
    plugin-type       Number        0x1
    b.) Verify with the terminal command

    Code (Text):
    kextstat|grep -y x86plat
    that the "X86PlatformPlugin.kext" is now loaded. If the command returns something like

    Code (Text):
     112    1 0xffffff7f822bc000 0x17000    0x17000    com.apple.driver.X86PlatformPlugin (1.0.0) FD88AF70-3E2C-3935-99E4-C48669EC274B <111 19 18 13 11 7 6 5 4 3 1>
     146    1 0xffffff7f822d3000 0x7000     0x7000     com.apple.driver.X86PlatformShim (1.0.0) DCEA94A4-3547-3129-A888-E9D5C77B275E <112 111 13 7 4 3>
    you are fine.

    c.) Verify with the terminal command

    Code (Text):
    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 latest freqVectorsEdit.sh distribution to add missing FrequencyVectors to Mac-F60DEB81FF30ACF6.plist, which os located in:

    Code (Text):
    /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

    Code (Text):
    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-4B682C642B45593E.plist (Unknown Model)
    [ 13 ] Mac-4BFBC784B845591E.plist (Unknown Model)
    [ 14 ] Mac-50619A408DB004DA.plist (Unknown Model)
    [ 15 ] Mac-551B86E5744E2388.plist (MacBookPro14,3 @ 3800 HWP/3900 HWP/4100 HWP)
    [ 16 ] Mac-65CE76090165799A.plist (iMac17,1)
    [ 17 ] Mac-66E35819EE2D0D05.plist (MacBookPro13,2 @ 3300 HWP/3500 HWP/3600 HWP)
    [ 18 ] Mac-77EB7D7DAF985301.plist (iMac14,3)
    [ 19 ] Mac-77F17D7DA9285301.plist (Unknown Model)
    [ 20 ] Mac-7BA5B2D9E42DDD94.plist (Unknown Model)
    [ 21 ] Mac-7DF21CB3ED6977E5.plist (MacBookAir6,2)
    [ 22 ] Mac-81E3E92DD6088272.plist (iMac14,4)
    [ 23 ] Mac-90BE64C3CB5A9AEB.plist (Unknown Model @ 3000/3200/3600)
    [ 24 ] Mac-937CB26E2E02BB01.plist (MacBookAir7,2 @ 2700/3200)
    [ 25 ] Mac-9AE82516C7C6B903.plist (MacBook9,1 @ 2200 HWP/2700 HWP/3100 HWP)
    [ 26 ] Mac-9F18E312C5C2BF0B.plist (MacBookAir7,1 @ 2700/3200)
    [ 27 ] Mac-A369DDC4E67F1C45.plist (iMac16,1)
    [ 28 ] Mac-A5C67F76ED83108C.plist (MacBookPro13,3 @ 3500 HWP/3600 HWP/3800 HWP)
    [ 29 ] Mac-B4831CEBD52A0C4C.plist (MacBookPro14,1 @ 3400 HWP/4000 HWP)
    [ 30 ] Mac-B809C3757DA9BB8D.plist (iMac17,1)
    [ 31 ] Mac-BE088AF8C5EB4FA2.plist (Unknown Model)
    [ 32 ] Mac-BE0E8AC46FE800CC.plist (MacBook8,1 @ 2400/2600/2900)
    [ 33 ] Mac-CAD6701F7CEA0921.plist (MacBookPro14,2 @ 3500 HWP/3700 HWP/4000 HWP)
    [ 34 ] Mac-CF21D135A7D34AA6.plist (Unknown Model @ 3000/3200/3600)
    [ 35 ] Mac-DB15BD556843C820.plist (iMac17,1)
    [ 36 ] Mac-E43C1C25D4880AD6.plist (MacBookPro12,1)
    [ 37 ] Mac-EE2EBD4B90B839A8.plist (Unknown Model @ 3000 HWP/3200 HWP/3600 HWP)
    [ 38 ] Mac-F305150B0C7DEEEF.plist (Unknown Model @ 2400/2600/2900)
    [ 39 ] Mac-F60DEB81FF30ACF6.plist (MacPro6,1)
    [ 40 ] Mac-FA842E06C61E91C5.plist (iMac15,1)
    [ 41 ] Mac-FFE5EF870D7BA81A.plist (iMac16,2)

    Please choose the desired plist for your hardware (Exit/1-41) ?
    like e.g.

    Code (Text):
    [ 35 ] Mac-DB15BD556843C820.plist (iMac17,1)
    which does have well defined frequencies.

    11.) Reboot

    12.) To verify that the new Frequency-Vectors from Mac-F60DEB81FF30ACF6.plist are now loaded, use the following terminal command:

    Code (Text):
    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 source code, you need to primarily install Xcode (Appstore) and Xcode Command Line Tools! This guideline might be helpful for the successfully installation of the latter.

    Now enter the following terminal commands:

    Code (Text):
    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 "kextload" and "cat" the info-results with the following terminal commands:

    Code (Text):
    sudo kextload AppleIntelInfo.kext
    Code (Text):
    sudo cat /tmp/AppleIntelInfo.dat
    The cat command should reveal something like the following result:

    Code (Text):

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

    Settings:
    ------------------------------------------
    logMSRs..................................: 1
    logIGPU..................................: 0
    logCStates...............................: 1
    logIPGStyle..............................: 1
    InitialTSC...............................: 0x11d3a1760ecb2 (10453 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)  : 0xACF485063
    IA32_APERF.......................(0xE8)  : 0xB96AC7BB7
    MSR_0x150........................(0x150) : 0x0

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

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

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

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

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

    IA32_THERM_STATUS................(0x19C) : 0x883D0000
    ------------------------------------------
     - 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...................... : 61
     - 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) : 0x5
    ------------------------------------------
     - Power Policy Preference...............: 5 (balanced performance and energy saving)

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

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

    IA32_TSC_DEADLINE................(0x6E0) : 0x11D3A1BDB3826

    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) 27 30 ]
    CPU C3-Cores [ 1 2 4 6 8 10 12 14 16 18 ]
    CPU C6-Cores [ 0 2 4 6 8 10 12 14 16 18 ]
    CPU P-States [ 12 17 27 (30) ]
    CPU C3-Cores [ 1 2 3 4 6 7 8 10 11 12 14 15 16 18 19 ]
    CPU C6-Cores [ 0 2 4 6 8 9 10 12 14 16 17 18 ]
    CPU P-States [ (12) 17 27 30 31 ]
    CPU C3-Cores [ 0 1 2 3 4 6 7 8 9 10 11 12 14 15 16 18 19 ]
    CPU P-States [ (12) 14 17 27 30 31 ]
    CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 ]
    CPU C6-Cores [ 0 2 4 6 8 9 10 12 14 15 16 17 18 ]
    CPU P-States [ (12) 14 17 20 27 30 31 ]
    CPU C3-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ]
    CPU C6-Cores [ 0 1 2 4 6 7 8 9 10 12 14 15 16 17 18 ]
    CPU P-States [ (12) 14 16 17 20 27 30 31 ]
    CPU P-States [ (12) 14 16 17 18 20 27 30 31 ]
    CPU P-States [ (12) 14 16 17 18 20 27 30 31 32 ]
    CPU P-States [ (12) 14 16 17 18 20 22 27 30 31 32 ]
    CPU C6-Cores [ 0 1 2 3 4 6 7 8 9 10 12 14 15 16 17 18 ]
    CPU P-States [ (12) 13 14 16 17 18 20 22 27 30 31 32 ]
    CPU C6-Cores [ 0 1 2 3 4 6 7 8 9 10 12 13 14 15 16 17 18 19 ]
    CPU P-States [ (12) 13 14 16 17 18 20 22 23 27 30 31 32 ]
    CPU P-States [ 12 13 14 (15) 16 17 18 20 22 23 27 30 31 32 ]
    CPU P-States [ (12) 13 14 15 16 17 18 20 22 23 25 27 30 31 32 ]
    CPU P-States [ (12) 13 14 15 16 17 18 20 21 22 23 25 27 30 31 32 ]
    CPU C6-Cores [ 0 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ]
    CPU P-States [ 12 13 14 15 16 17 18 20 21 22 23 (24) 25 27 30 31 32 ]
    CPU P-States [ (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 27 30 31 32 ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 29 (30) 31 32 ]
    CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 36 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 36 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 41 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 37 41 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 37 38 41 (42) ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 37 38 39 41 (42) ]
    CPU P-States [ (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 ]
    CPU P-States [ (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 ]
    CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 (42) ]
     
    To unload the AppleIntelInfo.kext, enter the terminal command:

    Code (Text):
    sudo kextunload AppleIntelInfo.kext

    E.7) Enhanced Intel SpeedStep Technology (EIST) and PMdrvr.kext:

    printlogo.png

    If you want to go for EIST functionality, consider the necessary BIOS setting detailed below:

    BIOS setting:

    Advanced\CPU Configuration\CPU Power Management Configuration\
    • Enhanced Intel SpeedStep Technology (EIST): Enabled

    Subsequently download and copy Brumbaer's PMDrvr.kext attached at the end of this post/guide to /EFI/CLOVER/kexts/Other/.

    Note that there different versions for Broadwell-E and Haswell-E, namely the Broadwell-E PMDrvr.kext and Haswell-E PMDrvr.kext, respectively.

    For further details and information see my Sierra Desktop Guide. In any case it should be highlighted that PMDrvr.kext is fully compatible with macOS High Sierra 10.13 and results in a really fantastic CPU power managment performance reflected in the Intel Power Gadget graphs below. The left panel depicts max. CPU load-conditions during three temporally consecutive manually launched Cinebench CPU benchmarks with idle-conditions in between. The right panel reflects the dynamic CPU behavior during one Geekbench 4.1.0 CPU Benchmark run.

    IntelPowerGadget-H.png

    Note however, that PMDrvr.kext has also a strong drawback as it breaks sleep/wake functionality. You therefore have to check both "Prevent computer from sleeping automatically when display is off" and "Put hard disks to sleep when possible" and uncheck "Wake for network access" and "Enable Power Nap"!

    View attachment 268099

    If you want to support the petition to Brumbaer for implementing Sleep/Wake functionality to PMDrvr.kext, leave an adequate comment and request in his corresponding thread on InsanelyMac.


    E.8) Overclocking:

    overclock.png

    As in case of macOS Sierra 10.12, a 4.2 Ghz CPU Overclocking also results under macOS 10.13 in a very sufficient and stable system configuration. For the sake fo completeness I herewith once more summarize the requried BIOS settings after enabling the XMP switch on the Asus X99-A II and connecting the over-voltage jumper to pins 2-3:

    Code (Text):
    - AI overclock Tuner: XMP
    - BLCK Frequency: 100 Mhz
    - Core Ratio: Sync All Cores
    - 1-Core Ratio Limit: 42
     
    A BLCK Frequency of 100 Mhz leads to the best NVMe performance. The core ratio of 42 corresponds to 4.2 Ghz overclocking.


    E.9) ASUS X99-A II PCI Device Implementation - Sleep/Wake Functionality

    In order to properly implement all PCI devices available on your system and build, one needs an adequate ACPI DSDT Replacement Patch Table and a sophisticated SSDT-ASUS-X99-A-II.aml (attached at the bottom fo this originating post/guide). Both requirements have been successfully implemented based on the extensive efforts and extremely fruitful and brilliant work of @apfelnico , @nmano and @TheOfficialGypsy .

    Note however that both ACPI DSDT Replacement Patch Table and SSDT-ASUS-X99-A-II.aml are build specific and have to be verified and likely adopted or modified for all mainboards different from the ASUS Prime X299 Deluxe and builds different from the one that constitutes the baseline of this guide. The verification and likely adaptation/modification can be performed by the help of IORegistryExplorer v1.2. Also note that the ACPI DSDT Replacement Patch Table and SSDT-ASUS-X99-A-II.aml implementation detailed below requires SMBIOS macPro6,1.

    E.9.1) ACPI DSDT Replacement Patching Table Implementation

    Note that all required ACPI DSDT Patches are already implemented in the config.plist in the /EFI/CLOVER/ directory of the EFI- Folder contained in EFI-X99-10.13.4-Release-020418.zip. However, by default they are disabled, thus we will now open the config.plist in the /EFI/CLOVER/ directory of your 10.13 System Disk EFI-Folder with Clover Configurator and stepwise adopt (if necessary) and enable the different required DSDT replacement patches in Clover Configurator Section "ACPI" under "DSDT patches", by also discussing their respective function and impact.

    3.) ACPI DSDT Patch Table + SSDT-XOSI.aml

    A set of DSDT Replacement patches (ACPI Table) originally developed by @apfelnico for X299 Systems, also help in achieving forced sleep/wake functionality on X99 Systems. Note that all required ACPI DSDT Replacement Patches are already implemented in the config.plist in the /EFI/CLOVER/ directory of the EFI-Folder contained in EFI-X99-10.13.4-Release-020418.zip. Just open the config.plist with Clover Configurator and investigate "DSDT patches" in Clover Configurator Section "ACPI".

    a.) ALZA -> HDEF is a DSDT replacement patch to achieve consistency with the SMBIOS macPro6,1 specific HDEF onboard audio controller implementation. If not already enabled in Section E.3), please enable this DSDT replacement patch now independent from your mainboard.

    Code (Text):

    Comment:                Find*[Hex]      Replace [Hex]
    ALZA -> HDEF          414c5a41        48444546
     
    b.) OSI -> XOSI and EC0_ -> EC__ or H_EC -> EC__ are DSDT replacement patches to achieve consistency with a real Mac variable naming.

    i.) The XOSI functionality is required as explained by @RehabMan (just follow this LINK for details). Thus please enable the OSI -> XOSI DSDT Replacement patch.

    ii.) On the ASUS X99-A II and ASUS X99 Deluxe II we have EC0 and H_EC controllers, which have to be renamed to 'EC' for proper USB power management. Thus enable both EC0_ -> EC__ and H_EC -> EC__ DSDT Replacement Patches.

    Code (Text):

    Comment:             Find*[Hex]      Replace [Hex]
    OSI -> XOSI          5f4f5349        584f5349
    EC0_ -> EC__         4543305f        45435f5f
    H_EC  -> EC__        485f4543        45435f5f
     
    c.) The HEC1 -> IMEI and IDER->MEID DSDT Replacement patches are Intel Management Engine Interface related and are vital as MacOS requires the variable names "IMEI" and "MEID" to load the 'AppleIntelMEIDriver'. The latter functionality solves the 'iTunes/Apple Store Content Access Problem' which is discussed here.
    Please enable now both DSDT Replacement patches independent from your mainboard.

    Code (Text):

    Comment:             Find*[Hex]       Replace [Hex]
    HECI -> IMEI         48454331         494d4549
    IDER->MEID           49444552         4d454944
     
    d.) The LPC0 -> LPCB DSDT Replacement Patch is AppleLPC and SMBus related and is applied for consistency with the variable naming on a real Mac.

    Please enable now this DSDT replacement patch independent from your mainboard.

    Code (Text):

    Comment:             Find*[Hex]         Replace [Hex]
    LPC0 -> LPCB         4c504330           4c504342
     
    e.) FPU_->MATH, TMR_->TIMR, PIC_->IPIC are all DSDT Replacement Patches for consistency with the variable naming on a real Mac. The variables are however functionless on either X99 systems or real Macs.

    Please enable now all three DSDT Replacement Patches independent from your mainboard.

    Code (Text):

    Comment:             Find*[Hex]        Replace [Hex]
    FPU_ -> MATH         4650555f          4d415448
    TMR_ -> TIMR         544d525f          54494d52
    PIC_ -> IPIC         5049435f          49504943
     
    f.) The DSM -> XDSM DSDT replacement patch will be vital for loading the SSDT-ASUS-X99-A-II.aml, as all DSM methods used in the original DSDT do have a not compatible structure totally different from the real Mac environment. Without any fix, all DSM methods would be simply ignored. Note that one single device can have only one DSM method, which can assign additional properties to the respective device.
    Thus please enable the latter DSDT replacement patch completely independent from your mainboard!

    Code (Text):

    Comment:             Find*[Hex]         Replace [Hex]
    _DSM -> XDSM         5f44534d            5844534d
     
    Last but note least, in the /EFI/CLOVER/ACPI/patched/ directory of the EFI-Folder contained in EFI-X99-10.13.4-Release-020418.zip one finally finds the ssdt-xosi-aml, already implemented by default.


    E.9.2) SSDT-ASUS-X99-A-II.aml PCI Implementation

    PCI.png

    For the proper PCI device implementation (detailed in the Figure above), which is mostly of cosmetic nature and not directly related to device functionality, we now have to revise and likely adopt or modify the attached SSDT-ASUS-X99-A-II.aml to our specific build, system configuration and PCIe slot population with the help of the IORegistryExplorer. Note that the SSDT-ASUS-X99-A-II.aml considers the following ASUS X99-A II slot distribution:

    ASUS X99-A II.png


    The entire section can also be simply skipped by unexperienced users, who also prefer to skip the implementation of the SSDT-ASUS-X99-A-II.aml and respective PCI Device implementation.

    Note that for each device, the SSDT-ASUS-X99-A-II.aml contains a DefinitionBlock entry and the underlying PCI device implementation. In case of necessary modifications/adaptations, don't forget to also modify/adapt the respective DefinitionBlock entries in concordance with your IOREG entries. The entire SSDT structure is module like. Each module can be independently added, changed or removed in dependence of your specific build, needs and requirements. A stepwise implementation of the individual PCI devices is recommended!

    E.9.2.1) HDEF - onboard Audio Controller PCI Implementation:

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.HDEF, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):

    Scope (\_SB.PCI0.HDEF)
        {
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x16)
                    {
                        "layout-id",
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00
                        },

                        "MaximumBootBeepVolume",
                        Buffer (One)
                        {
                             0xEF                
                        },

                        "MaximumBootBeepVolumeAlt",
                        Buffer (One)
                        {
                             0xF1                
                        },

                        "multiEQDevicePresence",
                        Buffer (0x04)
                        {
                             0x0C, 0x00, 0x01, 0x00
                        },

                        "AAPL,slot-name",
                        Buffer (0x09)
                        {
                            "Built In"
                        },

                        "model",
                        Buffer (0x17)
                        {
                            "ASUS X99-A II HD Audio"
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        },

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

                        "device_type",
                        Buffer (0x14)
                        {
                            "HD Audio Controller"
                        },

                        "name",
                        Buffer (0x22)
                        {
                            "Realtek ALC 1150 Audio Controller"
                        },

                        "PinConfigurations",
                        Buffer (0x05)
                        {
                            "0x00"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
     
    The HDEF PCI device implementation is valid for the ASUS X99-A II and likely for all other mainboards with the Realtek ALC 1150 Audio Controller chipset. It is a build in device and does not have any slot specific dependency. In any case verify device path "PCI0.HDEF" and PCI device implementations by means of IOREG.

    E.9.2.2) GFX1, HDAU - Nvidia Graphics Card and HDMI/DP Audio PCI implementation

    DefintionBlock entry:

    Code (Text):

    External (_SB_.PCI0.BR3A, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.BR3A.D07C, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.BR3A.H000, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.BR3A.H001, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.BR3A.GFX1, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.BR3A.HDAU, DeviceObj)    // (from opcode)
     
    PCI Device Implementation:

    Code (Text):

        Device (_SB.PCI0.BR3A.GFX1)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_SUN, One)  // _SUN: Slot User Number
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                
                    })
                }

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

                        "device-id",
                        Buffer (0x04)
                        {
                             0x06, 0x1B, 0x00, 0x00
                        },

                        "AAPL,slot-name",
                        Buffer (0x0B)
                        {
                            "PCI Slot 0"
                        },

                        "@0,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00
                        },

                        "@1,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00
                        },

                        "@2,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00
                        },

                        "@3,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00
                        },

                        "@4,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00
                        },

                        "@5,connector-type",
                        Buffer (0x04)
                        {
                             0x00, 0x08, 0x00, 0x00
                        },

                        "name",
                        Buffer (0x08)
                        {
                            "display"
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x6D,
                Zero
            })
        }

        Device (_SB.PCI0.BR3A.HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                
                    })
                }

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

                        "device-id",
                        Buffer (0x04)
                        {
                             0xEF, 0x10, 0x00, 0x00
                        },

                        "AAPL,slot-name",
                        Buffer (0x0B)
                        {
                            "PCI Slot 0"
                        },

                        "device_type",
                        Buffer (0x1B)
                        {
                            "HDAU Multimedia Controller"
                        },

                        "name",
                        Buffer (0x15)
                        {
                            "NVIDIA HDMI/DP Audio"
                        },

                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x6D,
                Zero
            })
        }

        Name (_SB.PCI0.BR3A.H000._STA, Zero)  // _STA: Status
        Name (_SB.PCI0.BR3A.H001._STA, Zero)  // _STA: Status
        Name (_SB.PCI0.BR3A.D07C._STA, Zero)  // _STA: Status
     
    The actual GFX1 and HDAU PCI device implementation should be valid for SMBIOS macPro6,1 (GFX0), the ASUS X99-A II and any Nvidia Graphics Card implemented in PCIe Slot 0.

    It is a build and PCIe slot population dependent device implementation. Nvidia Graphics Card users with more than one graphics card, or with an Nvidia graphics card in a PCIe slot different from PCIe Slot 0, will have to adopt the respective PCI0, BR3A, H000, H001, D07C, GFX1 device path entries, PCIe Slot definitions and PCI device properties following their respective IOREG entries.

    Note that with 10.13.4, Apple changed the com.apple.driver.AppleHDAController implementation. To make the HDAU PCI device driver work, one needs to add the following KextToPatch entry in Section "Kernel and kext Patches" of Clover Configurator, as already implemented in the config.plist contained in EFI-X99-10.13.4-Release-020418.zip:

    Code (Text):
    Name*                                 Find* [HEX]         Replace* [HEX]        Comment
    com.apple.driver.AppleHDAController   DE100B0E            DE10EF10              FredWst DP/HDMI patch
    Credits to @FreedWst and thanks to @fabiosun for pointing me to this solution.


    E.9.2.3) IMEI - onboard Intel Management Engine Interface (IMEI) Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.IMEI, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Method (_SB.PCI0.IMEI._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x0E)
                {
                    "AAPL,slot-name",
                    Buffer (0x09)
                    {
                        "Built In"
                    },

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

                    "device-id",
                    Buffer (0x04)
                    {
                         0x3A, 0x1E, 0x00, 0x00
                    },

                    "device_type",
                    Buffer (0x10)
                    {
                        "IMEI-Controller"
                    },

                    "name",
                    Buffer (0x28)
                    {
                        "Intel Management Engine Interface (MEI)"
                    },

                    "model",
                    Buffer (0x26)
                    {
                        "Intel X99-A II Chipset MEI Controller"
                    },

                    "compatible",
                    Buffer (0x0D)
                    {
                        "pci8086,1e3a"
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    The IMEI PCI device implementation should be valid for all X99 mainboards and should not require any build specific adaptation/modification. In any case verify device path "PCI0.IMEI" and PCI device implementations by means of IOREG.

    E.9.2.4) GLAN - onboard LAN Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.GLAN, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Method (_SB.PCI0.GLAN._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x0E)
                {
                    "AAPL,slot-name",
                    Buffer (0x09)
                    {
                        "Built In"
                    },

                    "model",
                    Buffer (0x2A)
                    {
                        "Intel i218-V PCI Express Gigabit Ethernet"
                    },

                    "name",
                    Buffer (0x21)
                    {
                        "Intel i218-V Ethernet Controller"
                    },

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

                    "device-id",
                    Buffer (0x04)
                    {
                         0xA1, 0x15, 0x00, 0x00
                    },

                    "subsystem-id",
                    Buffer (0x04)
                    {
                         0xC4, 0x85, 0x00, 0x00
                    },

                    "subsystem-vendor-id",
                    Buffer (0x04)
                    {
                         0x43, 0x10, 0x00, 0x00
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    Note that the GLAN Intel i218-V Ethernet onboard LAN controller PCI implementation is of pure cosmetic nature and valid for the ASUS X99-A II or X99 mainboards with the same LAN Controller configuration. Owners of different X99 mainboards have to verify and adopt/modify if necessary the device path "PCI0.GLAN" and the PCI device implementations by means of IOREG.

    E.9.2.5) XHCI - onboard Extended Host Controller Interface (XHCI) PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.XHCI, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Method (_SB.PCI0.XHCI._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x1A)
                {
                    "AAPL,slot-name",
                    Buffer (0x09)
                    {
                        "Built In"
                    },

                    "device-id",
                    Buffer (0x04)
                    {
                         0x31, 0x8D, 0x00, 0x00
                    },

                    "subsystem-id",
                    Buffer (0x04)
                    {
                         0x00, 0x86, 0x00, 0x00
                    },

                    "subsystem-vendor-id",
                    Buffer (0x04)
                    {
                         0x43, 0x10, 0x00, 0x00
                    },

                    "AAPL,current-available",
                    0x0834,
                    "AAPL,current-extra",
                    0x0898,
                    "AAPL,current-extra-in-sleep",
                    0x0640,
                    "AAPL,device-internal",
                    0x02,
                    "AAPL,max-port-current-in-sleep",
                    0x0834,
                    "name",
                    Buffer (0x19)
                    {
                        "Intel XHC USB Controller"
                    },

                    "model",
                    Buffer (0x2F)
                    {
                        "Intel X99-A II Chipset XHC USB Host Controller"
                    },

                    "device_type",
                    Buffer (0x1F)
                    {
                        "USB eXtensible Host Controller"
                    },

                    "AAPL,clock-id",
                    Buffer (0x05)
                    {
                        "0x01"
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    The XHCI USB3.0 PCI device implementation is valid for the ASUS X99_A II and for all other X99 mainboards with the same XHCI controller chipset. Verify and adopt/modify if necessary device path "PCI0.XHCI" and PCI device implementations by means of IOREG.


    E.9.2.6) ASMedia ASM1142 USB 3.1 Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.RP05.D082, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Scope (\_SB.PCI0.RP05.D082)
        {
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x0A)
                    {
                        "AAPL,slot-name",
                        Buffer (0x09)
                        {
                            "Built In"
                        },

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

                        "device-id",
                        Buffer (0x04)
                        {
                             0x42, 0x12, 0x00, 0x00
                        },

                        "name",
                        Buffer (0x1B)
                        {
                            "ASMedia USB 3.1 Controller"
                        },

                        "model",
                        Buffer (0x28)
                        {
                            "ASMedia ASM1142 USB 3.1 Type-A & Type-C"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    The ASMedia ASM1142 USB 3.1 onboard Intel AHCI SATA controller PCI device implementation is valid for the ASUS X99-A II and for all other X99 mainboards with the same XHC USB3.1 controller ASMedia ASM1142 chipset configuration. Verify and adopt/modify if necessary device path "PCI0.RP05.D082" and PCI device implementations by means of IOREG.

    E.9.2.7) SAT1 - Intel AHCI SATA Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.SAT1, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Method (_SB.PCI0.SAT1._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x0E)
                {
                    "AAPL,slot-name",
                    Buffer (0x09)
                    {
                        "Built In"
                    },

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

                    "name",
                    Buffer (0x16)
                    {
                        "Intel AHCI Controller"
                    },

                    "model",
                    Buffer (0x27)
                    {
                        "Intel X99-A II Chipset SATA Controller"
                    },

                    "compatible",
                    Buffer (0x0D)
                    {
                        "pci8086,8d02"
                    },

                    "device_type",
                    Buffer (0x10)
                    {
                        "AHCI Controller"
                    },

                    "device-id",
                    Buffer (0x04)
                    {
                         0x02, 0x8D, 0x00, 0x00
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    The SAT1 onboard Intel AHCI SATA controller PCI device implementation is valid for the ASUS X99-A II and for all other X99 mainboards with the same AHCI SATA controller chipset. Verify and adopt/modify if necessary device path "PCI0.SAT1" and PCI device implementations by means of IOREG.

    E.9.2.8) EVSS - Intel X99 sSata Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.EVSS, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Method (_SB.PCI0.EVSS._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x0E)
                {
                    "AAPL,slot-name",
                    Buffer (0x09)
                    {
                        "Built In"
                    },

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

                    "name",
                    Buffer (0x1B)
                    {
                        "Intel X99 sSata Controller"
                    },

                    "model",
                    Buffer (0x28)
                    {
                        "Intel X99-A II Chipset sSATA Controller"
                    },

                    "compatible",
                    Buffer (0x0D)
                    {
                        "pci8086,8d62"
                    },

                    "device_type",
                    Buffer (0x10)
                    {
                        "AHCI Controller"
                    },

                    "device-id",
                    Buffer (0x04)
                    {
                         0x62, 0x8D, 0x00, 0x00
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    The EVSS onboard Intel X99 sSATA controller PCI device implementation is valid for the ASUS X99-A II and for all other X99 mainboards with the same X99 sSATA controller chipset. Verify and adopt/modify if necessary device path "PCI0.SAT1" and PCI device implementations by means of IOREG.

    E.9.2.9) NVMe Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):

    External (_SB_.PCI0.BR1B.D075, DeviceObj)    // (from opcode)

     
    PCI Device Implementation:

    Code (Text):
    Method (_SB.PCI0.BR1B.D075._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store (Package (0x0C)
                {
                    "AAPL,slot-name",
                    Buffer (0x09)
                    {
                        "NVMe SSD"
                    },

                    "built-in",
                    Buffer (0x09)
                    {
                        "NVMe SSD"
                    },

                    "device-id",
                    Buffer (0x04)
                    {
                         0x04, 0xA8, 0x00, 0x00
                    },

                    "name",
                    Buffer (0x05)
                    {
                        "NVMe"
                    },

                    "model",
                    Buffer (0x2D)
                    {
                        "Samsung NVMe M.2 SSD 960 EVO 1TB MZ-V6E1T0BW"
                    },

                    "device_type",
                    Buffer (0x3F)
                    {
                        "Samsung Electronics Co Ltd NVMe M.2 SSD Controller SM961/PM961"
                    }
                }, Local0)
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    The current NVMe Controller PCI implementation is purely cosmetic nature and is valid for the ASUS X99-A II and the Samsung EVO 960 1TB. Verify and adopt/modify if necessary device paths "PCI0.BR1B.D075" and the respective PCI device implementations by means of IOREG.

    E.9.2.10) Inateck KTU3FR-502U XHC 7-Port USB 3.0 Controller PCI Implementation

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.BR2A.XHC2, DeviceObj)    // (from opcode)
    PCI Device Implementation:

    Code (Text):
    Device (_SB.PCI0.BR2A.XHC2)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_SUN, 0x03)  // _SUN: Slot User Number
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (0x03)
                    {
                         0x03                
                    })
                }

                Store (Package (0x0A)
                    {
                        "AAPL,slot-name",
                        Buffer (0x0B)
                        {
                            "PCI Slot 3"
                        },

                        "name",
                        Buffer (0x22)
                        {
                            "SuperSpeed XHC USB 3.0 Controller"
                        },

                        "model",
                        Buffer (0x32)
                        {
                            "Inateck KTU3FR-502U XHC 7-Port USB 3.0 Controller"
                        },

                        "device_type",
                        Buffer (0x1F)
                        {
                            "USB eXtensible Host Controller"
                        },

                        "device-id",
                        Buffer (0x04)
                        {
                             0x00, 0x11, 0x00, 0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x6D,
                Zero
            })
        }
        Name (_SB.PCI0.BR2A.H000._STA, Zero)  // _STA: Status
        Name (_SB.PCI0.BR2A.D07F._STA, Zero)  // _STA: Status
    The Inateck KTU3FR-502U XHC 7-Port USB 3.0 PCIe Adapter PCI device implementation is of pure cosmetic nature and only valid for users of the latter XHC USB3.0 PCIe Adapter in PCIe Slot 3. Users of this PCIe Adapter within a PCIe slot population different from PCIe Slot 3 have to adapt/modify the respective path entries PCI0, BR2A, XHC2. Users of XHC USB3.0 PCIe Adapters different from the Inateck KTU3FR-502U XHC 7-Port USB 3.0 PCIe Adapter or users without any additional XHC USB3.0 PCIe Adapter, have to either adopt the entire XHC USB3.0 PCIe Adapter PCI implementation by means of IOREG or can simply skip the entire part.

    E.9.2.11) ARPT - OSX WIFI Broadcom BCM94360CD 802.11 a/b/g/n/ac + Bluetooth 4.0 AirPort Controller PCI Implementation:

    DefintionBlock entry:

    Code (Text):
    External (_SB_.PCI0.RP07.ARPT, DeviceObj)    // (from opcode)

    PCI Device Implementation:

    Code (Text):
    Device (_SB.PCI0.RP07.ARPT)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_SUN, 0x04)  // _SUN: Slot User Number
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (0x04)
                    {
                         0x03                
                    })
                }

                Store (Package (0x08)
                    {
                        "device_type",
                        Buffer (0x13)
                        {
                            "AirPort Controller"
                        },

                        "model",
                        Buffer (0x4A)
                        {
                            "OSX WIFI Broadcom BCM94360CD 802.11 a/b/g/n/ac + Bluetooth 4.0 Controller"
                        },

                        "compatible",
                        Buffer (0x0D)
                        {
                            "pci14e4,43a0"
                        },

                        "name",
                        Buffer (0x10)
                        {
                            "AirPort Extreme"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x6D,
                Zero
            })
        }
    The ARPT OSX WIFI Broadcom BCM94360CD 802.11 a/b/g/n/ac + Bluetooth 4.0 AirPort Controller PCI device implementation is of pure cosmetic nature and only valid for users of the latter WIFI/Bluetooth PCIe Adapter in PCIe Slot 4. Users of this PCIe Adapter within a PCIe slot population different from PCIe Slot 4 have to adapt/modify the respective device path "PCI0.RP07.ARPT". Users of the Asus Prime X299 Deluxe onboard Bluetooth chipset controller or with a completely different WIFI/Bluetooth configuration have to either adopt the entire Airport PCI implementation by means of IOREG or can also skip the entire part.

    E.9.2.12) ThunderboltEX 3 Controller PCI Implementation:

    The ASUS X99-A II is not equipped with the TBEX 3 PCIe adapter. All users of the latter PCIe Adapter I kindly asked to investigate the PCI implementation in the SSDT-X299.aml for the ASUS Prime X299 Deluxe attached and described (Section E.9.2.13) in my Skylake-X/X299 macOS High Sierra 10.13 Desktop Guide.

    E.9.2.13) DTGP Method:

    Code (Text):
    Method (DTGP, 5, NotSerialized)
        {
            If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
            {
                If (LEqual (Arg1, One))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Store (Buffer (One)
                            {
                                 0x03                
                            }, Arg4)
                        Return (One)
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
            }

            Store (Buffer (One)
                {
                     0x00                
                }, Arg4)
            Return (Zero)
        }
    }
    The DTG Method Implementation is required for SSDT functionality and has not to be modified or adopted in any case.

    After successfully implementing the ACPI DSDT Replacement Patch Table, SSDT-ASUS-X99-A-II.aml and ssdt-xosi-aml, my system now possesses full sleep/wake functionality. Absolutely amazing!

    Note the following additional Sleep/Wake requirements:

    a.) Due to the sleep/wake incompatibility of PMdrvr.kext disable EIST in the mobo-BIOS and remove PMdrvr.kext from "/EFI/CLOVER/kexts/Other/". PMDrvr.kext frequently causes a black screen or reboot on wake thus it is up to the users decision to go with EIST and PMdrvr.kext or to go for sleep/wake functionality.


    b.) In D.1/5.5 or D.2/4.e you already copied the appropriate "VoodooTSCSync.kext", which you modified by following error prevention C/8., to the /EFI/Clover/kexts/Other/ directories of your USB Flash Drive and 10.13 System Disk.

    Note once more that "VoodooTSCSync.kext" is absolutely mandatory for sleep/wake functionality!

    c.) I added the "darkwake=1" boot flag to my config.plist by means of Clover Configurator, Section "Boot", "Arguments".

    d.) Note that I also added an additional SSDT-SLEEP.aml, attached towards the end of this post, to the "/EFI/CLOVER/ACPI/patched/-directory " of my System Disk. For a detailed explanation follow THIS LINK to pikeralpha.wordpress.com. Note that after one Sleep/Wake process, one finds adequate IORegistry entries for "IOPMDeepIdleSupported" and "IOPMSystemSleepType" in "IOService:/AppleACPIPlatformExpert/IOPMrootDomain/".
    In contrary, I still miss the "PMStatusCode" entry.

    IOPMrootDomain.png

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


    E.10) Hardware Monitoring:

    HWMonitor.png

    The HWMonitor.app allows to access information from hardware sensors of your hackintosh. It works along with the FakeSMC.kext and some additional Sensor kext-plugins, being already part of the EFI folder attached towards the end of the actual post. To achieve Hardware Monitoring functionality, just download and run the HWMonitor.app (attached towards the end of the actual post) from your Application Folder.

    HWMonitoring.png


    E.11) System Overview CPU Cosmetics

    As our Broadwell-E/EP (Haswell-E/EP) CPU is not properly or fully recognised by OS X, Apple's System Overview ("About This Mac") reveals incomplete or simply wrong CPU details.

    Overview-X99-10.13.1-old.png

    I recently discovered on InsanelyMac a sophisticated fix of pure cosmetic nature developed by Shaneee (also thanks to fabiosun for pointing me to this direction), which allows to implement those CPU details you want to be implemented. For the sake of simplicity, I summarise below the necessary steps.

    1.) Open a terminal and use the following commands:

    Code (Text):
    cp /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.strings ~/Desktop/
    Code (Text):
    sudo mv /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.strings /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.strings-Backup
    2.) Open "AppleSystemInfo.strings" on your Desktop with TextWrangler and change

    Code (Text):
    <key>UnknownCPUKind</key>
    <string>Unknown</string>
    to what ever you want. In my case I choose:

    Code (Text):
    <key>UnknownCPUKind</key>
    <string>4.4 Ghz 10-core 20-thread Broadwell-E i7-6950X</string>
    Save "AppleSystemInfo.strings"

    3.) Run the following terminal commands:

    Code (Text):
    sudo codesign -f -s - ~/Desktop/AppleSystemInfo.strings
    Code (Text):
    sudo cp ~/Desktop/AppleSystemInfo.strings /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/
    and reboot your system.

    4.) Open your config.plist with Clover Configurator and in Section "CPU" set "Type" to "Unknown". Save the config.plist and reboot.

    5.) Apple's System Overview now will reveal the following details:

    Overview.png


    As fall back option enter the following terminal commands:

    Code (Text):
    sudo rm /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.strings
    Code (Text):
    sudo mv /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.strings-Backup /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.string
    and reboot.


    F.) Benchmarking:

    BenchmarkingTeaser.png

    F.1) i7-6950X CPU Benchmarks:

    CPU benchmarks reveal a nearly identical CPU performance under 10.12 and 10.13. Compare the figures below with those published in my 10.12 macOS Sierra Desktop Guide.

    CPU-Geekbench-4.1.2.png
    Cinebench-i7-6950X.png

    F.2) Gigabyte AORUS GTX 1080 TI 11GB Xtreme Edition OpenGL and Metal Benchmarks:

    OpenGL-Geekbench-4.1.2.png
    Metal-Geekbench-4.1.2.png
    Cinebench-OpenGL.png
    LuxMark-v3.1.png
    Unigine-Heaven-4.0.png
    Unigine-Valley-v1.0.png


    F.3) Blackmagic Disk Speed Benchmarks:


    Disk Speed Benchmarks also reveal nearly identical Disk Speed performance under 10.12 and 10.13. Compare the figure below with the one published in my 10.12 macOS Sierra Desktop Guide.

    Disk-Speed-Test.png


    G.) Summary and Conclusion:

    Famous-Last-Words-Featured.jpg

    Already during the individual macOS High Sierra 10.13 beta releases, X99 systems reached full functionality together with flawless stability. Since the Final Release of macOS High Sierra 10.13, it might be the right moment to follow my desktop guide and to unfold the unbelievable X99 potential together with macOS High Sierra 10.13!

    As already mentioned towards the end of my macOS Sierra Desktop Guide, I am quite optimistic that high-end X99 builds can find manifold application, not only in science and research at universities or research institutions, engineering facilities, or medical labs, etc... Latest successful user feedback with respect to Broadwell-EP/Haswell-EP processers with up to 22 cores (44 threads) at clock speeds around 2.8 Ghz each thread makes X99 to a "realtively cheap" but extremely serious alternative to Apple's iMac Pro's and Mac Pro's. The principal intention of this desktop guide was to demonstrate, that we are able to build and configure stable and relatively "low-cost" high-end systems nowadays, that go far beyond of what Apple is able to offer at present or will be ever able to offer for some reasonable pricing. A system based on X99, that allows the use of all software-packages developed for MacOS, Unix, Linux or even Windows at the same time (e.g. think on Vine, Parallels, or a dual boot system configurations). The flexibility between different boards (Asus, Gigabyte, ASRock, MSI, etc.), different processor models (Broadwell-E/EP, Haswell-E/EP) and different RAM memory configurations (16-128GB) makes such system 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 might not be necessary to mentioned in addition that X99 system reached such high level of sophistication and stability to reliably and perfectly run on a 24/7/365 basis.

    I am a scientist, expert in solar physics, space weather forecast and related telescope/instrument/space-mission development. In the frame of my scientific research, I developed parallelized image reconstruction, spectral line inversion and numerical modeling algorithms/applications, which require tremendous parallelized calculation power, ram memory and storage capacities to reduce, analyze and interpret extensive and pioneering scientific ground-based or space-born observational data sets. This basically was also the professional motivation for my 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.

    Good luck and enjoy!

    avatar.png

    KGP
     
    prince537, Damon2018, x1ke and 42 others like this.

    Attached Files:

    Last edited: Apr 1, 2018
  2. tneely

    tneely

    Joined:
    May 12, 2016
    Messages:
    5
    Motherboard:
    MSI x99A Gaming 7
    CPU:
    i7 5820k - OC 4.4
    Graphics:
    Nvidia GeForce GTX Titan X
    Mac:
    Mac Pro
    Jul 12, 2017 at 5:36 PM #2
    tneely

    tneely

    Joined:
    May 12, 2016
    Messages:
    5
    Motherboard:
    MSI x99A Gaming 7
    CPU:
    i7 5820k - OC 4.4
    Graphics:
    Nvidia GeForce GTX Titan X
    Mac:
    Mac Pro
    Great to hear that! Don't forget us "Haswell-E" fans of your guide.
    Cheers!
     
    kgp likes this.
  3. kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Jul 13, 2017 at 1:28 PM #3
    kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Guide completed and ready for use! Enjoy! :thumbup:
     
    d3k1d and pete1959 like this.
  4. dragoonchang

    dragoonchang

    Joined:
    Jul 9, 2015
    Messages:
    60
    Motherboard:
    Asus X99-A II
    CPU:
    E5-2696v3
    Graphics:
    GTX 970
    Mac:
    MacBook Pro
    Jul 13, 2017 at 4:35 PM #4
    dragoonchang

    dragoonchang

    Joined:
    Jul 9, 2015
    Messages:
    60
    Motherboard:
    Asus X99-A II
    CPU:
    E5-2696v3
    Graphics:
    GTX 970
    Mac:
    MacBook Pro
    Great! Nvidia video driver part will help me a lot! I still stuck in it.
     
  5. wayne2401

    wayne2401

    Joined:
    Jun 8, 2015
    Messages:
    7
    Motherboard:
    Asus X99 Deluxe ii
    CPU:
    i7 4790, i7 6900k
    Graphics:
    Sapphire Nitro R9 390X x2
    Mac:
    Mac Pro
    Mobile Phone:
    Android, iOS
    Jul 15, 2017 at 4:40 PM #5
    wayne2401

    wayne2401

    Joined:
    Jun 8, 2015
    Messages:
    7
    Motherboard:
    Asus X99 Deluxe ii
    CPU:
    i7 4790, i7 6900k
    Graphics:
    Sapphire Nitro R9 390X x2
    Mac:
    Mac Pro
    Mobile Phone:
    Android, iOS
    Thank you for this awesome guide, I have a few questions in your kext folder theres a SkylakeGPolicy kext what us the kext for? Also in your clover config your not using -xcpm but you do have custom flags can you explain your custom flags and why youre no longer -xcpm

    MY System
    X99 Deluxe II
    i6900K
    High Sierra Beta 3
     
  6. kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Jul 15, 2017 at 5:48 PM #6
    kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    1.) I guess the SkylakeGPolicy.kext is an intent to reduce graphics glitches caused by the lack of adequate Nvidia 10.13
    Webdrivers.​

    2.) a.) The -xcpm bootflag was already obsolete under 10.12 and latest Clover distributions, as it is also obsolete now under
    10.13...​

    b.) -alcbeta and -lilubeta bootflags are required for AppleALC to work​

    c.) the -igfxbeta bootflag is required for the 10.12 Nvidia webdriver workaround..​


    Question, what do you mean by High Sierra Beta 3? DP3?

    Cheers,

    KGP
     
    wayne2401 likes this.
    Last edited: Jul 15, 2017
  7. kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Jul 15, 2017 at 10:13 PM #7
    kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Guide-Updates 16 July 2017

    • FakeCPUID and XCPM KernelToPatch modifications for Haswell-E and Ivy-Bridge processors added.
    • Modified version of EFI-10.13-TM.zip uploaded.
     
  8. kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    Jul 15, 2017 at 10:23 PM #8
    kgp

    kgp

    Joined:
    May 30, 2014
    Messages:
    3,800
    Motherboard:
    Asus Prime X299 Deluxe, Asus X99-A II
    CPU:
    Intel i9-7980XE, Intel I7-6950X
    Graphics:
    AORUS GTX 1080 TI-X WB, AORUS GTX 1080 TI-X
    Mac:
    iMac, MacBook Pro, Mac mini
    Mobile Phone:
    iOS
    @tneely, good news! My 10.13 macOS HighSierra Desktop Guide should now be fully compatible with Broadwell-E, Haswell-E and Ivy-Bridge processors. I assume that also like in case of 10.12 macOS Sierra, it will be largely compatible with all X99 mobos of ASUS, GYGABYTE, ASRock, MSI etc..

    Cheers :thumbup:

    KGP
     
    tneely likes this.
  9. tneely

    tneely

    Joined:
    May 12, 2016
    Messages:
    5
    Motherboard:
    MSI x99A Gaming 7
    CPU:
    i7 5820k - OC 4.4
    Graphics:
    Nvidia GeForce GTX Titan X
    Mac:
    Mac Pro
    Jul 16, 2017 at 12:58 AM #9
    tneely

    tneely

    Joined:
    May 12, 2016
    Messages:
    5
    Motherboard:
    MSI x99A Gaming 7
    CPU:
    i7 5820k - OC 4.4
    Graphics:
    Nvidia GeForce GTX Titan X
    Mac:
    Mac Pro
    Currently working on a project with my x99 Hack. As soon as I finish will try your guide on a spare ssd.
    Keep up the good work!
    Thanks again!
    cheers
     
    kgp likes this.
  10. dnetcrawler

    dnetcrawler

    Joined:
    May 29, 2012
    Messages:
    66
    Jul 16, 2017 at 11:49 PM #10
    dnetcrawler

    dnetcrawler

    Joined:
    May 29, 2012
    Messages:
    66
    I want to thank you very much for this amazing write up and the share. Using your EFI folder, I was able to get AMD VEGA Frontier Edition working 100% on X99!
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice