macOS on the Asus ROG Strix X570‑I

Returning to the Hackintosh Scene with AMD Ryzen

I seem to be the only person on the internet with a successful installation of macOS running on this motherboard (or at least willing to share it with others). While I was re-learning everything after an 8-year hiatus from "hackintosh"-ing, my searches on Discord and various internet forums had yielded absolutely nothing. As far as X570 ITX motherboards go, you'd think that your only choices are ASRock or Gigabyte.

Not so. This motherboard works just as well as the others. The only thing that isn't working is the mic jack, which is the same across all X570 boards.

macOS running on the Asus ROG Strix X570‑I

Scope

I will not be testing any alternative configurations unless required by my own system. The latest tested configuration is as follows:

Relevant Hardware

  • Motherboard: Asus ROG Strix X570-I

    • Audio: ALCS1220A

    • Ethernet: Intel i211AT

    • Wi-Fi & Bluetooth Card: Intel AX200

  • Processor: AMD Ryzen 7 5800X, air-cooled

  • Storage: WD_Black SN750 1TB M.2 NVMe

  • Video Card: AMD Radeon RX 5700 XT

About Wi‑Fi & Bluetooth

A lot of progress has been made on the driver for the AX200, but you should be aware that it's not yet complete.

Alternatively, if you're comfortable with disassembling your motherboard, you can replace the Wi-Fi card with a compatible Broadcom model. I've used the BCM94360NG, which simply just works.

BIOS Settings

  • Fast Boot should be set to Disabled.

  • Above 4G Decoding should be set to Enabled in v3001 and above.

    Directly below, make sure Re-Size BAR is still set to Disabled.

Getting Started

If you haven't already, you will first need to create your installation media and set up OpenCore. After that's finished, clone my GitHub repo and replace the corresponding OpenCore files and directories on your installation media.

The GitHub repo contains only the files that I've generated myself— config.plist, SSDTs, and USBPorts.kext.

Kexts

To minimize clutter in the repo and to ensure that you're using the latest releases, the following kexts must be downloaded separately. Drop them into the Kexts folder in your EFI directory.

Resources

Extract the binary resources to this folder to enable the OpenCore GUI. The boot chime only works with audio jacks, not HDMI or DisplayPort, and is thus not configured or tested. This is covered in the guide.

config.plist

Odds are that you don't have exactly the same hardware configuration as I do. Refer to config.plist setup in the OpenCore Install Guide and double-check that everything is correct. For example, if you are not using a Navi-based GPU, remove agdpmod=pikera from boot-args.

Serial numbers and system identifiers should not be shared, so mine have been removed. You will need to generate your own in order to use Apple's services.

⚠️ Note: Below BIOS v3001, you will need to add npci=0x2000 to the boot-args of your config.plist as of commit ac4cab3. Remove it when updating to v3001 or above. Do not use npci=0x2000 and have Above 4G Decoding enabled at the same time.

EFI Directory Structure

EFI
|--- BOOT
|    |--- BOOTx64.efi
|
|--- OC
|    |--- ACPI
|    |    |--- SSDT-EC-USBX.aml
|    |    |--- SSDT-HPET.aml
|    |    |--- SSDT-SBUS-MCHC.aml
|    |
|    |--- Drivers
|    |    |--- AudioDxe.efi
|    |    |--- HfsPlus.efi
|    |    |--- OpenCanopy.efi
|    |    |--- OpenRuntime.efi
|    |
|    |--- Kexts
|    |    |--- AirportItlwm.kext
|    |    |--- AMDRyzenCPUPowerManagement.kext
|    |    |--- AppleALC.kext
|    |    |--- AppleMCEReporterDisabler.kext
|    |    |--- IntelBluetoothFirmware.kext
|    |    |--- IntelBluetoothInjector.kext
|    |    |--- Lilu.kext
|    |    |--- NVMeFix.kext
|    |    |--- SmallTreeIntel82576.kext
|    |    |--- SMCAMDProcessor.kext
|    |    |--- USBPorts.kext
|    |    |--- VirtualSMC.kext
|    |    |--- WhateverGreen.kext
|    |
|    |--- Resources
|    |    |--- Audio
|    |    |    |--- (...)
|    |    |
|    |    |--- Font
|    |    |    |--- (...)
|    |    |
|    |    |--- Image
|    |    |    |--- (...)
|    |    |
|    |    |--- Label
|    |    |    |--- (...)
|    |
|    |--- Tools
|    |    |--- (empty)
|    |
|    |--- config.plist
|    |--- OpenCore.efi
When you're finished, your EFI directory should look like this.

Post-Installation

After installation has completed, you can copy your EFI folder from your installation media to your boot drive by following the guide.

Enabling Secure Boot

Secure Boot does not work with the macOS Installer, so it is disabled by default in the config.plist to allow your installation media to boot. When you've booted into your completed macOS installation, you can safely enable Secure Boot.

You will first need to generate your own ApECID and set /Misc/Security/SecureBootModel to j137 within the config.plist, then reboot into Recovery.

When in Recovery, make sure you're connected to the internet in the top-right corner. Open Disk Utility and set the sidebar to "Show All Devices", then mount your volume's Data partition. Open Terminal and run the following command (assuming your volume's name is "Macintosh HD"):

bless bless --folder "/Volumes/Macintosh HD/System/Library/CoreServices" --bootefi --personalize && reboot

Your system should then successfully reboot into macOS.

Keep notes of your changes to config.plist for easier updates to newer revisions in the future. Serial numbers, unique identifiers, and Secure Boot settings will differ between mine and yours.

Disabling MKL

MKL is an Intel math library that does not exist on AMD processors. When apps in macOS use MKL, such as Adobe products or Discord Voice, the apps will crash. Most of the time, this can be solved by disabling MKL system-wide using a LaunchAgent. See AdobeAMDFix.md. If you do not use Adobe products, skip to step 4.