[Miliuco's Guide] OpenCore: how to update Big Sur 11.4 > Monterey Public Beta in Z390 Aorus Elite + RX 580

According with the post How to Create a macOS Monterey Public Beta Installation USB, I have downloaded macOS 12 Monterey Public Beta and updated a Big Sur 11.4 system in a fairly simple way.

Hardware

  • Gigabyte Z390 Aorus Elite motherboard: 9th generation Intel i7 9700 CPU (Intel UHD Graphics 630 iGPU), Realtek ALC1220 audio, Intel I219V Ethernet
  • AMD Radeon RX 580 8GB graphics card
  • Wifi and Bluetooth Fenvi FV-T919.

What works well?

  • Radeon RX 580 (VDA decoder fully supported)
  • Shutdown, restart and sleep
  • Audio (ALC1220 and HDMI)
  • USB ports (USBMap.kext specific for this motherboard)
  • Airdrop, iMessage.

BIOS settings (version F10h)

  • CFG Lock: Disabled
  • CSM: Disabled
  • VT-d: Disabled
  • Fast Boot: Disabled
  • Intel Platform Trust Technology (PTT): Disabled
  • OS Type: Windows 8/10
  • Platform Power Management: Disabled
  • XHCI Hand-Off: Disabled
  • Network Stack: Disabled
  • Wake on LAN: Disabled
  • Secure Boot: Disabled
  • Initial Display Output: PCIe 1 Slot
  • DVMT Pre-Allocated: 256M or higher
  • Integrated Graphics: Disabled / Enabled (according to SMBIOS).

Note about TPM (Trusted Platform Module)
The Z390 Aorus Elite board has a connector to install a TPM (Trusted Platform Module) chip. If you have such a module installed, you have to disable it during Monterey installation. Once installed, you can re-enable it.
This is something that may change in subsequent versions of Monterey.

OpenCore 0.7.1

I have used the most recent version of OpenCore, 0.7.1, with the same settings that I use for Big Sur except for 3 parameters related to security:

  • SecureBootModel=Disabled in config.plist
  • SIP enabled (csr-active-config=00000000 in config.plist)
  • Gatekeeper enabled (sudo spctl --master-enable in Terminal).

These 3 options have allowed Monterey installation or upgrade. Without them, installation seems to start well but does not complete.
All of these security options can be reverted to their previous state (if desired) after installation as they do not appear to be necessary for Monterey operation at this time. As I have commented regarding TPM, this is something that may change in subsequent versions of Monterey.

SMBIOS

The SMBIOS that works best on my system with Monterey is MacPro7,1, this Mac model requires:

  • AMD dGPU as main card
  • iGPU disabled in BIOS
  • RestrictEvents.kext to avoid RAM misconfiguration warnings.

CPUFriend.kext

Although the CPU is well recognized with MacPro's SMBIOS, my impression is that it did not run at low frequencies as often as I had seen with iMac19.1. For this reason I have created CPUFriendDataProvider.kext with the CPUFriendFriend command to accompany CPUFriend.kext. With these 2 kexts, CPU has correct CPUPM and frequency drops to 800 MHz when there is little demand.

SSDTs, drivers and tools

SSDTs:

  • SSDT-AWAC-DISABLE: to fix errors with system clock on Z390, B460, Z490 motherboards
  • SSDT-EC-USBX: fake Embedded Controller on Skylake and later, also fix USB power
  • SSDT-PLUG: power management on Haswell and newer CPUs; to configure the plugin-type=1 parameter on the first processor.
  • SSDT-PMC: native NVRAM support on systems that lack it, for example Z390 chipsets.

Drivers:

  • CrScreenshotDxe.efi: Screenshots in OpenCore
  • HfsPlus.efi: to recognize HFS + devices
  • OpenCanopy.efi: graphical picker with themes
  • OpenRuntime.efi: essential driver to start macOS.

Tools:

  • CsrUtil.efi: to enable or disable SIP from OpenCore
  • OpenShell.efi: UEFI shell to perform command line tasks from OpenCore

config.plist

Settings are generally the same as for Big Sur with the noted exception of SecureBootModel and csr-active-config.
Some significant details:

  • ACPI> Patch> Rename HDAS to HDEF (Audio): without this patch, audio does not work well -> not needed, AppleALC.kext does the job.
  • DeviceProperties> Add> PciRoot(0x0)/Pci(0x14,0x0): acpi-wake-type as data=01, to improve wake from sleep
  • Misc> Boot> PickerAttributes = 144 to enable Flavours system
  • NVRAM> 7C436110-AB2A-4BBB-A880-FE41995C9F82> boot-args: alcid=13 for audio (you can also try 11, both layout-id work fine).

Intel UHD Graphics 630

I prefer to use SMBIOS from MacPro7,1 so the iGPU is disabled in BIOS. This setting is that of the attached EFI config-macpro.plist file.
If you don't have a dGPU and you use the integrated card you have to use the config-intel.plist file and of course enable the iGPU in BIOS (and put it as main card). The settings for the iGPU should work fine on 8th or 9th generation CPUs, but differences between motherboard manufacturers may require additional adjustments to the properties that define the framebuffer patch.
Don't forget to rename your chosen configuration file to be called config.plist.

USB ports map

In the Kexts folder there are 2 files:

  • USBMap-macpro.kext: For use with MacPro7,1 SMBIOS (config-macpro.plist file)
  • USBMap-intel.kext: For use with iMac19.1 SMBIOS (config-intel.plist file).

You have to rename the chosen one to USBMap.kext.

Installing Monterey

The process is the same for the installation and for the update:

  • A working EFI folder
  • Download and install macOSPublicBetaAccessUtility
  • Download macOS 2 Beta Public from Software Update
  • Run Install macOS Monterey beta
  • The update process has a phase on the Big Sur desktop, 2 reboots to boot from Macintosh HD and a third reboot booting from the target disk with Monterey.
Monterey on the go

From what I've seen so far, Monterey performs surprisingly well considering its very early release state. It works practically as well as Big Sur. I have observed a longer shutdown time but nothing else. All hardware works the same as before. The performance of the RX 580 dGPU has not changed. Wifi and Bluetooth provided by the Fenvi T-919 card work well. Ehernet, sound, sleep, etc., work fine too.

Note: EFI folder is configured with SecureBootModel=Disabled and csr-active-config=00000000. After installing Monterey, you can go back to SecureBootModel=Default.

Important!
  • chosen config plist file > rename to config.plist
  • chosen USBMap kext > rename to USBMap.kext.



Thanks to Miliuco