- Joined
- Jul 28, 2021
- Messages
- 9
- Motherboard
- MSI Z590i UNIFY
- CPU
- Intel 10700K
- Graphics
- Sapphire 5600XT
- OS X/macOS
- 10.13.x
- Bootloader
- OpenCore (UEFI)
- Mac
- Mac Pro
- Mobile Phone
- iOS
Overview
I used this guide as my starting point along with the more general guides found on other forums to arrive at this set of instructions. My goal was to transition from an older Mac Pro 6,1 where I had already installed my Sabrent Rocket NVMe (SB-RKTQ-2TB) and was using the 5600XT in an eGPU case (via Kryptonite and an Apple TB2-3 adapter) to something a bit more modern. Because the Mac Pro's NVMe was formatted GUID already, the process was creating this EFI and testing it on an external drive (USB3) and then once I arrived at something that worked, copying the EFI to the NVMe and moving it into its new home.At the time of this writing, I'm using Big Sur 11.5.1 and OpenCore 0.7.1. To get this far, I had to first get Big Sur 11.2.3 working so I could setup a port map, then use that port map to survive the upgrade to 11.5.1.
The build:
- NZXT 210 ITX case
- NZXT X53 Kraken AIO cooler
- NZXT C750 Watt PSU (ATX)
- MSI Z590i UNIFY ITX motherboard (BIOS version 7D05v12)
- Intel 10700K processor
- 32 GB Corsair Ballistic RGB DDR4 3600 (BL2K16G36C16U4BL)
- 2 TB Sabrent Rocket Q NVMe (SB-RKTQ-2TB)
- Sapphire Pulse 5600XT
- Broadcom BCM94360NG WiFi+BT
- Dell S2331QS via HDMI
You'll note I replaced the onboard WiFi with the usual Broadcom unit. The original guide didn't include instructions for how to get the included adapter working (no linked kexts, etc.) so I fought with this for a day or two and then spent the $49 to wash my hands of it. The card is not as feature-rich, but it does work out-of-the-box even during installer, which cannot be said of the onboard Ethernet (more on that later).
Installation of the card is simple but you will need to have the motherboard in-hand. You can loosen the 4 screws underneath that hold the whole heatsink apparatus together (you are not removing it, you just need to wiggle it in a moment). You then remove the 4 small screws securing the back plate (so you can remove it and get access to the card). You then have 2 more small screws holding the E-key'd adapter into its socket. Once those screws are out, popping out the original adapter is trivial and having a little wiggle room with the surrounding heatsink is enough to get it free. Replacing the card inside the carrier is trivial (2 screws and carefully disconnecting/re-attaching the antennas to the new one). Installation is the reverse of removal, as they say. The two screws that held the PCIe E-key adapter in place are also used to help draw the card back into the slot. From there, just run through snugging everything down.
I apologize for not taking photos of this process; the screws to deal with should be obvious along the way.
Summary
Feature | Status |
---|---|
Graphics | YES |
Built-in Audio | YES |
Audio over HDMI on the 5600XT | YES |
Ethernet | YES |
WiFi/BT | YES |
AirDrop | YES |
Handoff | YES |
Thunderbolt 3/4 Hotplug | NO / TBD |
Power Management | YES |
App Store | YES |
iMessage | YES |
FaceTime | TBD (no camera) |
iCloud | YES |
USB 2.0, 3.0, 3.1 and USB Type-C Ports | YES* |
NOTE: The USB port map isn't 100% correct right now. Some ports seem to only work with HID devices, others do not work with USB 3.x hubs like those on my monitor.
BIOS / UEFI Settings
I followed the above-linked post to the letter except that despite using the same motherboard, I could not find: Windows 8/10 Features (to set to Other OS).
A nuance is the linked post has an F-series processor with no integrated GPU yet the display output was set to IGFX. Mine is a K-series, which has an integrated GPU, but I would be using a discrete like the original post. Without this setting configured to IGFX, I would routinely get black screens leading up to the transition to the installer. It seems this critical then this is set to IGFX regardless of F, K, or use of a dGPU.
One setting I had to hunt down via some unrelated internet searches was disabling the VT-d option. MSI put this setting over in the Overclocking Settings section under one of the advanced CPU features area. Why VT-d is under "overclocking" is beyond me, but hopefully this helps others find it.
Preparing the EFI
Download and extract an OpenCore release (0.7.1 RELEASE used here). Under the X64 directory, make a copy of the contents to be your new EFI directory. I've linked to the release version, however my EFI attached to this post is the DEBUG version, which was helpful with easing the friction when I ran into problems. Transitioning between the two is as simple as swapping the BOOT/BOOTx64.efi, OC/OpenCore.efi, and drivers files for the non-Debug/Release versions.
Adding Required SSDTs
The linked guide shows SSDT-AWAC however in most recent releases this file is called SSDT-AWAC-DISABLE. Copy these files from Docs/AcpiSamples/Binaries to your EFI/OC/ACPI directory:SSDT Name | Notes |
---|---|
SSDT-AWAC-DISABLE.aml | Required for 400 series motherboards, appears to be required for 500 series too (corroborated against a few other Z590(i) guides elsewhere). |
SSDT-EC-USBX.aml | Required for proper USB Power support |
SSDT-PLUG.aml | Required for CPU and GPU Power Management |
Adding Required Drivers
Guides differ on these needs on a few small points, specifically the use of OpenHfsPlus vs. HfsPlus where different sources claim each has better performance and behavior than the other. I erred on the OpenCore documentation's recommendation and used the following from the OpenCore ZIP except where noted. You'll find these in your EFI/OC/Drivers directory.Driver Name | Required | Notes |
---|---|---|
OpenRuntime.efi | YES | Every guide identifies this as required and should be in-sync with the version of BOOT/BOOTx64.efi. |
HfsPlus.efi | YES | Needed for HFS volumes like the macOS Installer and recovery partition. NOTE: The OpenCore release ZIP contains the OpenHfsPlus.efi; I frankly don't know who is "right" here so your mileage may vary. |
OpenCanopy.efi | Optional | Provides the Apple logo boot up screen, etc. It's not necessary in debug mode but is nice for a finishing touch. |
AudioDxe.efi | Optional | Boot chime support (again, a finishing touch) |
You may remove the other .efi files from here.
Adding Required Kexts
There are several differences between the above-linked guide and this one. Some are niceties and one is a necessity: USBInjectAll and its relationship to the XhciPortLimit quirk. Those do not work in 11.5.1, so I included those related changes when getting my initial EFI effort together, and then used Hackintool to produce my USB port map Kext. At that point, I could transition up to 11.5.1 and continue tailoring my EFI settings. I also did not need the FakePCIID related kexts to get the Intel I225V working in 11.5.1; it can be enabled with a boot argument (described later).My resulting kext list in EFI/OC/Kexts then are based off that effort and the Comet Lake guide's links:
Kext Name | Required | Notes |
---|---|---|
Lilu | YES | Arbitrary patching |
VirtualSMC | YES | Emulate VirtualSMC Requires Lilu |
WhateverGreen | YES | GPU Patching Requires Lilu |
AppleALC | YES | Audio support Requires Lilu |
SMCProcessor | NO | CPU Temperature monitoring, etc. Requires VirtualSMC, included in that link |
SMCSuperIO | NO | Fan speed monitoring, etc. Requires VirtualSMC, included in that link |
MSI_Z590i_UNIFY_USBPorts | YES | This was produced using Hackintool and then imported. It is somewhat specific to this configuration in that the NZXT 210's front panel connector has a single pair of USB-C and USB-A connectors which are included in this map. The rest are the personas of the ports on the mainboard IO as well as the internal header that is connected to the X53 Kraken and the Broadcom WiFi Adapter, which uses a USB over PCIe for Bluetooth. This file you can find in my attached EFI ZIP. IMPORTANT: when you go to make your own map, do NOT choose Internal for the WiFi adapter (vs. USB3, etc.). Doing so will disable Bluetooth! |
Editing the config.plist
I used ProperTree exclusively for this effort. The linked guide suggests using a tool which the author says is no longer being maintained and will produce invalid configuration files, so that was enough to scare me off.Copy the Docs/Sample.plist as your EFI/OC/config.plist and then open the file with ProperTree. Because you've already populated your drivers and ACPI directories, you can use CMD/CTRL+SHIFT+R to refresh config.plist which will automagically add references to both.
ACPI>Patch
This is identical to the linked post with this one missing detail: the post suggests the TableSignature is DSDT however that field must be a DATA type, which is 44534454 (hex). See the attached EFI for the whole block of patches you can copy-paste between ProperTree instances to simplify inserting these entries.
Booter>Quirks
Quirk | Enabled |
---|---|
DevirtualiseMmio | YES |
EnableWriteUnprotector | NO |
ProtectUefiServices | YES |
RebuildAppleMemoryMap | YES |
SetupVirtualMap | NO |
SyncRRuntimePermissions | YES |
DeviceProperties>Add
My setting is different from the original post in that I have a K-series with an iGPU but I'm using a dGPU. Per the Dortania Comet Lake guide, the appropriate setting then is 0300C89B (Hex). I also have no need of the i225-V -related patch (since I'm on Big Sur 11.5.1). Finally, I'm trying to get USB-attached HID devices to wake the device from sleep, so my two DeviceProperties entries are:
Devices | Key | Value | Type | Notes |
---|---|---|---|---|
PciRoot(0x0)/Pci(0x2,0x0) | AAPL,ig-platform-id | 0300C89B | DATA | The iGPU is used only for computing tasks, not driving a display. |
PciRoot(0x0)/Pci(0x14,0x0) | acpi-wake-type | 01 | DATA | Per the Dortania troubleshooting guide, this property should be enough to map the HC1 to the ACPI wake-up functionality, however in practice this made no difference for me. Expect this to change / no longer be necessary and it is specific to the MSI Z590i UNIFY. |
Kernel>Quirks
Quirk | Enabled |
---|---|
AppleXcpmCfgLock | True |
CustomSMBIOSGuid | False |
DisableIoMapper | True |
LapicKernelPanic | False |
PanicNoKextDump | True |
PowerTimeoutKernelPanic | True |
XhciPortLimit | False |
A difference here is that I do not have XhciPortLimit set because it breaks 11.5.1 (in concert with USBInjectAll). This quirk is no longer needed for me since I went through the process of mapping the USB ports.
Kernel>Add
The linked guide suggests making changes here however the CMD/CTRL+SHIFT+R populated this for us.
Kernel>Scheme
In OpenCore 0.7.1, the settings provided in the original forum post are actually the defaults, so nothing changes here.
Misc>Debug
The Comet Lake guide suggests setting AppleDebug, ApplePanic, and Target to be True, True, and 67, respectively. I haven't investigated the impact of these if using Release vs. Debug binaries from OpenCore. I suspect these are "no op" under Release.
Misc>Security
The Comet Lake guide suggests setting the following:
Option | Value |
---|---|
AllowNvramReset | True |
AllowSetDefault | True |
ScanPolicy | 0 |
SecureBootModel | Default |
Vault | Optional |
IMPORTANT: The Value for Vault is literally the string Optional, not that setting it is optional.
NVRAM>Add>7C436110-AB2A-4BBB-A880-FE41995C9F82
Edit the following:
Option | Type | Value |
---|---|---|
boot-args | STRING | -v keepsyms=1 debug=0x100 alcid=11 agdpmod=pikera dk.e1000=0 |
prev-lang:kbd | STRING | en-US:0 |
Notes:
- The
-v
andkeepsyms=1
,debug=0x100
are all related to debugging options to get verbose mode and logs. Once you're ready to have the apple log, switch to release binaries and drop these arguments, add in OpenCanary and refresh your config.plist (CMD/CTRL+SHIFT+R). - The
alcid=11
per the original post and the Comet Lake guide are required to map the onboard audio device to the AppleALC. - The
agdpmod=pikera
option is specific to this series of AMD GPU. This was missing from the original guide but required in my case, otherwise I would get a black screen instead of the installer window. - OpenCore's sample.plist has the data type for
prev-lang:kbd
as DATA. Change it to STRING to use this value (or some other value), otherwise the installer will be in Russian. - For macOS 11.5.1, (really, starting with 11.4.x IIRC), you no longer need kexts and device properties to get the I225-V to function, nor do you need. the widely-posted kernel patch. Instead,
dk.e1000=0
will get the device detected. You'll then need to change its setting in Network Preferences in order for it to work properly (see below).
The only thing necessary here is to populate the Generic fields with those provided by GenSMBIOS to mimic, in my case, an
iMac20,1
since I'm using an i7 processor (or i5 as the linked guide suggested). The Comet Lake guide confirms this as you're trying to pick a configuration that most closely mirrors an existing device matching your hardware.One key nuance in this selection process is finding a generated configuration that is both valid and not registered yet. This is somewhat key in getting the various Continuity features functioning.
Preparing the USB
This matches every other guide out there. You want to first use Disk Utility to format your thumb drive to APFS and GUID partition table. Then run the macOS installer's media creator app against that volume (mounted/named MyVolume here):
Bash:
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
Once finished, you can use MountEFI to mount the EFI Partition. You can then copy your EFI folder to that volume (i.e., in that Finder window representing your EFI volume, you should have a folder EFI with BOOT and OC under it).
When you boot your system the first time, be sure to select Reset NVRAM from the OpenCore Menu. Do it again for good measure, then let it run the installer.
Installation
This should be completely vanilla, nothing crazy. Use Disk Utility to setup your hard drive and run the installer. It should reboot a few times. As it goes, it will switch from booting the Install macOS ... to macOS Installer... (I believe was the wording) and finally Macintosh HD (if that's what you called your installation volume.Post-installation: I225-V Ethernet
This device will be detected and even pull an IP address via DHCP (as long as you unplug/replug the ethernet cable) but it'll basically be dead. It might pull a packet or two, but it just flat won't work reliably until you:- Open the System Preferences -> Network and select the Ethernet device
- Choose Advanced...
- Pick the Hardware tab
- Under the Configure drop-down, choose Manually
- Under the Duplex drop-down, choose one of the first two options (that do not say energy-efficient-ethernet, which apparently means conserve energy by not transmitting...I guess)
Post-installation: Enabling TB3/4 w/ HotPlug
TBD/WIP - I have not attempted the guides here on elitemacx86 or elsewhere, yet.Troubleshooting: Wake on USB
The Comet Lake guide suggests using the DeviceProperties change detailed in the above instructions, however it currently has no effect on my system. This is a TBD/WIP.Attachments
Last edited: