Contribute
Register

hanuman's home Mac replacement: GA-Z170-HD3P - i5-6600K - GTX-970

Status
Not open for further replies.
Joined
Apr 1, 2016
Messages
69
Motherboard
GA-Z170X-SOC FORCE
CPU
i7-6700K
Graphics
Vega 64
Mac
  1. MacBook Pro
  2. Mac mini
Classic Mac
  1. Performa
Mobile Phone
  1. iOS
hanuman's home Mac replacement:
GA-Z170-HD3P - i5-6600K - GTX-970



New Components

Intel Core i5-6600K Processor
https://ark.intel.com/products/88191/Intel-Core-i5-6600K-Processor-6M-Cache-up-to-3_90-GHz
https://www.amazon.com/dp/B012M8M7TY/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=N82E16819117561

Cooler Master Hyper 212X CPU Cooler
http://www.coolermaster.com/cooling/cpu-air-cooler/hyper-212x/
https://www.amazon.com/dp/B01IBSR18G/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=13C-000X-00037
https://www.amazon.com/dp/B01IBSR18G/?tag=tonymacx86com-20

Corsair Vengeance® LPX 16GB (2 x 8GB) DDR4 DRAM 3000MHz C15 Memory Kit - Red
http://www.corsair.com/en/vengeance...000mhz-c15-memory-kit-red-cmk16gx4m2b3000c15r
https://www.amazon.com/dp/B00QXT62IG/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=N82E16820233863

Gigabyte GV-N970G1 GAMING-4GD (GTX-970) GPU
http://www.gigabyte.com/products/product-page.aspx?pid=5209#ov
https://www.amazon.com/dp/B00NH5T1MS/?tag=tonymacx86com-20
https://www.newegg.com/Product/BOM.aspx?Item=N82E16814531131

Samsung 750 Evo 250GB 2.5" SATA SSD
http://www.samsung.com/us/business/computing/solid-state-drives/MZ-750250BW
https://www.amazon.com/dp/B01AAKZRP2/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=9SIA12K3WF5647

Seagate Archive ST8000AS0002 8TB Hard Drive
http://www.seagate.com/as/en/enterprise-storage/hard-disk-drives/archive-hdd/
https://www.amazon.com/dp/B00XS423SC/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=9SIABVR5263040

OSXWIFI PC/HACKINTOSH - APPLE BROADCOM BCM94360CD - 802.11 A/B/G/N/AC + BLUETOOTH 4.0
http://www.osxwifi.com/apple-broadc...-bluetooth-4-0-with-adapter-for-pc-hackintosh

Fractal Design Arc Midi R2 Computer Case
http://www.fractal-design.com/home/product/cases/arc-series/arc-midi-r2
https://www.amazon.com/dp/B00C2I07JC/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=N82E16811352031

Corsair CX 650M Bronze Power Supply
http://www.corsair.com/se-fi/cx-series-cx650m-650-watt-80-plus-bronze-certified-modular-atx-psu-na
https://www.amazon.com/dp/B01B72W1VA/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=N82E16817139148

Dell UltraSharp 25" Monitor - U2515H
http://www.dell.com/us/business/p/dell-u2515h-monitor/pd
https://www.amazon.com/dp/B00SPWPF1O/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=9SIABMT55B5889


Already Owned

Gigabyte GA-Z170-HD3P Motherboard
http://www.gigabyte.com/products/product-page.aspx?pid=5495#ov
https://www.amazon.com/dp/B012N6LOZS/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=N82E16813128842

3 x Western Digital WD Green WD20EARX 2TB Hard Drives
https://www.amazon.com/dp/B004VFJ9MK/?tag=tonymacx86com-20
https://www.newegg.com/Product/Product.aspx?Item=N82E16822136891


Comments

It's probably a bit unusual to have the motherboard (especially a fairly new one) listed under "Already Owned" but that fact speaks to the slightly convoluted history of this build. It's my second Hackintosh build (for personal use; I do maintain a number of Hacks at work) but the motherboard came from my first build - the story of that build will come later. That first build was done specifically to meet a professional requirement for a media workstation, a need which could have been met by the 27" 5K iMac, and I might well have gone down that path had Apple been able to supply a built-to-order model in time. As it was, I didn't have the time, and, since I'd recently come into contact with a friend's company that relied on Hackintoshes, I was swung around to the idea of doing a Hack instead. That decision turned out to be a good one to the extent that I was able to, later on, source a very cheap 2nd-hand 16TB SAS RAID (Sonnet DX800) and add it to the workstation, something that would have been impractical (and expensive) with the iMac or even a current Mac Pro.

The addition of that RAID, plus the prospect of further expansions like 10GigE or HD-SDI video output highlighted the limitations of the GA-Z170-HD3P although otherwise the board had proven to be surprisingly compliant as a Hackintosh platform and its performance was quite good, indeed better than the 5K iMac. So, after only 6 months the HD3P was swapped out for a Gigabyte GA-Z170X SOC FORCE, one of the relatively few Skylake boards with the PCIe multiplexer needed to get the requisite number of PCIe lanes to run the RAID at x8 while keeping the GPU running at x16, with room for further expansion. This left me with an orphaned motherboard forlornly sitting there, just waiting for a home.

As it happened, my main home unit was a loyal but ageing 2009 Core 2 Duo 24" iMac, which, while still more than usable, was starting to be clearly off the pace for modern times. Most particularly it had come to the end of the line for OS updates, stopping at El Capitan but also the latest version of Safari seemed to be a bridge too far, with regular spinning beach balls; my wife's 300 gigabyte Apple Photos library was just too much and had to be split into years; synching i-devices was starting to be very flaky; it couldn't play back my 50p or 60p Nikon D810 video recordings smoothly; it couldn't play back a lot of web video content smoothly. The time was more than ripe to replace this machine with something current.

The obvious candidates, the late-2015 5K or 4K iMac models, I deemed to be both over-budget and problematic regarding storage. The thing was that I'd ended up with a 2TB internal hybrid drive, an external Firewire 800 2TB drive and an external USB3 4TB drive to act as Time Machine (at USB2 speed). I didn't particularly want my main storage split between internal and external but I would have had to have maintained that arrangement with a new iMac since the maximum offering is a 3TB fusion drive. The FW800 (also eSata) drive would also have to either be downgraded to USB2 (unacceptable) or else an adapter found to use it at high speed via Thunderbolt. This didn't appeal either and the reliance Apple has, and expects its users to have, on Thunderbolt as the sole expansion mechanism for all Macs is a really problematic approach, in my opinion.

Key Components

This system has been set up to be just slightly below the spec. of my main workstation in every area, to keep the budget down. There is one piece, though, that the big rig doesn't yet have and is almost the lynchpin of the whole build, a drop-in WiFi/Bluetooth card with a real Apple part:

OSXWIFI PC/HACKINTOSH - Combo WiFi/Bluetooth Card:

I wasn't going to put a Hack in the home unless I could get almost all the benefits and features of a Mac, and that meant getting support for Continuity. I didn't want to deal with this particular issue with hacked kexts either. There might well be a cheaper solution than this but this card features an actual Apple part mounted onto a PCIe x1 card with a USB2 connection to a MoBo header. It particularly caught my eye that the device provided mouse service in the UEFI screens. Nice. Literally plug-and-play.

Gigabyte GA-Z170-HD3P:

As previously indicated this board came out of a previous, successful, build and I had become well acquainted with its needs regarding Hackintosh configuration. My experience with other platforms (particularly the cranky X99) has shown that it was a lucky good decision on my part to go with the Skylake as a first build because it proved to be a fairly predictable player. I think particularly that the removal of EHCI, in conjunction with the restrictions of El Capitan, actually made it easier and more intuitive to correctly configure the USB ports, with great help from some important instructional postings on this site.

Fractal Design Arc Midi R2:

Yes, a far cry from the elegance of an iMac but it's hidden away under the table and it can fit a lot of stuff. I like the Fractal drive trays and the side panels are easily removed. A bit too small for really large liquid radiators but has no problem with the Corsair air cooler.

Intel Core i5-6600K & Cooler Master Hyper 212X CPU Cooler:

I'm not a huge fan of overclocking a Hackintosh since I find that just getting native power management working is victory enough without complicating things further with an overclock. I've left myself the option of playing with overclocking later by getting the i5-6600K but I was more moved by the fact that the i5-6600K was only slightly more expensive than the i5-6600. If you want minimum pain then I think it's wise to set up a Hackintosh to match as closely as possible, hardware-wise, an existing Mac model, in this case the 17,1 iMac. Apple doesn't use the i5-6600K but they do use the i5-6600. Close enough. I figured that the needs at home did not really justify a Core i7.

Samsung 750 Evo 250GB SSD;
3 x Western Digital WD Green 2TB Hard Drives;

Seagate Archive 8TB Hard Drive:


I'd put in a 250GB and 2x500GB (in RAID-0) Samsung 850 Evo drives into my workstation and was very happy with them so it was a natural choice to go to the more budget-oriented 750 Evo for the home system. Amongst my collection of spinning drives associated with the workstation I had 3 of the same type, WD Green 2TB. Iv'e gotten very used to the speed of SSDs or fast RAIDs and saw the opportunity to get some large capacity at high speed by means of a software RAID-0 using the 3 WD drives. The conventional form-factor and feature-set of the proposed Hackintosh made this feasible since the drives could be internally mounted and connected to SATA III ports. The 8TB Archive drive provides the Time Machine protection although I probably should seek further protection somewhere down the line since the RAID-0 obviously adds higher risk of failure. The soft RAID added a complication regarding Clover and I had to learn about custom boot entries to get past it.

Gigabyte GTX-970 GPU:

It's not a good time to be buying a GPU for a Hackintosh right now and to be honest, if Pascal drivers never turn up from nVidia then we're in a bit of a bind. Current generation GPUs from nVidia and AMD are just not supported. For this build I wanted VR capability (I will certainly add a Windows 10 installation to this at some stage) and so chose the realistic minimum card to provide it. At one point I was going to run it initially just on integrated graphics before upgrading to discrete GFX later but I saw too many reported issues with the HD530, including on Apple's own machines, to be comfortable with that.


The Transition, Stage One - A Change of Plans

For the moment, you're not going to see a step-by-step "create an install disk, install Clover, boot to the installer etc. etc." because that didn't happen for this build. The project was to take my existing iMac installation and transition it directly to new hardware in the form of a Hackintosh. I'm not a fan at all of re-installing from scratch unless really necessary. Over the years I've done a whole bunch of migrations to new Macs by migrating everything, users, Applications, network settings warts and all. OSX has shown itself to be pretty resilient to this kind of treatment, especially compared to Windows. As it happened, though, I had in fact done a bare metal re-installation of the iMac a few months prior (the first time I'd done it since it was new in 2009, actually) so for me that installation was still very fresh.

The plan was to simply lift the 2TB hybrid drive out of the iMac, mount it in the Hack case and set about making it work under Clover. Additionally, the 2TB Firewire drive was to be removed from its enclosure and also mounted inside the case. In both cases the arrangement was to be temporary. This configuration would then be then exactly the same as in the old iMac in terms of volume names and so forth. Later on I would implement the RAID idea and install an SSD boot drive and a larger Time machine drive. In the event I decided to do all of that at once although I did go through the above configuration briefly during the procedure.

Before removing the drive there were a few preliminary steps:
  • De-activated Photoshop CS6.
  • De-authorized iTunes.
  • Signed out of App Store.
  • Signed out of iCloud.
Because of my prior success with the motherboard I expected little drama in getting the system to start, since I still had the configuration files from when it was running my main workstation, but drama was exactly what was had. I was primed for a variety of Hack-ish boot problems and armed with pre-tested solutions but the last thing I expected was for the system not to even get to first base. After assembling the system, the first power-on set the fans running loudly at full speed (much like an old Power Mac G5 can do) for about 10 seconds, which was already alarming, before, to my relief, slowing to normal operating idle. Then, before anything appeared on screen, the system powered itself down and back up again. Sometimes a system does this when something's been added or its BIOS reset or something like that. But it never came up, going into an endless cycle of: lights & fans-up, wait, all-off, repeat. It looked possible that the CPU or motherboard was fried. Fortunately neither was the case. I completely tore down the build and the source of the problem turned out to be an over-abundence of thermal paste! The paste had oozed under the CPU and was actually covering a number of contacts. After cleaning the CPU and socket (very carefully!) I was very relieved to see the breadboarded unit stay on and eventually displaying the Gigabyte logo when a screen was connected.

The Hackintosh got up and running fairly smartly after that false start. I always have my MacBook Air at hand when doing Hack configuration work. It's somewhat paradoxical that I find that the two most useful tools for Hackintosh hacking are a real Macintosh and a Windows installation on the target machine. Here were the steps of the transition:

  • A Clover boot disk was created on a USB thumb drive. I always like to have a bootable secondary drive when doing Hack maintenance work.
  • The old Clover EFI folder (backed up from the prior, working installation) was copied to the thumb drive, replacing the just installed one. The reason for using a removable drive is to make it easy to change the Hackintosh boot environment using the MacBook Air if for some reason the Hack doesn't boot. On the Air I use Clover Configurator, Text Wrangler or Xcode to modify the plist files.
  • FakeSMC.kext and USBInjectAll.kext were already in /EFI/CLOVER/kexts/10.11/ of the EFI partition on the USB drive. At this stage no Hackintosh-specific files of any kind were on the target system drive.
    • I think I'm right in saying that the only "alien" kext required to start a Skylake system is FakeSMC.kext. Obviously a few things won't work and the video system will be pretty glitchy but the system will get up to a point where further work can be done on the running system.
  • From the prior installation I had SSDT files relating to power management and USB ports still in place. Since the power SSDT was for an i7-6700K I discarded it but kept the USB file for the time being.
  • I opened up the intended config.plist in Clover Configurator and gave the new Hackintosh a unique identity, with an unused serial number. I also cleaned out several patches that I guessed were no longer relevant or would be re-applied during post-install. The config.plist ended up something like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ACPI</key>
    <dict>
        <key>DSDT</key>
        <dict>
            <key>Debug</key>
            <false/>
            <key>DropOEM_DSM</key>
            <dict>
                <key>ATI</key>
                <false/>
                <key>Firewire</key>
                <false/>
                <key>HDA</key>
                <true/>
                <key>HDMI</key>
                <false/>
                <key>IDE</key>
                <false/>
                <key>IntelGFX</key>
                <false/>
                <key>LAN</key>
                <false/>
                <key>LPC</key>
                <false/>
                <key>NVidia</key>
                <false/>
                <key>SATA</key>
                <true/>
                <key>SmBUS</key>
                <false/>
                <key>USB</key>
                <false/>
                <key>WIFI</key>
                <false/>
            </dict>
            <key>Fixes</key>
            <dict>
                <key>AddDTGP_0001</key>
                <true/>
                <key>AddHDMI_8000000</key>
                <true/>
                <key>AddPNLF_1000000</key>
                <true/>
                <key>DeleteUnused_400000</key>
                <true/>
                <key>FIX_ADP1_800000</key>
                <true/>
                <key>FIX_S3D_2000000</key>
                <true/>
                <key>FIX_TMR_40000</key>
                <true/>
                <key>FixHDA_8000</key>
                <true/>
                <key>FixHPET_0010</key>
                <true/>
                <key>FixRegions_10000000</key>
                <true/>
                <key>NewWay_80000000</key>
                <true/>
            </dict>
            <key>ReuseFFFF</key>
            <false/>
        </dict>
        <key>DropTables</key>
        <array>
            <dict>
                <key>Signature</key>
                <string>SSDT</string>
                <key>TableId</key>
                <string>Cpu0Ist</string>
            </dict>
            <dict>
                <key>Signature</key>
                <string>SSDT</string>
                <key>TableId</key>
                <string>CpuPm </string>
            </dict>
        </array>
        <key>SSDT</key>
        <dict>
            <key>DropOem</key>
            <false/>
            <key>Generate</key>
            <false/>
        </dict>
    </dict>
    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>dart=0 -xcpm nvda_drv=1 kext-dev-mode=1 rootless=0</string>
        <key>CustomLogo</key>
        <false/>
        <key>Debug</key>
        <false/>
        <key>DefaultVolume</key>
        <string>XXXXXXXX</string>
        <key>Secure</key>
        <false/>
        <key>Timeout</key>
        <integer>5</integer>
        <key>XMPDetection</key>
        <string>Yes</string>
    </dict>
    <key>CPU</key>
    <dict>
        <key>UseARTFrequency</key>
        <false/>
    </dict>
    <key>Devices</key>
    <dict>
        <key>Audio</key>
        <dict>
            <key>Inject</key>
            <string>3</string>
            <key>ResetHDA</key>
            <true/>
        </dict>
        <key>USB</key>
        <dict>
            <key>AddClockID</key>
            <true/>
            <key>FixOwnership</key>
            <true/>
            <key>Inject</key>
            <true/>
        </dict>
    </dict>
    <key>GUI</key>
    <dict>
        <key>Mouse</key>
        <dict>
            <key>DoubleClick</key>
            <integer>500</integer>
            <key>Enabled</key>
            <false/>
            <key>Mirror</key>
            <false/>
            <key>Speed</key>
            <integer>8</integer>
        </dict>
        <key>Scan</key>
        <true/>
        <key>Theme</key>
        <string>bootcamp</string>
    </dict>
    <key>Graphics</key>
    <dict>
        <key>Inject</key>
        <dict>
            <key>ATI</key>
            <false/>
            <key>Intel</key>
            <false/>
            <key>NVidia</key>
            <false/>
        </dict>
        <key>NvidiaSingle</key>
        <false/>
        <key>ig-platform-id</key>
        <string>0x19120000</string>
    </dict>
    <key>KernelAndKextPatches</key>
    <dict>
        <key>AppleRTC</key>
        <true/>
        <key>AsusAICPUPM</key>
        <false/>
        <key>Debug</key>
        <false/>
        <key>KernelCpu</key>
        <false/>
        <key>KernelHaswellE</key>
        <false/>
        <key>KernelLapic</key>
        <false/>
        <key>KernelPm</key>
        <false/>
    </dict>
    <key>RtVariables</key>
    <dict>
        <key>BooterConfig</key>
        <string>0x28</string>
        <key>CsrActiveConfig</key>
        <string>0x067</string>
    </dict>
    <key>SMBIOS</key>
    <dict>
        <key>BiosReleaseDate</key>
        <string>09/22/2015</string>
        <key>BiosVendor</key>
        <string>Apple Inc.</string>
        <key>BiosVersion</key>
        <string>IM171.88Z.0105.B08.1604111319</string>
        <key>Board-ID</key>
        <string>Mac-B809C3757DA9BB8D</string>
        <key>BoardManufacturer</key>
        <string>Apple Inc.</string>
        <key>BoardType</key>
        <integer>10</integer>
        <key>BoardVersion</key>
        <string>iMac17,1</string>
        <key>ChassisAssetTag</key>
        <string></string>
        <key>ChassisManufacturer</key>
        <string>Apple Inc.</string>
        <key>ChassisType</key>
        <string>13</string>
        <key>Family</key>
        <string>iMac</string>
        <key>LocationInChassis</key>
        <string>Part Component</string>
        <key>Manufacturer</key>
        <string>Apple Inc.</string>
        <key>ProductName</key>
        <string>iMac17,1</string>
        <key>SerialNumber</key>
        <string>XXXXXXXXXXXX</string>
        <key>Trust</key>
        <false/>
        <key>Version</key>
        <string>1.0</string>
    </dict>
    <key>SystemParameters</key>
    <dict>
        <key>InjectKexts</key>
        <string>Yes</string>
        <key>InjectSystemID</key>
        <true/>
    </dict>
</dict>
</plist>
I can confirm that this config.plist will boot the macOS Sierra installer on this motherboard. A trap I've fallen into a few times with this board relates to the FixLAN DSDT fix. With an Intel GigE PCIe LAN card mounted, FixLAN is mandatory to avoid a panic on boot. However, a panic is also certain to happen if the card is removed and the FixLAN switch is left on.
  • First boot-up (into El Capitan 10.11.6) was done using nv_disable=1 for the reason that, with an SMBIOS indicating iMac17,1, a vanilla AppleGraphicsControl.kext would guarantee a black screen on startup when using nVidia web drivers, which were already present in the existing installation. Accordingly, the first hack was to modify /S/L/E/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist. For my particular configuration that meant finding the entry: <key>Mac-B809C3757DA9BB8D</key> and changing the value one line below it from config2 to none. Then I ran
    Code:
    sudo kextcache -system-prelinked-kernel && sudo kextcache -system-caches
    to make the hack stick.
    • If you are using an nVidia card with iMac17,1, (and a couple of others) then get used to doing this hack after every macOS point update because such an update will reset AppleGraphicsDevicePolicy.kext.
    • SIP must be disabled, fully or partially, to enable the loading of AppleGraphicsControl.kext, since its signature will now be invalid. The boot flags rootless=0 and kext-dev-mode=1 don't apply for most versions of El Capitan and any version of Sierra and SIP is now controlled by Clover, configured by CsrActiveConfig under Rt Variables in Clover Configurator. Select 0x0 for enabled, 0x3 for partially disabled (loads unsigned kexts) and 0x67 for fully disabled.
  • I deleted NetworkInterfaces.plist and preferences.plist from /Library/Preferences/SystemConfiguration/ and rebooted. The Magic Mouse had already paired itself and WiFi was working.
  • The next step was to get the system to boot itself, without the need for the USB stick. Mac-formatted GPT drives always have an EFI partition of exactly the same size (209715200 bytes reported by diskutil info) so I feel comfortable using dd to make backups and clones. I wasn't (and still am not) sure, though, whether dd makes the partition bootable so to be sure I installed clover to the system hard drive and then immediately replaced the EFI partition with a command like sudo dd if=/dev/disk4s1 of=/dev/disk0s1.
    • IMPORTANT: don't just copy that command because it depends on how your drives are named under OSX. First, do a diskutil list and have a good look at the device names and how they match up to your Finder names of mounted drives. If in any doubt then just don't do it this way.
  • Next step, after the first successful start under its own steam, was to enable Realtek ethernet which was done simply from Multibeast, selecting the latest version of RealtekRTL8111.
  • Audio was next. The Dell monitor came with the AC511 USB SoundBar and that just worked out of the box, right down to the rotary volume knob controlling the volume levels in software. I wanted the internal audio to work as well and doing that was much easier than when I'd done it for the same board in April 2016. At that time I had used command line scripts and needed to have a couple of attempts at it to get it right but this time that whole routine was also accomplished easily by installing ALC887/888b with Multibeast 8.2.3. Three things are supposed to happen: a kext gets put into /L/E; /S/L/E/AppleHDA.kext gets modified by the addition of files into /Contents/Resources; a kext patch is applied to AppleHDA.kext to enable those new resource files and other things. All three of these things have to happen for audio to work. Getting your ID injection right is also important to getting sound. I'm using ID 3 for this system. I confirmed with headphones that the audio was working and was pleased to see that the output device changed from "Internal Speakers" to "Headphones".
Post-Transition Fine Tuning

By this stage the Hackintosh was behaving well but two important tweaks remained: getting power management working properly and re-visiting the USB configuration.

XCPM
For power management I turned to Piker-Alpha's ssdtPRGen.sh at:
https://github.com/Piker-Alpha/ssdtPRGen.sh
I ran the script and copied the resulting file, ssdt.aml (found in ~/Library/ssdtPRGen/), to /Volumes/EFI/EFI/ACPI/patched after using Clover Configurator to mount the EFI partition. In conjunction with this SSDT an entry needs to be included in the config.plist Drop Tables. For me this is best done in Clover Configurator:

In my case there are two CPU-related Drop Tables. For good measure I also set the -xcpm boot flag. Using this page from Piker-Alpha's blog as a guide:

https://pikeralpha.wordpress.com/2016/07/26/xcpm-for-unsupported-processor/

I could see that XCPM appeared to working and kextstat showed that AppleIntelCPUPowerManagement.kext was not loaded and the output of Piker-Alpha's AppleIntelInfo.kext showed a full complement of P-States. All Good.

USB
In April 2016 the procedure for getting all USB ports working under El Capitan seemed daunting but actually it turns out to really straightforward for an entry-level Skylake board with only the chipset XHCI controller to worry about. Actually the GA-Z170-HD3P does have an Asmedia chip for the red USB3.1 port and the USB-C port, but I'll get on to those later.

Evidently, one reason that USB ports get messed up in Hackintoshes is that the OS has been deceived into believing it's running on an actual Apple Macintosh model which implies a certain specific USB configuration. So the OS tries to load USB support for the ports it's expecting to see but ends up finding that most of them are not there. The purpose of the procedure I followed is to make the system inject a specific set of USB ports, tailored to the motherboard at hand.
I relied heavily on the Skylake Starter Guide, particularly section 7.2:

https://www.tonymacx86.com/threads/10-11-0-10-11-3-skylake-starter-guide.179221/

A good deal of that guide is out of date now for later versions of El Capitan and for Sierra but the USB section is still useful. The keys to making the procedure work (apart from patience and a calm methodical approach) are to use RehabMan's USBInjectAll.kext and (temporarily) the port limit patch in Clover's config.plist. The patch in the Starter Guide raises the limit to 30 but more recent versions of the patch (different patches for El Capitan and Sierra, BTW) hold the limit to the maximum available in the 100 series chipset, 26. The normal limit, set (for some reason) by Apple in El Capitan and Sierra, is 15 per controller. It sounds like a lot of ports but USB3 ports are 2-in-1, with USB2 and USB3 being routed down seperate wires. The humble GA-Z170-HD3P actually has 13 USB2 ports and 7 USB3 ports for a total of 20. There is one more patch recommended by RehabMan and you can see it in the Clover Configurator grab above. This page explains why it's there:

https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/

That guide also describes two patches relating to EHCI controllers but, since my Skylake board doesn't have any EHCI controllers, I don't use the patches in my config.plist.

If you only load USBInjectAll.kext without doing anything else you will almost certainly be missing a number of ports. When I tested this on my GA-Z170X-SOC FORCE I only saw one USB3 port. To get them all you need to use the port limit patch. It appears to be technically possible to just run the Hackintosh with the port limit permanently raised and USBInjectAll.kext loaded - you should get all of your ports. But Apple must have put that limit there for a reason so it makes good sense to play their game and inject 15 or less ports. It's not actually that hard to do since not all motherboard headers are likely to be in use and there's bound to be a couple of unused ports at the back that won't be missed. You might not be able to run your flight yoke and instruments along with an Oculus Rift and two sensors but, well, nobody's going to be doing that on a Hackintosh are they?

After carefully testing and documenting every USB port according to the guide I ended up with a source file like so:

PHP:
DefinitionBlock ("SSDT-USB.aml", "SSDT", 1, "sample", "USBFix", 0x00003000)
{
    // "USBInjectAllConfiguration" : override settings for USBInjectAll.kext
    Device(UIAC)
    {
        Name(_HID, "UIA00000")
        // "RehabManConFiguration"
        Name(RMCF, Package()
        {
            // XHC overrides for 100-series boards
            "8086_a12f", Package()
            {
                "port-count", Buffer() { 0x19, 0, 0, 0}, // Highest port number is SS09 at 0x19
                "ports", Package()
                {   // TO COMPLETE THIS FILE, ADD ALL YOUR PORTS BELOW HERE, THEN SET port-count ABOVE
                    "HS01", Package() // USB2 device on MoBo F_USB30_1 Blue port L, port <01 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x01, 0, 0, 0 },
                    },
                    "HS02", Package() // USB2 device on MoBo F_USB30_1 Blue port R, port <02 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x02, 0, 0, 0 },
                    },
                    "HS03", Package() // USB2 device on BackPlate Blue port below HDMI L, port <03 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x03, 0, 0, 0 },
                    },
                    "HS04", Package() // USB2 device on BackPlate Blue port below DVI, port <04 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x04, 0, 0, 0 },
                    },
                    "HS05", Package() // USB2 device on MoBo F_USB30_2 Blue port R, port <05 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x05, 0, 0, 0 },
                    },
                    "HS06", Package() // USB2 device on MoBo F_USB30_2 Blue port L, port <06 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x06, 0, 0, 0 },
                    },
                    "HS07", Package() // USB device on MoBo F_USB1 Black port R, port <07 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x07, 0, 0, 0 },
                    },
                    "HS08", Package() // USB device on MoBo F_USB1 Black port L, port <08 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x08, 0, 0, 0 },
                    },
                    "HS09", Package() // USB2 device on BackPlate Blue port below HDMI R, port <09 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x09, 0, 0, 0 },
                    },
                    "HS11", Package() // USB device on MoBo F_USB2 Black port R, port <0b 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0b, 0, 0, 0 },
                    },
                    "HS12", Package() // USB device on MoBo F_USB2 Black port L, port <0c 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0c, 0, 0, 0 },
                    },
                    "HS13", Package() // USB device on BackPlate Black port beside PS2 R, port <0d 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0d, 0, 0, 0 },
                    },
                    "HS14", Package() // USB device on BackPlate Black port beside PS2 L, port <0e 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0e, 0, 0, 0 },
                    },
                    "SS01", Package() // USB3 device on MoBo F_USB30_1 Blue port L, port <11 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x11, 0, 0, 0 },
                    },
                    "SS02", Package() // USB3 device on MoBo F_USB30_1 Blue port R, port <12 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x12, 0, 0, 0 },
                    },
                    "SS03", Package() // USB3 device on BackPlate Blue port below HDMI L, port <13 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x13, 0, 0, 0 },
                    },
                    "SS04", Package() // USB3 device on BackPlate Blue port below DVI, port <14 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x14, 0, 0, 0 },
                    },
                    "SS05", Package() // USB3 device on MoBo F_USB30_2 Blue port R, port <15 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x15, 0, 0, 0 },
                    },
                    "SS06", Package() // USB3 device on MoBo F_USB30_2 Blue port L, port <16 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x16, 0, 0, 0 },
                    },
                    "SS09", Package() // USB3 device on BackPlate Blue port below HDMI R, port <19 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x19, 0, 0, 0 },
                    },
                },
            },
        })
    }
}
That's all 20 ports, with the port address and connector type for each port. It's clear to see that HS01 and SS01, for example, share the same physical USB3 socket. HS07 and HS08 (on the F_USB1 motherboard header) are USB2 only, shown by the UsbConnector marked as 0 in each case. This file was complied and saved as an ACPI machine language file (extension .aml) and copied to /EFI/EFI/CLOVER/ACPI/patched as ssdt-1.aml. Great, but it's still 5 ports too many. Fortunately you can kill off whatever ports you want at boot time with the uia_exclude boot flag. By adding
-uia_exclude=HS05;HS06;HS08;HS11;HS12;SS05;SS06 I disabled all of the unused header ports for a total of 13 active ports.

After removing the port limit patch and rebooting, the USB ports appeared as follows:


All present and accounted for and all working as expected.


The Transition, Stage Two - Replacing the Rug While Still Standing on It

The Hackintosh was now in good shape and running from the old iMac's 2TB hybrid system drive. The plan was always to replace that arrangement with a 250GB SSD boot drive and 3x2TB spinning-disk software RAID-0. There was already about 1.2TB on the hybrid drive so a clone right away was not on the cards but in principal the procedure was simple since all but about 40GB was under /Users. I just had to get the /Users directory over to the RAID and delete it off the hybrid before cloning what remained of the hybrid over to the new SSD. But first I had to get a new Time Machine up an running.

Cloning the Time Machine Drive
Time Machine had to go onto a larger drive because the planned capacity of the system exceeded the limits of the existing 4TB drive but I wanted to preserve the existing Time Machine archive, on the new drive. I chose to use the command line tool ditto to achieve this, it's pretty much built for the job. When I re-enabled Time machine and selected the new drive it was clear that Apple has thought about this scenario because the system asked me about whether to maintain the history, which I did.

Setting up the RAID
The machine was still running El Capitan at this point so the RAID had to be built in Terminal with a command. It's been erroneously reported a lot that Apple pulled RAID support from El Capitan but it was always possible to do it in Terminal. Here is a good guide:

https://www.tekrevue.com/tip/create-raid-el-capitan/

Copying /Users to The RAID
Once again I went to ditto to do this. If you're going to do directory duplication without using Finder it's important to use a tool that understands all of Apple's extended file attributes, which ditto evidently does while also preserving ownership and permissions. With the drives all connected to SATA III ports, this copying occurred at high speed - around 150 megabytes-per-second for large parts of it with bursts of 180MB/s.

Getting Clover to Play Nice with a RAID
I'd had previous experience with a Clover bug which causes the boot manager to hang or crash when it encounters some kinds of software RAID, so I knew I was going to have to learn how to do custom entries. To stop the hang you have to stop Clover from scanning the volumes and if you stop that happening then you have to tell Clover explicitly where the boot files are.
Here's a bit of a flash-forward. This is what the custom entries ended looking like in config.plist:
Code:
            <array>

                <dict>
                    <key>Disabled</key>
                    <false/>
                    <key>Ignore</key>
                    <false/>
                    <key>NoCaches</key>
                    <false/>
                    <key>Path</key>
                    <string>\System\Library\CoreServices\boot.efi</string>
                    <key>Title</key>
                    <string>XXXXXXXXX</string>
                    <key>Type</key>
                    <string>OSX</string>
                    <key>Volume</key>
                    <string>PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x0,0xFFFF,0x0)\HD(2,GPT,XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,0x64028,0x1CFEBA00)</string>
                    <key>VolumeType</key>
                    <string>Internal</string>
                </dict>
                <dict>
                    <key>Disabled</key>
                    <false/>
                    <key>Ignore</key>
                    <false/>
                    <key>NoCaches</key>
                    <false/>
                    <key>Path</key>
                    <string>\com.apple.recovery.boot\boot.efi</string>
                    <key>Title</key>
                    <string>Recovery</string>
                    <key>Type</key>
                    <string>OSXRecovery</string>
                    <key>Volume</key>
                    <string>PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x0,0xFFFF,0x0)\HD(3,GPT,XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,0x1D08FA28,0x135F20)</string>
                    <key>VolumeType</key>
                    <string>Internal</string>
                </dict>
                <dict>
                    <key>Disabled</key>
                    <false/>
                    <key>Ignore</key>
                    <false/>
                    <key>NoCaches</key>
                    <false/>
                    <key>Path</key>
                    <string>\Backups.backupdb\.RecoverySets\2\com.apple.recovery.boot\boot.efi</string>
                    <key>Title</key>
                    <string>Recovery</string>
                    <key>Type</key>
                    <string>OSXRecovery</string>
                    <key>Volume</key>
                    <string>PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x4,0xFFFF,0x0)\HD(2,GPT,XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,0x64028,0x3A376EA60)</string>
                    <key>VolumeType</key>
                    <string>Internal</string>
                </dict>
            </array>
There's three entries there, for System, Recovery and Time Machine boots.
Ideally, each custom boot entry should include a long "PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x0,0xFFFF,0x0)\HD(3,GPT etc. etc." volume identifier but the volume name that appears on the Desktop also works. That latter method strikes me as a bit weak so I wanted to do it properly. The easiest way I could think of to get those IDs was to log a Clover scan-and-boot and read the results. In preparation for doing that I rebooted, disabled the 3x2TB drives in UEFI (disabling the RAID) and allowed the computer to start normally. To get the log you press F2 at the Clover selection screen and, after startup, navigate to /EFI/EFI/CLOVER/misc to a file called preboot.log. In there is all of the information needed to correctly identify the volumes. I used Clover Configurator to set up the custom entries. In addition to the volume you need to point Clover to the boot file itself, as in: \System\Library\CoreServices\boot.efi

Enabling the New User Folders
This is done quite simply in the macOS System Preferences, by going to each user in Users & Groups and choosing the new home folder. That is done from Advanced Options, by right-clicking on a user. I'm sure it's a really terrible idea to change the home folder of yourself while you're logged in so I did it all from a root login. There was a bit of a bedding in period after this - a few Apple programs are not expecting their data to ever be moved and some did ask some questions or preformed re-builds while re-orienting themselves on first run after changing the user folders.

Cloning the System
At this point I allowed Time Machine to do a compete update of the status quo and then removed the user folders from the /Users folder. Then I was able to mount the new 250Gb SSD into its final home and clone the system onto it, using Super Duper, remembering to also clone the EFI partition after that. Then an installation of Clover onto the SSD to make sure it was bootable and the job was done, for El Capitan.

The Transition, Stage Three - Sierra

I ran El Capitan while re-licensing software and re-connecting to iCloud including Messages and the App Store. Before doing this I went through a more thorough locking down of the SMBIOS by adding a board serial number, an SmUUID and filling in the ROM and MLB boxes in Rt Variables. I confirmed that I could send and receive messages. When I was happy with everything I went ahead and installed Sierra by running Install macOS Sierra.app. I went on and allowed App Store to update to 10.12.2 and then apply updates to Keynote, Numbers and Pages. This all proceeded without trouble, other than the requirement to modify /S/L/E/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist before installing compatible nVidia web drivers after the initial Sierra install and again following the 10.12.2 update. I also ran the the ethernet and audio procedures again with the Sierra version of Multibeast.

USB Tweak
As I got to understand the operation of USBInjectAll.kext a bit better I decided restrict the USB ports by only including my needed ports in the SSDT, doing away with the uia_disable boot option, so the revised SSDT source for USB ports became:
PHP:
DefinitionBlock ("SSDT-USB.aml", "SSDT", 1, "Apple", "USBFix", 0x00003000)
{
    // "USBInjectAllConfiguration" : override settings for USBInjectAll.kext
    Device(UIAC)
    {
        Name(_HID, "UIA00000")
        // "RehabManConFiguration"
        Name(RMCF, Package()
        {
            // XHC overrides for 100-series boards
            "8086_a12f", Package()
            {
                "port-count", Buffer() { 0x19, 0, 0, 0}, // Highest port number is SS09 at 0x19
                "ports", Package()
                {   // TO COMPLETE THIS FILE, ADD ALL YOUR PORTS BELOW HERE, THEN SET port-count ABOVE
                    "HS01", Package() // USB2 device on MoBo F_USB30_1 Blue port L, port <01 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x01, 0, 0, 0 },
                    },
                    "HS02", Package() // USB2 device on MoBo F_USB30_1 Blue port R, port <02 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x02, 0, 0, 0 },
                    },
                    "HS03", Package() // USB2 device on BackPlate Blue port below HDMI L, port <03 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x03, 0, 0, 0 },
                    },
                    "HS04", Package() // USB2 device on BackPlate Blue port below DVI, port <04 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x04, 0, 0, 0 },
                    },
                    "HS07", Package() // USB device on MoBo F_USB1 Black port R, port <07 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x07, 0, 0, 0 },
                    },
                    "HS09", Package() // USB2 device on BackPlate Blue port below HDMI R, port <09 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x09, 0, 0, 0 },
                    },
                    "HS13", Package() // USB device on BackPlate Black port beside PS2 R, port <0d 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0d, 0, 0, 0 },
                    },
                    "HS14", Package() // USB device on BackPlate Black port beside PS2 L, port <0e 00 00 00>
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 0x0e, 0, 0, 0 },
                    },
                    "SS01", Package() // USB3 device on MoBo F_USB30_1 Blue port L, port <11 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x11, 0, 0, 0 },
                    },
                    "SS02", Package() // USB3 device on MoBo F_USB30_1 Blue port R, port <12 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x12, 0, 0, 0 },
                    },
                    "SS03", Package() // USB3 device on BackPlate Blue port below HDMI L, port <13 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x13, 0, 0, 0 },
                    },
                    "SS04", Package() // USB3 device on BackPlate Blue port below DVI, port <14 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x14, 0, 0, 0 },
                    },
                    "SS09", Package() // USB3 device on BackPlate Blue port below HDMI R, port <19 00 00 00>
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0x19, 0, 0, 0 },
                    },
                },
            },
        })
    }
}

The USB 3.1 Bus is recognised without any special extensions:


The red type-A connector works with USB2 and USB3 devices but the USB-C connector does not appear to work.


Summary

What Works:

  • Sound (USB & Native)
  • Ethernet
  • WiFi & Bluetooth
    • Messages works
    • Continuity works
  • Boot to Recovery
  • Boot to Time Machine
What Doesn't Work:
  • USB-C
  • USB 3.1 at SuperSpeed+ (not tested but suspected) but the port does work at High Speed and SuperSpeed.
  • Clover Auto-Scanning

This has been entirely successful as a home computer with all the functions of macOS that I require working reliably and the configuration is now quite predictable.

Benchmarks:

Geekbench 3:

System SSD:

3x2TB RAID:


I was hoping for a higher Multi-Core Geekbench score although the single-core performance is decent enough and a Cinebench score of nearly 600 is not too bad for a Core i5. I'm sure the Heaven performance will compare poorly with DirectX under Windows 10 and I'll test that when I eventually get Windows onto the machine. The only area of real disappointment was the speed of the RAID. I was hoping to get nearly 300MB/s sustained read-write but the actual performance is actually quite choppy and the mark that I posted represented the best performance. The WD Green drives really are not built for performance.

In practical use the system is fast and responsive and it solves a lot of issues I was starting to have with the 2009 iMac. In particular I can package a whole roll of raw film scans into a bzip2 archive in just over 3 minutes, which is a spectacular leap forward in usability compared to the old iMac:
Code:
HackHome:151201 rd$ du -h HDRi/
6.4G    HDRi/
HackHome:151201 rd$ time tar --use-compress-program=pbzip2 -p -v -cf HDRi.tar.bz2 HDRi/
a HDRi
a HDRi/.SFX_Thumbs.db
a HDRi/KodakPortra800_HDRi_01.tif
a HDRi/KodakPortra800_HDRi_02.tif
a HDRi/KodakPortra800_HDRi_03.tif
a HDRi/KodakPortra800_HDRi_04.tif
a HDRi/KodakPortra800_HDRi_05.tif
a HDRi/KodakPortra800_HDRi_06.tif
a HDRi/KodakPortra800_HDRi_07.tif
a HDRi/KodakPortra800_HDRi_08.tif
a HDRi/KodakPortra800_HDRi_09.tif
a HDRi/KodakPortra800_HDRi_10.tif
a HDRi/KodakPortra800_HDRi_11.tif
a HDRi/KodakPortra800_HDRi_12.tif
a HDRi/KodakPortra800_HDRi_13.tif
a HDRi/KodakPortra800_HDRi_14.tif
a HDRi/KodakPortra800_HDRi_15.tif
a HDRi/KodakPortra800_HDRi_16.tif
a HDRi/KodakPortra800_HDRi_17.tif
a HDRi/KodakPortra800_HDRi_18.tif
a HDRi/KodakPortra800_HDRi_19.tif
a HDRi/KodakPortra800_HDRi_20.tif
a HDRi/KodakPortra800_HDRi_21.tif
a HDRi/KodakPortra800_HDRi_22.tif
a HDRi/KodakPortra800_HDRi_23.tif
a HDRi/KodakPortra800_HDRi_24.tif
a HDRi/KodakPortra800_HDRi_25.tif
a HDRi/KodakPortra800_HDRi_26.tif
a HDRi/KodakPortra800_HDRi_27.tif
a HDRi/KodakPortra800_HDRi_28.tif
a HDRi/KodakPortra800_HDRi_29.tif
a HDRi/KodakPortra800_HDRi_30.tif
a HDRi/KodakPortra800_HDRi_31.tif
a HDRi/KodakPortra800_HDRi_32.tif
a HDRi/KodakPortra800_HDRi_33.tif
a HDRi/KodakPortra800_HDRi_34.tif
a HDRi/KodakPortra800_HDRi_35.tif
a HDRi/KodakPortra800_HDRi_36.tif
a HDRi/KodakPortra800_HDRi_37.tif

real    3m14.098s
user    12m33.211s
sys    0m9.716s
HackHome:151201 rd$ ls -lh
total 9914432
drwxr-xr-x+ 40 rd  staff   1.3K 27 Jan 11:43 HDRi
-rw-r--r--   1 rd  staff   4.7G 27 Jan 11:50 HDRi.tar.bz2
drwxr-xr-x  37 rd  staff   1.2K  8 Dec  2015 Proc
HackHome:151201 rd$

In other programs that I use regularly the interactivity has improved by a significant amount. In SilverFast HDR 8, for example, the main image previews (from 185.9MB raw files) come up almost instantly and colour-correcting is now real-time. In the old iMac I had gotten used to plenty of lag between action and visual result.

Current file listings of EFI partition (for Clover 3974):

/Volumes/EFI/EFI/CLOVER/kexts/10.12:
Code:
HackHome:10.12 rd$ pwd
/Volumes/EFI/EFI/CLOVER/kexts/10.12
HackHome:10.12 rd$ ls -l
total 3
drwxrwxrwx  1 rd  staff  512 11 Jan 23:07 FakeSMC.kext
drwxrwxrwx  1 rd  staff  512 25 Mar  2016 RealtekRTL8111.kext
drwxrwxrwx  1 rd  staff  512 12 Jan 22:18 USBInjectAll.kext
HackHome:10.12 rd$

/Volumes/EFI/EFI/CLOVER/ACPI/patched:

Code:
HackHome:patched rd$ pwd
/Volumes/EFI/EFI/CLOVER/ACPI/patched
HackHome:patched rd$ ls -l
total 6
-rwxrwxrwx@ 1 rd  staff   618 22 Jan 11:06 ssdt-1.aml
-rwxrwxrwx  1 rd  staff  1966 15 Jan 23:58 ssdt.aml
HackHome:patched rd$

/Volumes/EFI/EFI/CLOVER/drivers32UEFI:
Code:
HackHome:drivers32UEFI rd$ pwd
/Volumes/EFI/EFI/CLOVER/drivers32UEFI
HackHome:drivers32UEFI rd$ ls -l
total 89
-rwxrwxrwx  1 rd  staff  17280  9 Aug 23:54 FSInject-32.efi
-rwxrwxrwx  1 rd  staff   2400  9 Aug 23:54 OsxFatBinaryDrv-32.efi
-rwxrwxrwx  1 rd  staff  25508  9 Aug 23:54 VBoxHfs-32.efi
HackHome:drivers32UEFI rd$

/Volumes/EFI/EFI/CLOVER/drivers64UEFI:
Code:
HackHome:drivers64UEFI rd$ pwd
/Volumes/EFI/EFI/CLOVER/drivers64UEFI
HackHome:drivers64UEFI rd$ ls -l
total 230
-rwxrwxrwx  1 rd  staff  17216 29 Dec 00:54 AppleImageCodec-64.efi
-rwxrwxrwx  1 rd  staff   4800 29 Dec 00:54 AppleKeyAggregator-64.efi
-rwxrwxrwx  1 rd  staff   2400 29 Dec 00:54 AppleUITheme-64.efi
-rwxrwxrwx  1 rd  staff   5152 29 Dec 00:54 DataHubDxe-64.efi
-rwxrwxrwx  1 rd  staff  21376 29 Dec 00:54 FSInject-64.efi
-rwxrwxrwx  1 rd  staff   7232 29 Dec 00:54 FirmwareVolume-64.efi
-rwxrwxrwx  1 rd  staff  18752  9 Aug 23:56 OsxAptioFix2Drv-64.efi
-rwxrwxrwx  1 rd  staff   4672 29 Dec 00:54 OsxFatBinaryDrv-64.efi
-rwxrwxrwx  1 rd  staff   4288 29 Dec 00:54 SMCHelper-64.efi
-rwxrwxrwx  1 rd  staff  28832 29 Dec 00:54 VBoxHfs-64.efi
HackHome:drivers64UEFI rd$

Current UEFI Settings:



Late in the piece I finally found the solution to a cosmetic issue that was bugging me for while, reduced resolution of the Clover boot screen. Solution is to select Windows 8/10 WHQL in BIOS Features.



A kernel panic on boot-up is certain if Serial Port 1 is enabled.


I must acknowledge the great help provided by this site and am particularly indebted to the sterling work and documentation provided by Piker-Alpha and RehabMan.

Attached files are:
  • Currently active config.plist
  • ssdt.aml
    • generated using ssdtPRGen.sh for the Core i5-6600K
  • ssdt-1.aml
    • SSDT for configuring USB ports, in conjunction with USBInjectAll.kext
  • SSDT-USB-GA-Z170-HD3P.dsl
    • Full source file with all chipset USB ports
 

Attachments

  • config.plist
    7.3 KB · Views: 251
  • ssdt.aml
    1.9 KB · Views: 166
  • ssdt-1.aml
    618 bytes · Views: 191
  • SSDT-USB-GA-Z170-HD3P.dsl
    5.5 KB · Views: 153
Last edited:
Excellent build and great description. Enjoyed reading it because it was so thorough. :)

Thanks for the USB 3.1 info. My own build has a working USB 3.1 port (red) but I have no suitable peripherals to test its full speed with. Nor a cable to test the USB-C port. They are the only thing in the build that is uncertain.

:)
 
Status
Not open for further replies.
Back
Top