An OpenCore EFI for Asus Z170i Pro Gaming mini-ITX motherboard, with Skylake processor. See compatible macOS versions in my releases. I'm using this build as a server. It is my third hackintosh build so far.
Though this is a ready to use EFI, it is for my own system, so use at your own risk. I truly recommend everyone to read Dortania's OpenCore install guide. It's comprehensive, but take your time and have patience, there are no shortcuts to a perfect build.
I'm releasing it here to reference my own configuration, and to share my EFI with others, for a little help on the way. I will not publish releases every time I update OpenCore and drivers, but I will try to publish if I have enough spare time. Do not forget to generate SMBIOS info if you are planning on using this EFI in your build, since my releases does not include this information, for obvious reasons.
- This build runs on a dedicated GPU, alongside the integrated GPU, which is only used for computing tasks and does not drive a display. If you are not using a dGPU you need to follow the GPU patching guide.
- No beauty treatments were done in this build, that means no OpenCore GUI and no boot-chime. I want to keep everything simple and minimal. You can enable all of this by following the beauty treatment guide.
- Wireless M.2 card for bluetooth and wifi (Qualcomm Atheros QCNFA364A) is replaced. I'm using the Broadcom BCM94360NG card instead. If you wish to swap the wireless card, remember to read wireless buyers guide first.
Remember to read the anti-hackintosh buyers guide if you're planning on buying components for a new build.
Item | Brand | Model | Driver | Comment |
---|---|---|---|---|
Motherboard | Asus | Z170i Pro Gaming | OpenCorePkg Lilu |
|
CPU | Intel | Core i5 6600K 3,5GHz | VirtualSMC | Skylake |
RAM | Corsair | Vengeance LPX DDR4 3000MHz 8GB x2 | built-in | |
iGPU | Intel | HD Graphics 530 | WhateverGreen | Headless mode |
dGPU | Gigabyte | RX 580 GAMING 8GB | WhateverGreen | |
SSD | Intel | 970 EVO 500GB M.2 x1 | NVMeFix | |
HDD | WD | Red 3TB 3.5" x1 Red 4TB 3.5" x3 |
built-in | |
Bluetooth | Broadcom | BCM94360NG v4.0 | built-in | Replaced |
Wifi | Broadcom | BCM94360NG 802.11ac | built-in | Replaced |
Ethernet | Intel | I219-V | IntelMausi | |
Audio | Realtek | ALC1150 | AppleALC | Layout-ID 99 |
PSU | EVGA | SuperNOVA G2 650W | ||
Case | Fractal Design | Node 304 | ||
CPU cooler | Cryorig | H7 | ||
Display | EVanlak | Sony XR50X93J 50" P2222H 22" |
Begin by loading optimized default options, then make sure settings are as below.
Version 3805
Menu | Name | Option | Comment |
---|---|---|---|
Exit | Load Optimized Defaults | Ok | Begin with default settings |
Ai Tweaker | Ai Overclock Tuner | XMP | Personal preference |
Advanced CPU Configuration |
Intel Virtualization Technology | Enabled | Recommended * |
CPU Configuration |
SW Guard Extensions (SGX) | Disabled | Recommended * |
CPU Configuration > CPU - Power Management |
CFG Lock | Disabled | Recommended * |
System Agent Config |
VT-d | Disabled | Recommended * |
System Agent Config |
Above 4G Decoding | Enabled | Recommended * |
System Agent Config > Graphics Configuration |
Primary Display | PCIE | This build has a dGPU |
System Agent Config > Graphics Configuration |
iGPU-Multi-Monitor | Enabled | This build has a dGPU |
System Agent Config > Graphics Configuration |
RC6(Render Standby) | Auto | This build has a dGPU |
System Agent Config > Graphics Configuration |
DVMT Pre-Allocated | 64M | Recommended * |
PCH Configuration |
IOAPIC 24-119 Entries | Enabled | |
PCH Storage Config |
SATA Mode Selection | AHCI | Recommended * |
Onboard Devices Config |
SupremeFX LED Lighting | Disabled | Personal preference |
Onboard Devices Config |
Asmedia USB 3.1 Controller | Enabled | |
Onboard Devices Config |
Asmedia USB 3.1 Battery Charging Support | Enabled | Personal preference |
Onboard Devices Config |
Wi-Fi Controller | Enabled | |
Onboard Devices Config |
Bluetooth Controller | Enabled | |
APM Configuration |
Restore AC Power Loss | Power On | Personal preference |
APM Configuration |
Power On By PCI-E | Enabled | |
Network Stack Config |
Network Stack | Disabled | |
USB Configuration |
Legacy USB Support | Enabled | |
Boot | Fast Boot | Disabled | Recommended * |
Boot Configuration |
POST Delay Time | 0 sec | Personal preference |
Boot Configuration |
Wait For 'F1' If Error | Disabled | Personal preference |
Boot Configuration |
Setup Mode | Advanced Mode | Personal preference |
CSM (Compatibility Support Module) |
Launch CSM | Disabled | Recommended * |
Secure Boot |
Secure Boot state | Disabled | Recommended * |
Secure Boot |
OS Type | Windows UEFI mode | Recommended * |
Boot Option #1 | UEFI OS | Disable all other boot options | |
Exit | Save Changes & Reset | Ok | Save BIOS and reset |
* As recommended in OpenCore install guide, Skylake: Intel BIOS settings.
For USB mapping I enabled ten physical ports, and bluetooth M.2. That is every port available, except the internal USB 2.0 Header. Remember that you can have a total of 15 ports per USB controller, this board has two controllers. USB 3.0/1 counts as two ports for backward compatibility. See image and table below which ports are available and which I chose to map in USBPorts.kext. Use USBMap or Hackintool if you wish to create your own USB map. The ASMedia USB controller did not need a USB map.
* I have no PCI bracket for the USB 2.0 Header, so I could not recognize the names for those ports.
** This is the second USB controller and has its own port limit. No need for USB map on this controller.
For audio layout i used layout-ID 99, it seemed most appropriate. Layout-ID 7 works as well, with the same exact functionality*. All other compatible layouts for this audio chipset were tested and did not work fully.
Blue audio jack acts as Line In
Green audio jack acts as Internal Speakers
Red audio jack acts as Internal Microphone
Orange audio jack acts as Line Out
Black audio jack acts as Line Out
Optical S/PDIF acts as Digital Out
Front panel top audio jack acts as Line In
(switches from Internal Microphone if plugged in)
Front panel bottom audio jack acts as Headphones
(switches from Internal Speakers if plugged in)
* The only difference between these layouts is that layout99.xml has the key MaximumBootBeepValue, value 64. It also has the key DspFunction2 with various other keys and values.
Almost everything works. Wifi and bluetooth (by disabling and replacing the internal Qualcomm Atheros QCNFA364A), iGPU acceleration, dual displays, HDMI audio, wake up from display sleep. Ethernet, all USB ports (only the internal USB 2.0 Header is disabled), all Audio ports. AirDrop/Handoff/Continuity, iMessage, FaceTime and other iServices.
- TRIM during boot takes a long while if it's activated.
Samsung SSD's are not macOS TRIM-supported. Fixed by setting key SetApfsTrimTimeout to 0. Build now boots instantaneously.
- Sleep does not work.
This build will never sleep though. Perhaps a deep dive in the fixing sleep guide will solve issue?
Quick guide on how to debug OpenCore with my releases.
My releases are prepared for easy dubugging, all you have to do is download the DEBUG version of OpenCorePkg. Reminder, it's a good idea booting the debug EFI from a USB stick.
Swap the following files:
EFI > BOOT > BOOTx64.efi
EFI > OC > OpenCore.efi
EFI > OC > Drivers > OpenRuntime.efi
Change to the following values in config.plist
:
Misc > Debug > AppleDebug > True
Misc > Debug > ApplePanic > True
Misc > Debug > DisableWatchDog > True
Misc > Debug > Target > 67
NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82 > boot-args > -v keepsyms=1
Restart computer and make sure you boot from the same volume you made the changes in. Verbose mode is now active and log files will be saved to the same volume. When you're done and everything works, swap back files from the RELEASE version and revert the values in config.plist.
Reference: https://dortania.github.io/OpenCore-Install-Guide/troubleshooting/debug.html
Visit my Quick Reference Guide for more macOS and OpenCore commands, guides, fixes and features.
A collection of apps that may come handy when configuring your build. Reminder, if you wish to use this EFI in your own build, you need to generate SMBIOS info first. System will not boot without it. Use EFI at your own risk.
GenSMBIOS for generating SMBIOS
MountEFI for mounting EFI partitions
ProperTree for editing config.plist
OCConfigCompare for comparing config.plist with new releases
USBMap for USB port mapping
Hackintool for USB port mapping and more
IORegistryClone for browsing IO registry
Apple for macOS
Acidanthera for OpenCore
dortania for guide
CorpNewt for software
headkaze for Hackintool
xzhih for HiDPI
And everyone from the OpenCore community 🖤