Contribute
Register

[GUIDE] macOS Monterey + OpenCore 0.7.6 on Z390 Aorus Elite + RX580

Hi miliuco,

Again very good guide, like the one for Big Sur! I did clean install with Monterey and worked without single issue. I have one side question though - how is the serial number being generated? I do not remember how I did it on Big Sur and if I generated it with the OpenCore somehow. I remember one old build with Clover, I did generated it in the configurator.

Thank you for the efforts! Cheers.
 
Last edited:
@Petrak1s
You are welcome!
Without configurators, the best way to get serial numbers is corpnewt's GenSMBIOS.
You run GenSMBIOS.command >> 2. Select config.plist >> 3. Generate SMBIOS >> generated numbers are flushed into config.plist.
 
Updating a Big Sur system to Monterey has been easy and the new system works fine. Pretty much the same setup I use with Big Sur has worked for Monterey. This is a (short) guide using OpenCore 0.7.6.

Hardware
  • Gigabyte Z390 Aorus Elite motherboard: Realtek ALC1220 audio, Intel I219V Ethernet
  • Intel i7 9700 CPU (Intel UHD Graphics 630 iGPU)
  • AMD Radeon RX580 8GB graphics card
  • Wifi and Bluetooth Fenvi FV-T919.
What works well?
  • Radeon RX580 (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
  • OS Type: Windows 8/10
  • Platform Power Management: Disabled
  • XHCI Hand-Off: Enabled
  • Network Stack: Disabled
  • Wake on LAN: Disabled
  • Secure Boot: Disabled
  • DVMT Pre-Allocated: 256M or higher
  • Integrated Graphics: Disabled / Enabled (according to SMBIOS).
OpenCore 0.7.6

I have used the latest OpenCore version, 0.7.6, with the same settings that I use for Big Sur. For the installation to be successful, 3 parameters related to security must be set:
  • SecureBootModel=j160 or Default in config.plist (Apple secure boot corresponds to MacPro7,1 and Default sets the same model as in SMBIOS)
  • SIP enabled (csr-active-config=00000000 in config.plist)
  • Gatekeeper enabled (sudo spctl --master-enable in Terminal).
These security options can be changed after installation as they do not appear to be necessary for Monterey to be run.

SMBIOS

SMBIOS model that works best on my Monterey system is MacPro7,1. This Mac model requires:
  • AMD RX580 dGPU as main card
  • Intel 630 iGPU disabled in BIOS
  • RestrictEvents.kext to avoid RAM misconfiguration warnings.
CPUFriend.kext

Although the CPU is well detected with MacPro's SMBIOS, my guess is that it does not run at low frequency as often as it does with iMac19.1. For this reason, I have generated a CPUFriendDataProvider.kext extension from the CPUFriendFriend command to accompany CPUFriend.kext. With these 2 kexts (CPUFriendDataProvider.kext + CPUFriend.kext) the CPU shows correct power management and frequency drops to 800 MHz at system idle.

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
  • SSDT-USBW: to wake from sleep with a single mouse or keyboard touch (this SSDT works with USBWakeFixup.kext) >> very likely not needed if USB device in DeviceProperties has acpi-wake-type=01.
Drivers:
  • CrScreenshotDxe.efi: Screenshots in OpenCore
  • HfsPlus.efi: to recognize HFS+ devices
  • OpenCanopy.efi: graphical picker with themes
  • OpenRuntime.efi: essential driver to run macOS.
Tools:
  • OpenShell.efi: UEFI shell to perform command line tasks from OpenCore
config.plist

Settings are generally the same as for Big Sur. Some significant details:
  • 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)
  • Misc >> Security >> AllowToggleSip=True to show in the picker the ToggleSIP tool that allows to easily switch between SIP enabled and SIP disabled for the current boot.
Intel UHD 630

I prefer to use MacPro7,1 SMBIOS, it requires iGPU to be disabled in BIOS. This configuration is the one in the EFI-macpro folder.
If you don't have an external graphics card and you need to use the integrated one, you have to use the EFI-intel630 folder that has these modifications:
  • required: enable iGPU in BIOS (and put it as main card)
  • removed RestrictEvents.kext, CPUFriendDataProvider.kext and CPUFriend.kext
  • added in config.plist >> boot-args >> igfxonln=1 -disablegfxfirmware
  • added in config.plist >> DeviceProperties >> code to patch the framebuffer so that the iGPU is well detected.

  • XML:
             <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
                <dict>
                    <key>AAPL,ig-platform-id</key>
                    <data>BwCbPg==</data>
                    <key>framebuffer-patch-enable</key>
                    <data>AQAAAA==</data>
                    <key>framebuffer-con0-enable</key>
                    <data>AQAAAA==</data>
                    <key>framebuffer-con1-enable</key>
                    <data>AQAAAA==</data>
                    <key>framebuffer-con2-enable</key>
                    <data>AQAAAA==</data>
                    <key>framebuffer-con0-alldata</key>
                    <data>AQAJAAAEAADHAwAA</data>
                    <key>framebuffer-con1-alldata</key>
                    <data>AgAKAAAEAADHAwAA</data>
                    <key>framebuffer-con2-alldata</key>
                    <data>AwQIAAAIAADHAwAA</data>
                    <key>framebuffer-stolenmem    </key>
                    <data>AAAwAQ==</data>
                    <key>hda-gfx</key>
                    <string>onboard-1</string>
                    <key>name</key>
                    <string>Intel UHD Graphics 630</string>
                </dict>
The config.plist file in EFI-intel630 folder is already set in this way.
Note: don't forget to rename the EFI folder from EFI-macpro or EFI-intel630 to EFI.

Installing Monterey

The process is the same for installation and for update:
  • A working EFI folder
  • Download macOS 12 from Software Update
  • Run Install macOS Monterey app
  • 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

Monterey works very well. All hardware works the same as in Big Sur. Performance of the RX580 card has not changed. Wifi and Bluetooth from the Fenvi T-919 card, Ethernet, sound, sleep, etc. work fine too.

Important!

1. Do ResetNVRAM the first time you boot a new EFI.
2. Press spacebar to show auxiliary entries in the picker.

View attachment 536232
thank you for your work..for the first time i found an efi installed with out any errors..used your intel efi...mine was aouros pro mobo with zero errors.....thx again really good job you done
 
@Petrak1s
You are welcome!
Without configurators, the best way to get serial numbers is corpnewt's GenSMBIOS.
You run GenSMBIOS.command >> 2. Select config.plist >> 3. Generate SMBIOS >> generated numbers are flushed into config.plist.
That's the strange thing, I already have serial number without doing anything and my Apple ID seems to be working as of now. Am I missing something?

Thank you.
 
@Petrak1s
Maybe you keep the serial number in your config.plist from previous installations and you don't need to generate it because it already exists in that file.
macOS can boot without serial number but some things will not work well, of course if Apple ID and Apple services work you have it well configured.
 
Thank you very much, miliuco, for your guide. Although my hardware is a bit different, I was able to install Monterey via system update. The only changes I made to your EFI-macpro were to substitute RealtekRTL8111.kext for IntelMausi.kext, to get ethernet working, and to use my own values for MLB, ROM, SystemSerialNumber and SystemUUID in config.plist.

You mentioned that you used USBMap.kext, but I don't see it; I see USBPort.kext instead. I mention this because not all my ports are working as expected, and I'm not sure if I should use USBMap or hackintool to try to resolve it. I think I saw somewhere that hackintool produces USBPort.kext.

Would you be so kind as to provide a link to whatever method I should follow?

Thank you very much again for sharing your expertise.
 
Thank you very much, miliuco, for your guide. Although my hardware is a bit different, I was able to install Monterey via system update. The only changes I made to your EFI-macpro were to substitute RealtekRTL8111.kext for IntelMausi.kext, to get ethernet working, and to use my own values for MLB, ROM, SystemSerialNumber and SystemUUID in config.plist.

You mentioned that you used USBMap.kext, but I don't see it; I see USBPort.kext instead. I mention this because not all my ports are working as expected, and I'm not sure if I should use USBMap or hackintool to try to resolve it. I think I saw somewhere that hackintool produces USBPort.kext.

Would you be so kind as to provide a link to whatever method I should follow?

Thank you very much again for sharing your expertise.
I managed to get USB ports working properly. I found a good tutorial for using hackintool to do port mapping:


Following the tutorial I was able to create my own USBPorts.kext.

I will attach the EFI that works with my hardware; maybe it will help someone that has the same. Remember that you need to use your own values for MLB, ROM, SystemSerialNumber and SystemUUID in config.plist.
 

Attachments

  • EFI_ASUS _PRIME_Z390-P.zip
    3.4 MB · Views: 168
@michmcca
Depending on how you create the USB port map, you may get USBMap.kext or USBPorts.kext. They both have the same function. You use one or the other, not both together.
I may have written USBMap by mistake and actually my EFI has USBPorts.
Since our motherboards are not identical, my portmap does not work 100% on your system.
But I see that you have created your map successfully, you have followed the same method as me, Hackintool. Congratulations.
 
@michmcca
Depending on how you create the USB port map, you may get USBMap.kext or USBPorts.kext. They both have the same function. You use one or the other, not both together.
I may have written USBMap by mistake and actually my EFI has USBPorts.
Since our motherboards are not identical, my portmap does not work 100% on your system.
But I see that you have created your map successfully, you have followed the same method as me, Hackintool. Congratulations.
Thank you very much. I finally have a Monterey install that does everything I need.
 
Back
Top