Jump to content
About Just Joined group Read more... ×

5 posts in this topic

Recommended Posts

macOS Catalina on: Gigabyte Z390 Aorus Elite motherboard + i3 9100 Coffee Lake processor + AMD Radeon RX 580 graphics card + fenvi FV-T919 WIFI and Bluetooth card + Clover r5121 + AppleALC, Lilu, VirtualSMC, XHCI-unsupported, IntelMausiEthernet, USBPorts and WhateverGreen.

Hardware
 

  • Gigabyte Z390 Aorus Elite motherboard: support for Intel 8 and 9 generation processors, Realtek ALC1220 audio, Intel I219V Ethernet, 4 PCI-E slots, 2, 3 and 3.1 USB ports, Intel Graphics 630 integrated graphics card
  • 9th generation Intel i3 9100 processor
  • Nox Hummer H-212 120mm CPU Fan
  • Corsair Vengeance LPX 3200 MHz 16 GB RAM (2 x 8)
  • AMD Radeon RX 580 8GB graphics card
  • Wifi and Bluetooth Card Fenvi FV-T919
  • Mars Gaming MPII850 Power Supply (850W)
  • Samsung EVO 860 SSD disk.
     

What works well?

Pretty much everything I've tried:

  • Radeon RX 580: 3 DP ports and 1 HDMI port, output to 2 displays simultaneously
  • Shutdown, reboot and sleep
  • Integrated sound and HDMI sound output
  • USB ports (2, 3 and 3.1)
  • Enable TRIM for SSD drive
  • AirDrop, Sidecar, etc.
     

What is not working well?

Integrated Intel UHD Graphics 630 card: see below.

BIOS settings (version F9)

I only write down the significant options, there are many other options that do not influence macOS and that you can configure to your liking (for example the LEDs on the board, etc.).

  • XMP Profile: Auto / Profile 1 / Enabled (eXtreme Memory Profile, I use 3200 MHz memory and without this profile it works at 2600)
  • Platform Power Management: Disabled
  • VT-d: Disabled
  • XHCI Hand-Off: Enabled
  • Legacy USB Support: Enabled
  • Network Stack: Disabled
  • CSM: Disabled
  • Secure Boot: Disabled
  • Fast Boot: Disabled
  • OS Type: Other OS
  • Wake on LAN: Disabled
  • Integrated Graphics: Auto
  • Initial Display Output: PCIe 1 Slot
  • DVMT Pre-Allocated: 256M or higher.
     

EFI folder for Clover (installation USB stick / SSD disk with Catalina)

SSDT


Some SSDT.aml files in EFI/CLOVER/ACPI/patched.

SSDT-DTPG.aml (helper module for SSDT)
SSDT-EC.aml (USB power charge)
SSDT-UIAC.aml (USB port mapping)
SSDT-USBX.aml (USB port mapping)
SSDT-PMC.aml got from OpenCore to have native NVRAM on Z390 mother boards
SSDT-Z390-RP21-SLOT4-TB3HP.aml (Thunderbolt devices hot plug) it can be skipped.

Drivers in EFI/CLOVER/drivers/UEFI

ApfsDriverLoader.efi
AudioDxe.efi
DataHubDxe.efi
FSInject.efi
VBoxHfs.efi
SMCHelper.efi
OcQuirks.efi *
OpenRuntime.efi *
OcQuirks.plist *.

* see OC Quirks below.

Extensions in EFI / CLOVER / kexts / Other

AppleALC.kext
IntelMausi.kext
Lilu.kext
USBPorts.kext
VirtualSMC.kext
WhateverGreen.kext
XHCI-unsupported.kext.

NOTE 1: The USBPorts.kext extension along with 3 aml files included in patched folder (SSDT-EC.aml, SSDT-UIAC.aml y SSDT-USBX.aml) were generated by joanserramiret with the configuration of USB ports for this motherboard so that the limit defined by macOS of 15 ports is not exceeded. Leaves the system configured in this way:

  • Enabled all USB2 ports that are not part of a USB3 port (1 internal for BT + 4 rear that are together + 2 on the front)
  • Enabled the USB2 ports that are part of the 2 rear red USB3.1 ports
  • Disabled the USB2 ports that are part of the 4 rear blue USB3 ports
  • Enabled all USB3 ports except the internal one for USB type C connection.

Summary: Rear blue ports do not recognize USB2 devices.

NOTE 2: XHCI-unsupported.kext is required for XHC chipsets whose Device ID is not included in macOS. Depending on the USB driver of your board, it may be necessary to install some additional extension:

  • 8086: 8CB1 on macOS 10.11.1 or lower: XHCI-9-series.kext
  • 8086: 8D31, 8086: A2AF, 8086: A36D, 8086: 9DED: XHCI-unsupported.kext
  • 8086: 1E31, 8086: 8C31, 8086: 8CB1, 8086: 8D31, 8086: 9C31, 8086: 9CB1: FakePCIID.kext + FakePCIID_XHCIMux.kext.

This board (generally Z390 chipset boards) carries the USB 3.1 controller with device ID A36D so the XHCI-unsupported kext is required. You can check your device ID at

/System/Library/Extensions/IOUSBHostFamily.kext/Contents/Plugins/AppleUSBXHCIPCI.kext/Contents/Info.plist

Config.plist file

The differential options are:

Acpi> DSDT: change HECI to IMEI / change SAT0 to SATA
Acpi> Fixes: FixShutdown
Acpi> Drop OEM_DSM
Acpi> Drop Tables> DMAR / MATS
Acpi> SSDT> PluginType selected (Plugin Type number blank)
Acpi> Halt Enabler / FixHeaders

Boot> Boot Arguments> slide = 0 / darkwake = 8

Devices> USB> Inject / FixOwnership / HighCurrent
Devices> Audio> Inject 11

Kernel and Kext Patches> Apple RTC and KernelXCPM selected
Kernel and Kext Patches> KextsToPatch> Name: com.apple.driver.AppleAHCIPort / Find: 40600200 / Replace: 00000000 / Comment: SATA hot plug
Kernel and Kext Patches> KextsToPatch> Name: com.apple.driver.AppleAHCIPort / Find: 45787465 726E616C / Replace: 496E7465 726E616C / SATA orange icons

SMBIOS> iMac19.1

System Parameters> Inject Kexts: Yes / Inject System ID: selected.

Quirks > select AvoidRuntimeDefrag – DevirtualiseMmio – EnableSafeModeSlide – ForceExitBootServices – ProtectUefiServices – ProvideConsoleGopEnable – ProvideCustomSlide – SetupVirtualMap – SyncRuntimePermissions and set ProvideMaxSlide = 0. *

Set true DevirtualiseMmio and ProtectUefiServices in OcQuirks.plist file (recommended on Z390 mother boards).

* see OC Quirks below.

macOS Catalina install

There are many publications with instructions so I will only comment on a few specific details.

  • The installation USB memory must have a GUID partition scheme so that the board's UEFI can boot from it.
  • I have prepared the USB with the createinstallmedia method + the application "Install macOS Catalina" in the Applications folder
  • The device is USB 3 and, connected to the front USB 3 port, it performs the task quite quickly
  • I have used Clover r5121 which is currently the latest version.
  • The EFI folder of the installation USB can be the same as that of the hard disk with 2 differences: Acpi> SSDT> PluginType deselected and Acpi> Boot leave Default Boot Volume blank and Timeout -1 (so that no volume will boot automatically from the Clover menu).
  • To mount the EFI partition (of the disk or the USB device) I have used Clover Configurator which makes this task very simple or the command line (diskutil), first finding out what disk and partition number is the EFI (diskutil list) and showing it later (mountdisk):
    sudo diskutil list
    sudo diskutil mountdisk / dev / disk2s3

 

RX 580

Although my RX 580 card is a model from the XFX brand, known for using custom VBios and giving problems in macOS, in my case it seems to work well with Lilu and WhatEverGreen. Booting the operating system it does not show artifacts, the 3 DP ports and the only HDMI port work, you can send the image simultaneously to 2 screens (I have not tried more) with the usual duplication options, yo can send sound in addition to image to one TV by HDMI, during the installation of the operating system it works correctly provided that Lilu and WhatEverGreen are in the USB device, etc. GeekBench 5 Scores: Metal 50100 / OpenCL 44100. As a comparison, the integrated card does not reach 4800 in Metal.

Regarding the hardware decoding of H264 and HEVC videos, the Hackintool tool and the VideoProc application report that it is not supported although the playback of files of both types with rates of up to 20 mbps is correct so I suspect that it actually encodes well. In order for hardware decoding to appear as supported in the commented applications, the integrated Intel Graphics 630 card must be enabled even if it is disconnected in headless mode (using the RX 580 card as primary sending image to the screen).

 

rx580.png.584ad5bb999225a25bcddfba76bd29e0.png


Sound

This board incorporates the Realtek ALC1220 chip that needs the AppleALC extension to work. AppleALC is a Lilu plugin so both must be properly installed.
Note: Clover > Devices > Audio > Inject 11 or 13 or 15. I’ve tried several layouts and this are the only valid at least in my case.
Some users have commented that the system does not load AppleALC and they have no sound despite having the extensions in EFI / CLOVER / kexts / Other. In these cases it can be successful to install AppleALC and Lilu in / Library / Extensions and rebuild the extensions cache with Hackintool (a very convenient way to do it) or with this Terminal command:

sudo spctl --master-disable; sudo mount -uw /; killall Finder; sudo chown -v -R root: wheel / System / Library / Extensions; sudo touch / System / Library / Extensions; sudo chmod -v -R 755 / Library / Extensions; sudo chown -v -R root: wheel / Library / Extensions; sudo touch / Library / Extensions; sudo kextcache -i /

 

What this command does is disable Gatekeeper, mount the system disk in read / write mode, repair permissions on the extensions folders and rebuild the cache. But all of that is done by Hackintool with less work on our part.

Ethernet

This board carries the Intel I219V chip that works well with the IntelMausiEthernet extension.

Wifi & Bluetooth

I use a Fenvi FV T-919 mini PCI-E card that carries both wifi and bluetooth chips. This card works perfectly in macOS without needing anything other than placing it on the board because it is recognized as Airport Extreme and Bluetooth Apple. Has its own article on perez987.

Disks

Samsung EVO 860 SSD. It is a solid state disk with references to work well in Mac. In my case it works well, with a read speed of 430 and a write speed of 250. I have tried faster SSDs but they have given problems to install Catalina, instead with the EVO 860 everything has worked perfectly.

Integrated graphics

Integrated Intel Graphics 630 card: we can to make it work correctly by adding some properties in Clover's Devices tab. For it to work you have to:

- enable it on the board as primary graphics: Initial Display Output IGFX instead of PCIe 1 Slot (actually this is the final step after modifying config.plist)
- add in config.plist: Boot> Boot Arguments> igfxonln = 1
- apply a patch (video and audio) in config.plist: Devices> Properties. It is easier to do it from the config.plist file in text mode than from Clover Configurator. With the file open as text find the lines

        <key>Audio</key>
        <dict>
            <key>ResetHDA</key>
            <false/>
            <key>Inject</key>
            <integer>11</integer>
        </dict>

 

Immediately above of them paste this text:

        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1F,0x3)</key>
            <dict>
                <key>layout-id</key>
                <data>CwAAAA==</data>
                <key>model</key>
                <string>Cannon Lake HDMI</string>
                <key>hda-gfx</key>
                <string>onboard-2</string>
                <key>AAPL,slot-name</key>
                <string>Internal@0,31,3</string>
                <key>device_type</key>
                <string>Audio device</string>
            </dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>framebuffer-con0-busid</key>
                <data>AAAAAA==</data>
                <key>framebuffer-con0-type</key>
                <data>AAgAAA==</data>
                <key>framebuffer-con2-flags</key>
                <data>xwMAAA==</data>
                <key>model</key>
                <string>Intel UHD Graphics 630</string>
                <key>framebuffer-con1-busid</key>
                <data>AAAAAA==</data>
                <key>device-id</key>
                <data>kT4AAA==</data>
                <key>framebuffer-con2-type</key>
                <data>AAgAAA==</data>
                <key>framebuffer-con2-busid</key>
                <data>BAAAAA==</data>
                <key>device_type</key>
                <string>Display controller</string>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>framebuffer-patch-enable</key>
                <data>AQAAAA==</data>
                <key>framebuffer-con1-type</key>
                <data>AAgAAA==</data>
                <key>AAPL,slot-name</key>
                <string>Internal@0,2,0</string>
                <key>AAPL,ig-platform-id</key>
                <data>BwCbPg==</data>
                <key>framebuffer-con2-enable</key>
                <data>AQAAAA==</data>
                <key>framebuffer-con1-enable</key>
                <data>AQAAAA==</data>
                <key>framebuffer-con0-enable</key>
                <data>AQAAAA==</data>
            </dict>
        </dict>

But the system crashes when comes out of sleep mode (the PC restarts after a few seconds of leaving sleep mode). This behavior occurs if the cable that comes out from the HDMI port on the motherboard (the only existing connector on this Mobo) plugs in a DisplayPort port on the monitor; if it plugs directly into another HDMI port (monitor or TV) the bug does not occurs and the PC goes in and out of sleep normally.

Currently the only way to have the graphics card connected to a port other than HDMI without this crash is by replacing the "hda-gfx" property with "no-hda-gfx" in the above code of config.plist. The 2 lines

               <key>hda-gfx</key>
               <string>onboard-2</string>

must be replaced by

                <key>No-hda-gfx</key>
                <data>AAAAAAAAAAA=</data>

After adding this property, you will no longer have sound over HDMI / DP but sleep works very well.

In summary:
- Intel HDMI to DisplayPort monitor> has HDMI audio output but has kernel panic when coming from sleep
- Intel HDMI to HDMI TV> has HDMI audio output and sleep works fine
- Intel HDMI to DisplayPort monitor with "no-hda-gfx"> sleep works fine but HDMI audio output is lost.

(based on the post "[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)" by CaseySJ; thanks also to deeveedee for his help).

This card can be left activated without connection to the monitor (headless mode) and apparently does not show any interference with the rest of the system.

With the integrated card as the main card, the system shows enabled both graphics cards and allows to have a screen connected to the Intel 630 via HDMI and a different screen connected to the RX 580 via DP or HDMI, in this case the primary screen is that from the Intel and the other only works when the graphics driver is loaded but, once the system is up and running, the screens allow duplication options as if they depend on a single card.

 

intel-amd-1.png.f839117ea4def677697e35bb86d116dc.png 
 

 intel-amd-2.png.e78cabcbafe8e522eecd9d7d40f4d07e.png

 

Evolution to Oc Quirks

OC Quirks is an EFI driver for Clover that replaces AptioMemoryFix and all OsxAptioFix variants. It supports the OpenCore quirks model. AptioMemoryFix has evolved little in the most recent stage and is in a way becoming obsolete. Next versions of Clover will probably stop installing AptioMemoryFix and switch to OC Quirks which is evolving and receiving frequent improvements. You can read about this on the working group website: ReddestDream.

Migrating our installation from AptioMemoryFix to OC Quirks is relatively simple:

  • download the latest version of OC Quirks (search Releases, current version is 23)
  • have a USB device that boots up properly to use in case of failure
  • mount the disk's EFI partition
  • delete AptioMemoryFix and any other OsxAptioFix variant
  • add OcQuirks.efi, OpenRuntime.efi and OcQuirks.plist to Clover's drivers/UEFI folder
  • change to true DevirtualiseMmio and ProtectUefiServices in the file OcQuirks.plist (recommended on boards with Z390 chipset)
  • in Clover> Quirks config.plist file, check the boxes AvoidRuntimeDefrag - DevirtualiseMmio - EnableSafeModeSlide - ForceExitBootServices - ProtectUefiServices - ProvideConsoleGopEnable - ProvideCustomSlide - SetupVirtualMap - SyncRuntimePermissions and assign the value 0 to ProvideMaxSlide
  • Restart the PC.

 

Kernel Panic with BIOS F10c if integrated graphics is enabled

The Z390 Aorus Elite board comes with BIOS F9 with which the text of this post has been written.


A few days ago I updated to the current version which is F10c and, since then, I have suffered a kernel panic with the forbidden symbol when going from the Clover menu to the macOS boot screen if the integrated card was enabled in BIOS. This happened regardless of whether the Intel UHD Graphics 630 card was set to Clover (fully for monitor output or headless mode for encoding) or not.


Returning to BIOS F9 the system has returned to working as before and the kernel panic has disappeared. I can have the card enabled or disabled again in BIOS without problems.

 

efi-quirks.zip

Edited by miliuco

Share this post


Link to post
Share on other sites
Advertisement

Nice!  We discsussed this in another forum.  Were you ever able to get OCQuirks to work without a separate OCQuirks.plist (using only the Quirks config in the CLOVER config.plist)?

 

Glad the no-hda-gfx trick (required when using a HDMI->DP adapter) is working on this rig, too.  As I mentioned before, I needed no-hda-gfx property, because I use DP->DVI adapters.

Edited by tonyx86

Share this post


Link to post
Share on other sites
8 hours ago, tonyx86 said:

Were you ever able to get OCQuirks to work without a separate OCQuirks.plist (using only the Quirks config in the CLOVER config.plist)?

 

Yes, I am working without a separate OCQuirks.plist file since I installed Clover 5122. When this version of Clover came out, I read in some forums that with version 5122 the need for OCQuirks.plist had disappeared and this configuration could be done from the section Clover's Quirks.
I've tried it and it seems to work fine. All I did was remove OCQuirks.plist and check the equivalent boxes in Clover's Quirks tab.

quirks.png

Edited by miliuco

Share this post


Link to post
Share on other sites
On 9/20/2020 at 5:02 PM, miliuco said:

Yes, I am working without a separate OCQuirks.plist file since I installed Clover 5122. 

 

OK - that's good to know.  I asked because you had asked me about this in the other forum and in Post #1, you still say to use a separate OCQuirks.plist.

Share this post


Link to post
Share on other sites
1 hour ago, tonyx86 said:

 

OK - that's good to know.  I asked because you had asked me about this in the other forum and in Post #1, you still say to use a separate OCQuirks.plist.


Hi! I hadn't recognized you. Indeed when installing Clover 5122 at the beginning I needed to use the Quirks config.plist but, although I am not sure why, at some point I added in the Clover config.plist the parameters of the quirks that I had in the other plist, I removed this plist from the drivers folder and everything seemed to work fine.  I think it may have coincided when I activated native NVRAM and started working without nvram.plist but I’m not sure. 

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

Announcements

  • Similar Content

    • By shantur
      Hi,
       
      I am trying to passthrough FirePro D700 gpu to MacOS Catalina VM in ESXi running on MacPro6,1.
      I have tried normal MacOS VM with ESXi it didn't work. After deep inspection and research I found out that ESXi doesn't provide the VBIOS to MacOS VM and hence no way of MacOS to read information about the GPUs.
       
      After researching more I found out that with SSDT i could inject VBIOS via "ATY,bin_image" property. I extracted VBIOS with DarwinDumper and created SSDT. I installed OpenCore to add this SSDT and enabled WhateverGreen and Lilu. Now IORegistry shows that I have bios for my GPU but still there is no output on any of my ports.
       

       
      I am trying to inject more properties but no luck.
      I have attached my OpenCore folder and IOReg from the VM below.
      Has anyone ever attempted something similar? Any help or pointers how can I implement this?
       
      PS : Just to let you know I can make this work with Proxmox as it allows an option to inject GPU vbios but need ESXi for compatibility purposes.
      MacOSVM.ioreg.zip
      OC.zip
    • By tonyx86
      **********************************************************************************
      In this thread, I have fully documented the installation of macOS Catalina on my HP EliteDesk 800 G4 Mini. It is a PERFECT HackMini8,1 and is running very well for me without any issues. I hope this documentation helps you to install macOS on your hack. Please leave feedback if you think there is anything I can improve and let me know if you have any questions.
      **********************************************************************************
       
      Background
      This is my first "modern" hack supporting UEFI and my first hack using Clover "on-the-fly" patches.  My previous hacks
      Laptop: Thinkpad T61 / Nvidia NVS 140m Laptop: Dell Latitude E6410 / Nvidia G3100m Desktop: Gigabyte G31 / GeForce 9600 Desktop: Biostar TH55HD / Sapphire Pulse RX580 (Google "Catalina Biostar TH55HD" and look for user name deeveedee)  
      are all perfectly running Catalina and I patched them all "manually" - all DSDT patches applied with MaciSL with virtually no Clover on-the-fly patching and all booted Legacy Clover.  This UEFI hack was MUCH easier and took about 20 hours vs. a combined hundreds of hours for the old hacks.  I wanted a hack that was a little more future proof and I think this is it.  I hope you enjoy this as much as I am enjoying it.  It is a perfect MacMini8,1.
       

       
      My system specs
      HP EliteDesk 800 G4 Mini (I7-8700T / UHD 630 / Q370 Chipset / 32GB DDR4 RAM) 3 x DP Ports (connected to monitors using DP -> DVI adapters) 6 x USB 3.1 1 x USB Type-C 3.1 2 x NVMe SSD (M.2 PCIe x4 2280/2230 combo ports) 1 x SATA6 SSD 1 x Intel Ethernet RJ-45 Conexant CX20632 Audio Codec Unsupported M.2 PCIe x1 2230 Intel Wi-Fi.  A possible solution is here, but I am NOT offering any support for this.  
      macOS Installation 
      Important: You MUST BE LOGGED-IN to download attachments from this forum
      See macOS installation steps here See Known Issues here for additional installation steps that may not yet be included in my attached config files See CLOVER (UEFI) installation later in this first post
      See BIOS configuration in attached BIOS configuration PDF document
      See EFI and /L/E kexts in attached EliteDesk.zip archive See how I developed my installation methodology here See references here See instructions here for installing two M.2 2280 NVMe SSDs and one SATA HD / SSD  
      What is not working
      Microphone port  
      What is not tested
      USB c 3.1 port (I have partially tested the USB 3 functionality of the port and it seems to be working fine with the USBPorts.kext in the attached EliteDesk800.zip archive) Wi-Fi / Bluetooth (intentional since I have not yet replaced my Intel card). A possible solution is here, but I am not offering any support for this.
       
      What is working
      Everything not mentioned above Sleep / Wake Multiple displays with IGPU graphics acceleration, hot pluggable display ports and DP->DVI adapters USB 3.1 ports Audio (internal speaker and headphone jack) Ethernet  
      Known Issues and their solutions - see here
       
      BIOS Version / Configuration
      Version: 02.11.01 Rev.A or 02.12.00 Rev.A See attached BIOS configuration in PDF document "HP EliteDesk 800 G4 Mini BIOS Configuration.pdf" Intel ME must be enabled for proper sleep / wake of UHD 630
       
      Clover Configuration
      Clover for UEFI booting only Install Clover in the ESP UEFI Drivers Recommended drivers DataHubDxe FSInject SMCHelper File System drivers ApfsDriverLoader VBoxHfs Memory fix drivers OcQuirks (replaces AptioMemoryFix) Additional drivers NvmExpressDxe Install RC scripts on target volume Themes Choose your desired theme Install Clover Preference Pane (option not available when installing on USB thumb drive)  
      UHD 630 Framebuffer Patching
      See here and here to understand my graphics properties for use with WhateverGreen.kext Read this to see my attempt at graphics patching without WhateverGreen.kext (WEG) to get a better understanding of what WEG is doing
       
      Current Versions
      Catalina 10.15.7 Clover (UEFI) r5122 Lilu.kext 1.4.8 WhateverGreen.kext 1.4.3 AppleALC.kext 1.5.3 IntelMausi.kext 1.0.4 (acidanthera version) NVMeFix.kext 1.0.4 EFIChecikDisabler.kext 0.5  
      Credits To be provided
       
      ScreenShots
       
       
       
       
      HP EliteDesk 800 G4 Mini BIOS Configuration.pdf
      EliteDesk 800 G4 Mini - Rev 1.3.zip
    • By miliuco
      I have Big Sur beta 10 on my system. I also have native NVRAM thanks to SSDT-PMC.aml file.
      I have seen that a nvram.plist file occasionally appears in /System/Volumes/Update volume root folder.

      This file has many entries, some of them from past and not current settings (very different of keys founded in Hackintool or with nvram -p command).
      If I delete it, everything seems to work fine. It is not created again at next boot but after an indefinite number of boots, it can be 2 or 3 or more than 20.
      It happens to someone else? Is it something new in Big Sur? Does it mean that maybe I don't have native NVRAM although I think I do?
    • By miliuco
      OpenCore as boot manager instead of Clover on a PC with Z390 Aorus Elite motherboard, i3 9100 Coffee Lake, RX 580 graphics card and macOS Catalina, with iMac19,1 SMBIOS, with integrated graphics card enabled and not configured in the config.plist file and USB port map specific for this motherboard.
       
      Clover and OpenCore

      Today we have 2 projects to boot macOS on compatible PCs: Clover and OpenCore (OC onwards). Clover is a mature project, started in 2011 by SergeySlice, capable of booting macOS, Windows and Linux in UEFI mode; currently it seems to be a little behind OC, a recent project started in 2019 by vit9696 and Download-Fritz among others under the name Acidanthera.
      Clover is easier to configure. New versions are released at the CloverHackyColor GitHub website. It has an installer package. I have used it on my Hackintosh for 5 years and so far it has worked excellent.
      OC is more difficult to configure, the number of options is greater and has some new ones to learn. It is considered to be slightly faster than Clover and its ability to inject extensions or patches at boot is higher. With the added advantage that some of the solutions that have appeared recently come from OC developers so it seems that their future evolution is clearer than in the case of Clover.
      I have switched from Clover to OC on my PC with Z390 Aorus Elite board, i3 9100 Coffee Lake, Radeon RX 580 graphics card and macOS Catalina. The learning curve has been steeper than in the case of Clover but, once properly configured, it works very well. The general impression is that some things require more work in OC but it also offers other possibilities that Clover lacks. Not forgetting that, to this day, OC allows to start the beta versions of macOS Big Sur but Clover is not yet capable of doing so.

      Migrate from Clover to OC

      The main differences are:
      EFI-Clover-ACPI-patched folder is now EFI-OC-ACPI EFI-Clover-drivers-UEFI folder is now EFI-OC-Drivers EFI-Clover-kexts-Other folder is now EFI-OC-Kexts There is no EFI-Clover-Themes folder but there is an EFI-OC-Resources folder containing folders and files required to display the OC menu with graphical interface The main configuration file has the same name, config.plist, it is in EFI-OC-config.plist and its structure is different from Clover. Once this file has been built, there is a website of the OC developers (OpenCore Sanity Checker) where to check the integrity and suitability of config.plist, at least in terms of the parameters used by the OC's specific version used, at the present time it is 0.6.2 and the official site of the project is called Dortania.
      Mackie100 has a program designed to configure config.plist graphically much more comfortably than in text mode, it is called OpenCore Configurator, equivalent to Clover Configurator but specific for this platform, the most recent version is 2.15.2.0 suitable for 0.6.2, I have tested it and it works very well although on the net there are comments rejecting its use and encouraging the editing of config.plist in text mode. Among its many advantages is that of checking at startup if the config.plist file, which is XML type, is well formed, which can avoid errors with messages after BIOS such as "OC: Failed to parse configuration!" since, if this file is not well constructed, OC does not start.  
      My Clover and OC Files

      OC's ACPI folder contains the same SSDT files as Clover's patched folder:
      SSDT-AWAC.aml: for errors in system clock on Z390 chipsets among others. This file is equivalent to another called SSDT-RTC0.aml, SSDT-AWAC tries to activate the old macOS compatible RTC clock and SSDT-RTC0 creates a fake compatible RTC clock if it does not exist. SSDT-PMC.aml: native NVRAM on systems that lack it, for example Z390 chipsets. It is equivalent to SSDT-NVRAM.aml, both have the same function. SSDT-USBX.aml: to get USB3 ports working at its correct power. SSDT-PLUG.aml: to configure the plugin-type=1 parameter on the first processor (power management on the CPU). SSDT-USBW.aml: to get out of sleep with a single touch instead of 2 touches on USB mouse or keyboard.  
      Drivers folder differs from Clover's, it contains 3 files:
      HfsPlus.efi: for volumes with HFS Plus file system. It can be replaced by VBoxHfs.efi but you cannot use both at the same time. OpenCanopy.efi: allows you to have a graphical interface in OC menu. OpenRuntime.efi: required to activate NVRAM among other functions. Mandatory.  
      Kexts folder also keeps same extensions as in Clover:
      AppleALC.kext IntelMausi.kext Lilu.kext USBMap.kext USBWakeFixup.kext VirtualSMC.kext WhateverGreen.kext XHCI-unsupported.kext.
      USBMap.kext defines the mapping of USB ports for this board to not exceed the limit of 15 imposed by macOS. This extension only has an Info.plist file (Show package content-Contents) with the ports that macOS must load at startup and in the IOKitPersonalities section it must refer to the type of Mac that we have configured, for example if we have iMacPro1,1 in SMBIOS, in this section this model must also appear (in 2 different lines). By modifying this parameter we can use the same USB port map with different SMBIOS.
      <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <!-- (CFBundle keys) --> <key>IOKitPersonalities</key> <dict> <key>iMac19,1-XHC</key> <dict> <!-- (ports list) --> </dict> <key>model</key> <string>iMac19,1</string> </dict> </dict> <key>OSBundleRequired</key> <string>Root</string> </dict> </plist> USBWakeFixup.kext is complementary to SSDT-USBW.aml.

      Resources folder contains files required for graphical interface of the OC menu. Font and Image folders are of interest. Image contains icons that OC will use to display different partitions and file systems in the boot menu. OpenCanopy.efi has a default theme but on the net there are sites with other icon themes. I like chris1111's Gold theme and it's the one included in my EFI folder (this and other themes are available at chris1111's github site).

       
      Config.plist file differs from clover and requires specific training, these are the options I use. Remember that they are for version 0.6.2 of OC.

      ACPI
      SSDT files are added and Quirks are left blank.

      Booter
      These Quirks are marked:
      AvoidRuntimeDefrag
      Devirtualise Mmio
      EnableSafeModeSlide
      ProtectUefiServices
      ProvideCustomSlide
      RebuildAppleMemoryMap
      SetupVirtualMap
      SyncRuntimePermissions.

      DeviceProperties
      Blank since I have SMBIOS configured as iMacPro1,1, integrated graphics card enabled in BIOS and RX 580 card as primary, this way I have H264 and HEVC video encoding-decoding.

      Kernel

      Kernel / Add
      Kexts we have in kexts folder are added.

      Kernel / Patch
      3 patches are added: Hot plug SATA, Orange Desktop icons and TRIM for SSD.

       
      Kernel / Scheme
      FuzzyMatch selected. KernelArch and KernelCache in Auto.

      Kernel / Quirks
      These Quirks are marked:
      AppleCpuPmCfgLock
      AppleXcpmCfgLock
      DisableLinkeditJettison
      DisableIoMapper
      DummyPowerManagement
      PanicNoKextDump
      PowerTimeoutKernelPanic.

      Misc
      Boot / Debug / Security tabs as in the pics.



       
      NVRAM
      OpenCore usually creates the required entries for this section. In case it is not, configure it as in the pics. There are 3 sections: Add, Delete and LegacySchema.
      Note: csr-active-config = 67000000 equals SIP disabled. If you want to enable SIP, it must be csr-active-config = 00000000.








       
      PlatformInfo
      Here you configure SMBIOS parameters. I choose iMac19,1. Check the "Add this section to config.plist" box. At the bottom, check all boxes (Automatic, UpdateDataHub, UpdateNVRAM, UpdateSMBIOS) and in UpdateSMBIOSMode select Create.

      UEFI
      It has 7 tabs (APFS, Audio, Drivers, Input, Output, ProtocolOverrides and ReservedMemory) that are configured as in the images (OCQuirks section included).
      Note: EnableJumpstart and JumpstartHotPlug must be selected in order to boot from the recovery partition.









       
      EFI folder attached.
       
      EFI-0.6.2.zip
×