Tracking the progress of my OpenCore Hackintosh build. Currently dual-booting macOS Catalina and Windows 10.
EFI: Copy of current EFI directory from the macOS boot driveEFI_Install: Copy of EFI directory from the USB drive used during macOS installation
- The Build
- Prepare Install Media
- Install OpenCore
- Gather Kexts
- Configure OpenCore
- BIOS Settings
- Prepare for macOS Installation
- Install macOS Catalina
- Post Installation
- Final BIOS Settings
- Final OpenCore Configuration
- Benchmarks
- Issues
- Upgrade Log
- References
- Resources
- CPU: AMD Ryzen 7 3700X
- CPU Cooler: Cooler Master Hyper 212 EVO (Connected to CPU_FAN)
- Motherboard: Gigabyte B450 AORUS PRO WIFI (rev. 1.0)
- Memory: G.Skill Trident Z RGB 16 GB DDR4-3000
- Storage (macOS): Western Digital Blue 500GB M.2 SSD
- Storage (Windows): Samsung 970 Evo 500GB M.2 NVME SSD
- Video Card: ASRock Radeon RX 5700 XT 8 GB
- Power Supply: Rosewill 550W 80+ Gold
- Case: Fractal Design Meshify C
- Monitor: MSI Optix MAG241C 23.6" FHD 144Hz FreeSync Monitor
- Monitor: AOC CQ27G1 27.0" QHD 144Hz FreeSync Monitor
- Keyboard: Logitech G413 Carbon
- Mouse: Logitech G502 HERO
- Network: PCIe Adapter WiFi Card BCM94360CD
View the build on PCPartPicker: https://pcpartpicker.com/list/nppTDx
Follow the guide at Dortania OpenCore Desktop Guide. When it doubt, start there!
- Download OpenCore Release Package (v0.5.8)
- Place OpenCore on the USB device and customize with the following options:
- Remove from Drivers:
- OpenUsbKbDxe.efi
- UsbMouseDxe.efi
- NvmExpressDxe.efi
- XhciDxe.efi
- HiiDatabase.efi
- Ps2KeyboardDxe.efi + Ps2MouseDxe.efi
- Remove everything from Tools
- Remove from Drivers:
- AppleALC.kext (v1.4.3)
- AppleMCEReporterDisabler.kext
- Lilu.kext (v1.3.9)
- NVMeFix.kext (v1.0.2)
- SmallTreeIntel82576.kext (v1.3.0)
- VirtualSMC.kext (v1.0.9)
- WhateverGreen.kext (v1.3.4)
The exact kexts and drivers I used during my installation can be found in EFI_install/.
The OpenCore configuration for the installation is heavily based upon the dortania guide for the Zen microarchitecture. A sanitized version of the config file can be found in EFI_install/OC/config.plist. You will need to use GenSMBIOS to generate a valid serial number and board serial number for the iMacPro1,1 SMBIOS.
Enter Advanced Mode and Load Optimized Defaults to reset the default BIOS settings. Modify the following settings:
- Tweaker
- Advanced CPU Settings
- Vt-d → Disabled
- Extreme Memory Profile (X.M.P.) → Profile 1
- Advanced CPU Settings
- Settings
- Platform Power
- ErP → Disabled
- Soft-Off by PWR_BTTN → Delay 4 Sec.
- RC6 (Render Standby) → Enabled
- IO Ports
- Initial Display Output → IGFX
- Internal Graphics → Enabled
- DVMT Pre-Allocated → 32M
- DVMT Total Gfx Mem → 256M
- Aperture Size → 512MB
- Audio Controller → Enabled
- Above 4G Decoding → Enabled
- USB Configuration
- Legacy USB Support → Enabled
- XHCI Hand-off → Enabled
- Network Stack Configuration
- Network Stack → Disabled
- Miscellaneous
- Intel Platform Trust Technology (PTT) → Disabled
- Platform Power
- Boot
- Windows 8/10 Features → Windows 8/10
- CSM Support → Disabled
- Smart Fan 5 Settings (F6)
- CPU_FAN (or whichever header was used for the AIO CPU cooler)
- Speed Control → Full Speed
- CPU_FAN (or whichever header was used for the AIO CPU cooler)
- Save & Exit
- Choose Save and Exit to save BIOS settings and reboot
- Connect HDMI cable to the integrated graphics output on the motherboard
- Insert macOS Installer USB drive into the USB 3.0 port adjacent to Ethernet connector
- Connect keyboard and mouse to USB 2.0 ports
- Restart computer and select the USB drive as the default BIOS boot device
- Select
Install macOS Catalinaas the OpenCore boot volume - Launch Disk Utility and format the destination drive (Samsung 970 Evo)
- Name:
Macintosh SSD - Format:
Mac OS Extended (Journaled)orAPFS(will be reformatted asAPFSduring installation) - Scheme:
GUID Partition Map
- Name:
- Launch Install macOS and select the
Macintosh SSDdrive as the destination- As the system restarts, keep selecting
Boot macOS Install from Macintosh SSDfrom the OpenCore menu - If the system freezes, use the power button to shut down the computer and turn off the power supply. Wait a few minutes before restarting to continue the installation process.
- As the system restarts, keep selecting
- Once the installation is complete, select
Boot macOS from Macintosh SSDfrom the OpenCore menu- Proceed through the normal macOS setup but delay signing into iCloud until post installation is complete
- Mount the EFI partition of
Macintosh SSDand copy over the entire EFI directory from the USB drive - Restart the computer and select the internal drive (Samsung 970 Evo) as the default BIOS boot device
- Select
Boot macOS from Macintosh SSDfrom the OpenCore menu - You should now have a bootable macOS installation!
Note: You can now remove the USB drive but keep it handy for debugging issues with your Hackintosh.
- Modify the OpenCore configuration on the EFI partition of
Macintosh SSD - Reboot the computer and modify the following BIOS settings:
- Settings
- IO Ports
- Initial Display Output → PCIe 1 Slot
- Internal Graphics → Enabled
- DVMT Pre-Allocated → 64M
- DVMT Total Gfx Mem → 256M
- IO Ports
- Settings
- Save the changes and reboot the computer
- Disconnect the HDMI cable from the motherboard and connect a DisplayPort cable to the graphics card
- You should now be using the natively-supported discrete graphics card (as of macOS 10.15.1) to power your display(s) in conjunction with the headless iGPU for compute tasks.
- Hackintool can be used to verify the availability of the iGPU for hardware decoding under the
VDA Decodersystem parameter.
- Hackintool can be used to verify the availability of the iGPU for hardware decoding under the
Note: You should also make these changes to your USB drive OpenCore configuration so that it can properly boot your system if the Macintosh SSD EFI partition gets messed up. If you don't update the configuration, you'll have to swap back to using the integrated graphics instead of the discrete graphics card.
Apple's USB driver implementation restricts macOS to only 15 HS/SS ports. During the installation process, we utilized RehabMan's USBInjectAll kext and USB port limit kext patches to com.apple.iokit.IOUSBHostFamily and com.apple.driver.usb.AppleUSBXHCI to circumvent this restriction. While useful during installation, it is generally recommended that these workarounds be removed in favor of a custom SSDT or port injector kext for the final system configuration to avoid buffer overruns and sleep/wake issues. In order to map out the custom port injection for the system, we will be using corpnewt's USBMap Python script and following along with the process described in Carl Mercier's YouTube video.
If you have the Gigabyte Z390 AORUS PRO WIFI motherboard and want the same USB port mapping I utilize, you can download my USBMap.kext, SSDT-USBX.aml, and SSDT-USBX.dsl and skip to Step 5.
-
Add the
change EHC1 to EH01andchange EHC2 to EH02patches to the ACPI OpenCore configuration on the EFI partition ofMacintosh SSDand reboot -
Open Terminal and run the following commands to download and execute the USBMap script:
git clone https://github.com/corpnewt/USBMap cd USBMap chmod +x USBMap.command ./USBMap.command -
Press
dthen[enter]to begin the port discovery process. Using a USB device (e.g. flash drive), systematically test each external USB port to identify its corresponding ID. The complete USB port layout for the Gigabyte Z390 AORUS PRO WIFI motherboard is detailed in the image below. Once the desired ports have been identified, pressqthen[enter]to return to the main menu. -
Press
pthen[enter]to begin creating the custom port mapping kext- Press
athen[enter]to enable all ports - Using the list of identified ports, enter the numbers of the ports you want to disable
- No more than 15 XHC ports can be enabled
2,3,4,5,9,11,12,15,16,18,25→HS02,HS03,HS04,HS05,HS09,HS11,HS12,USR1,USR2,SS02,SS09- Disables AIO control via the internal header and USB 2.0 for three rear Type-A ports
- If you don't need Bluetooth, you can disable
HS14and enable one of the disabled USB 2.0 ports
- The enabled ports are red and the disabled ports are gray in the image above
- Press
kthen[enter]to build the custom USBMap.kext file - Allow the program to move the files to your EFI partition or copy them manually:
USBMap.kext→EFI/CLOVER/kexts/Other/SSDT-USBX.aml→EFI/CLOVER/ACPI/patched/SSDT-USBX.dsl→EFI/CLOVER/ACPI/patched/
- Press
-
Modify the OpenCore configuration on the EFI partition of
Macintosh SSD- ACPI
- Remove the
change EHC2 to EH02patch (not present on this system)
- Remove the
- Kernel and Kext Patches
- Remove the
com.apple.iokit.IOUSBHostFamilykext patch - Remove the
com.apple.driver.usb.AppleUSBXHCIkext patch
- Remove the
- ACPI
-
Delete the
USBInjectAll.kextfromEFI/CLOVER/kexts/Other/on the EFI partition ofMacintosh SSD -
You should now have fully custom-mapped USB ports on your system! Use the USBMap script after a reboot to verify the correct ports are enabled.
The Intel CNVi modules that provide integrated Wi-Fi and Bluetooth functionality on motherboards are not natively supported by macOS but can be enabled using the IntelBluetoothFirmware kext on supported devices. The Gigabyte Z390 AORUS PRO WIFI contains a compatible Intel Wireless-AC 9560 CNVi (Vendor ID: 0x8087, Device ID: 0x0AAA). Hackintool can be used to determine the specific model on your motherboard (System > Peripherals > Bluetooth).
- Note: You must enable the internal USB port used by the CNVi module during the USB mapping process.
Download the latest release and place the two kexts in EFI/CLOVER/kexts/Other/. Reboot and you should be able to use Bluetooth on your Hackintosh.
FileVault is used to encrypt the startup disk on your Hackintosh. Enabling it is entirely optional but probably a good idea for the security conscious, especially if you are building a portable system. Before turning on the feature, you will need to make sure you have several drivers installed to allow OpenCore to interact with the encrypted drive. These instructions are based on the advice from this tonymacx86 comment and this vanilla laptop guide.
-
If present, remove any of the following outdated OpenCore-installed FileVault 2 UEFI drivers:
AppleImageCodec.efiAppleKeyAggregator.efiAppleKeyFeeder.efiAppleUITheme.efiFirmwareVolume.efiHashServiceFix.efi
-
Download AppleSupportPkg v2.0.9 and copy the following two drivers to
EFI/CLOVER/drivers/UEFI/:AppleGenericInput.efiAppleUiSupport.efi
-
Modify the OpenCore configuration on the EFI partition of
Macintosh SSD- Boot
- Default Boot Volume →
Preboot
- Default Boot Volume →
- GUI
- Remove
Prebootfrom hidden volumes (if present)
- Remove
- Boot
-
Open System Preferences > Security & Privacy and navigate to the FileVault tab
- Click
Turn On FileVaultand select an option for setting the recovery key - Wait for encrypting to complete
- Click
-
Restart your system, which should now default to the
FileVault Preboot from Prebootoption, and enter your password at login to decrypt the system drive.
Note: You should also make these changes to your USB drive OpenCore configuration so that it can properly boot your system if the Macintosh SSD EFI partition gets messed up. If you don't update the configuration, then the OpenCore bootloader will not be able to properly handle the FileVault-encrypted drive.
-
Open Terminal and enter the following command:
sudo trimforce enable -
Verify TRIM was enabled in System Report:
For some reason, About This Mac and System Report do not properly identify the processor and list it as an 'Intel Core i9' instead of an 'Intel Core i7.' This can easily be fixed by using OpenCore Configurator to set the CPU Type to 0x0705 and rebooting.
The default iMac19,1 SMBIOS configuration used in this build sets PlatformFeature=0x22, which indicates that the system lacks user-upgradable memory and therefore hides the Memory tab on About This Mac (as seen above) and any empty memory slots in the System Report. This can easily be fixed by using OpenCore Configurator to set PlatformFeature=0x20 in the SMBIOS section and rebooting.
Follow these instructions to prevent the Windows drive from automatically mounting in macOS:
-
Open Terminal and enter the following command to get the
Volume UUID:diskutil info /Volumes/{YOUR_WINDOWS_DRIVE_NAME} -
Enter
sudo vifsto add the following line to/etc/fstab:UUID={YOUR_UUID} none ntfs rw,noauto -
Restart your system and the Windows partition will no longer automatically mount.
Screenshots of my current BIOS settings on my working (i.e. stable) system.
A sanitized version of my final config file can be found in EFI/CLOVER/. Each section of the configuration in OpenCore Configurator is also documented below.
All values are the average of three runs
- Geekbench 5
- Single Core: 1313.7
- Multicore: 8055.3
- OpenCL: 43650.3
- Metal: 38985.0
- LuxMark LuxBall: 27424.3
- BruceX: 6.64 seconds
- Cinebench R20: 3934
- Blackmagic Disk Speed Test (Samsung 970 Evo)
- Read: 2990.4 MB/s
- Write: 2484.2 MB/s
See the GitHub repository issues tracker
- 20.10.12 Updated OpenCore to 0.6.2
- https://github.com/shiruken/hackintosh
- u/corpnewt's r/Hackintosh Vanilla Desktop Guide
- An iDiot's Guide To Lilu and its Plug-ins
- [Guide] Intel Framebuffer patching using WhateverGreen
- Glasgood's macOS Mojave [SUCCESS][GUIDE] for Aorus Z390 Pro
- [SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580
- General Z390 Catalina Guide, or why you should take the time to set things from scratch (bonus 5700 XT guide)
- How to fix USB 3 ports on a Hackintosh by generating your own SSDT or USBMap.kext
- FileVault2 boot issues with OpenCore under macOS Catalina
- Enabling FileVault - The Vanilla Laptop Guide
- [Solved] OpenCore shows two boot options for Windows EFI
- Prevent a volume from mounting at startup


































