TABLE of CONTENTS
- About
- Hardware Info
- OpenCore Details
- Installing/Upgrading macOS
- Deployment
- Post-Install
- Alternate GPU Configurations
- CPU Benchmark
- Credits and Thank yous
OpenCore EFI folder for the Gigabyte Z490 Vision G mainboard created from scratch and updated and refined regularly since September 2020. The configuration is based on Dortania's OpenCore Install Guide and analysis of an .ioreg
file from a real iMac20,1
. USB Ports are mapped via ACPI
, so no USB Port kext is required.
Tested successfully with macOS 10.14 to 15 beta. For best results, read and follow the install instruction carefully and thoroughly.
Upgrading from to macOS 14.3.1 to 14.4 and newer via System Update causes a Kernel Panic during install! The workaround is to temporarily disable SecureBootModel (Background) |
The Intel I225-V Ethernet Controller finally got a dedicated kext called AppleIGC so the previous fixes are now obsolete! |
600/700-series Nvidia Cards require root patching with OpenCore Legacy Patcher to reinstall Nvidia drivers. |
Component | Details |
---|---|
Mainboard | Gigabyte Z490 Vision G. BIOS: F21. F5 or newer is required to disable CFG Lock . Otherwise enable Kernel Quirk AppleXcpmCfgLock |
CPU | Intel Core i9 10850K (Comet Lake) |
RAM | 32 GB DDR4 2400 Crucial Ballistix Sport LT |
iGPU | Intel UHD 630 (Headless). Use this Framebuffer Patch if you want to use it for driving a display. |
dGPU | Saphire RX580 Nitro+ (4 GB) |
Audio | Realtek® ALC1220-VB (Layout-id: 17 ) |
Ethernet (on-board) |
Intel I225-V 2.5GbE. Compatible with macOS 10.15.7 and newer. |
Ethernet (PCIe) | Intel PRO/1000 PT Dual Port Server Adapter (any macOS). Currently unused. |
Intel® 400 Series Chipset Datasheets (PDF): Vol. 1 | Vol. 2 | Specs Update
Click to reveal
- Tweaker [TAB]
- Extreme Memory Profile (XMP): Enabled (if supported by RAM)
- Advanced CPU Settings
- VT-d: Enabled
- Intel Speed Shit: Enabled
- Settings [TAB]
- Platform Power
- Platform Power Management: Disabled
- ErP: Enabled (so USB Power turns off, after PC is shut down)
- IO Ports
- Internal Graphics: enabled (if CPU has integrated graphics). NOTE: The config.plist uses dGPU for Display(s) and iGPU for computational tasks only by default. If you want to use the iGPU to drive a display you need a different Framebuffer Patch (see "EFI Install Instructions" for details).
- OnBoard LAN Controller: Enabled
- Audio Controller: Enabled (if On-Board Sound Card is used)
- Above 4G Decoding: Enabled
- Re-Size BAR Support: Disabled (Enable if your GPU supports it)
- IOAPIC 24-119 Entries: Enabled
- Super IO Configuration
- Serial Port: Disabled
- USB Configuration
- Legacy USB Support: Disabled
- XHCI Hand-off: Enabled
- Network Stack Configuration
- Network Stack: Disabled
- Platform Power
- Boot [TAB]
- CFGLock: Disabled (only available on newer BIOS versions)
- Windows 10 Features: Windows 10
- CSM: Disabled (to get rid of legacy code from
DSDT
)
Parameter | Details |
---|---|
SMBIOS | iMac20,2 . For i5/i7 CPUs, use iMac20,1 . SMBIOS data needs to be generated. I use OCAT for this |
Supported macOS | macOS 10.14 up to 15.x (10.14 requires iMac19,1 config) |
OpenCanopy | Enabled |
Boot Chime | No |
FileVault | Optional |
SIP | Current value: 03080000 . Adjust csr-active-config based on the used OS and your specific needs. |
SecureBootModel | Disabled . Change to j185f for iMac20,2 SMBIOS. For iMac20,1 , use j185 . Disabled when using an NVIDIA Kepler GPU in macOS 12 or newer (requires root-patching with OCLP) |
USB Port Mapping | Yes, via ACPI. Details here. |
Click to reveal
EFI
├── BOOT
│ └── BOOTx64.efi
└── OC
├── ACPI
│ ├── DMAR.aml
│ ├── SSDT-AWAC-ARTC.aml
│ ├── SSDT-EC-USBX.aml
│ ├── SSDT-MCHC.aml
│ ├── SSDT-PLUG.aml
│ └── SSDT-PORTS.aml
├── Drivers
│ ├── HfsPlus.efi
│ ├── OpenCanopy.efi
│ ├── OpenRuntime.efi
│ └── ResetNvramEntry.efi
├── Kexts
│ ├── AdvancedMap.kext
│ ├── AMFIPass.kext
│ ├── AppleALC.kext
│ ├── CPUFriend.kext
│ ├── CPUFriendDataProvider.kext
│ ├── Lilu.kext
│ ├── NVMeFix.kext
│ ├── RestrictEvents.kext
│ ├── SMCProcessor.kext
│ ├── SMCRadeonSensors.kext
│ ├── SMCSuperIO.kext
│ ├── VirtualSMC.kext
│ └── WhateverGreen.kext
├── OpenCore.efi
├── Resources (NOTE: removed files in sub-folders from tree view to reduce clutter)
│ ├── Font
│ ├── Image
│ │ ├── Acidanthera
│ │ │ ├── Chardonnay
│ │ │ ├── GoldenGate
│ │ │ └── Syrah
│ │ ├── Blackosx
│ │ │ └── BsxM1
│ │ └── velickovicdj
│ │ └── EnterTwilight
│ └── Label
└── config.plist
Coming from Windows/Linux: If you are on Windows or Linux, follow the guide provided by Dortania. I provide no support for issues with UBS Installers created in Windows or Linux or when installing macOS into a VM!
Coming from macOS: If you already have access to macOS, you can either download macOS from the App Store, via the OpenCore Legacy Patcher App or use ANYmacOS. Botch can download macOS High Sierra to Ventura and create a USB Installer as well.
Please read the following explanations carefully and thoroughly and follow the given instructions. In order to boot your PC with this EFI successfully, adjustments to the config.plist
and used kexts may be necessary to adapt the config to your system configuration and the macOS version you want to install/run.
In general: if your system has the same hardware specs as mine, you can use the EFI folder as us. You only need to enter the required data in the PlatformInfo/Generic
section (Model, Serial Number, MLB, ROM, etc.).
Download my latest EFI Folder from the Releases section and unpack it. Make sure to check the included Changelog.md
as well, since it contains important information about config changes and useful explanations.
Select the config of your choice and rename it to config.plist
. Open it with OCAT or a ProperTree and check the following sections/settings and adjust them to your needs:
-
ACPI/Add Section. Add/Enable/Disable SSDTs as needed
- [DMAR] (optional): DMAR replacement table with specific Reserved Memory Regions removed. For 3rd party LAN/Wifi/BT cards that won't work if VT-D and the Intel I225-V controller are enabled (macOS Big Sur and newer).
- SSDT-AWAC-ARTC: Custom variant of
SSDT-AWAC.
Disables AWAC Clock and enablesRTC
asARTC
instead. Also disables legacyHPET
device. - SSDT-PORTS: OS-agnostic USB Port Mapping Table for the Z490 Vision G. No additional USB Port kext or quirks are required. Since the USB ports are mapped via ACPI, they will work in any version of macOS. Check this pdf for a detailed list of mapped ports. NOTE: macOS does not support USB 3.2 via the USB protocol. It requires Thunderbold 3 or newer instead to support speeds greater than 5 Gbit. So there's no speed benefit when using the red USB ports over the blue ones when running macOS!
- SSDT-PLUG.aml: Not needed for macOS 12 and newer. Also not needed when using
CPUFriend.kext
andCPUFriendDataProvider.kext
.
NOTE: Additional info about these ACPI Tables can be found on my OC Little Repo
-
ACPI/Delete Section
- Drop OEM DMAR Table → Only enable if you need to use the DMAR replacement table. OpenCore 0.9.2 introduced a new Quirk called
DisableIoMapperMapping
. It works independently ofDisableIoMapper
and addresses reoccurring connectivity issues in macOS 13.3+ which weren't there before. If your configuration required to drop/replace the DMAR table before it still does now! - Drop OEM USB Port Map (xh_cmsd4) → Drops the original USB Port mapping so
SSDT-PORTS.aml
can replace it. - Drop HPET Table → Drops the table for the High Precision Event Timer which is now a legacy device.
- Drop OEM DMAR Table → Only enable if you need to use the DMAR replacement table. OpenCore 0.9.2 introduced a new Quirk called
-
Booter Section
- Booter/MMIOWhitelist
- I added these memory regions after analyzing the bootlog. Since I don't know if these are used by all systems, I disabled them.
- To figure out which ones can be whitelisted, follow this guide
- This is not a necessity, just some fine-tuning.
- Booter/Patch: OpenCore patches used to skip the board-id check as part of a workaround to fix System Update Notifications. Only needed when using an NVIDIA Kepler Card which requires disabling
SecureBootModel
andSIP
in oder to install and load the GPU drivers. - Booter/Quirks: If your GPU supports resizable BAR (enable Above 4G Decoding and Resizable BAR in BIOS), you can set
ResizeAppleGpuBars
to0
. But leaveUEFI/Quirks
at-1
to not affect the BAR size in other OSes.
- Booter/MMIOWhitelist
-
DeviceProperties
No longer required.#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
→ Disabled device-id spoof for the Intel I-225V. → Only required when running macOS Catalina! Delete the#
to enable it. RequiresKernel/Patch
as well. Read this for getting the Intel(R) I225-V Ethernet Controller to work on different versions of macOS.#PciRoot(0x0)/Pci(0x2,0x0)
→ Disabled Framebuffer for using the iGPU for driving a display. Delete the leading#
to enable it.PciRoot(0x0)/Pci(0x1F,0x3)
→ Settings for on-board audio. Also contains the Layout-idPciRoot(0x0)/Pci(0x2,0x0)
→ Headless Framebuffer for using the iGPU for computational tasks only.- Disable this entry when using the
iMacPro1,1
orMacPro7,1
SMBIOS. - Delete/Disable the
enable-metal
property when using a AMD (Big) Navi Card, since these cards support Metal 3.
- Disable this entry when using the
-
Kernel/Add Section. The following Kexts are disabled by default since I don't know which CPU, GPU, Hard Disk and SMBIOS you will be using:
CPUFriend.kext
andCPUFriendDataProvider.kext
. Create your own CPUFriendDataProvider in Post-Install with CPUFriendFriend to optimize CPU Power Management as explained here. It is recommended to create a new Data Provider kext after switching the SMBIOS and/or updating/upgrading macOS.RestrictEvents
:- Required when using
MacPro7,1
SMBIOS → Disables warnings about unpopulated RAM slots. - Also required for enabling the
VMM-x86_64
Board-id so OTA updates work whenSIP
is not fully enabled andSecureBootModel
is set toDisabled
(necessary when using NVIDIA Kepler Cards in macOS 12+).
- Required when using
AppleALC.kext
: Slimmed version of AppleALC I compiled myself. It only contains Layout17
and is only 86 kB in size. If you want to use a different Layout, you need to use the regular version of AppleALC or compile your own.
-
Kernel/Quirks:
- If your BIOS does not provide the option to disable CFG Lock (requires BIOS Update), enable the
AppleXcpmCfgLock
Quirk. - If you don't use Microsoft Windows on your system, you can change
UpdateSMBIOSMode
fromCustomSMBIOSGuid
(prohibits injecting SMBIOS data into Windows) toCreate
- OpenCore 0.9.2 introduced a new Quirk for macOS 13.3+ called
DisableIoMapperMapping
. It can be used to "resolve compatibility issues with Wi-Fi, Ethernet and Thunderbolt devices whenAppleVTD
is enabled". So you can try this quirk to address issues with 3rd party WiFi/BT cards.
- If your BIOS does not provide the option to disable CFG Lock (requires BIOS Update), enable the
-
Misc/Security:
SecureBootModel
:- Set to to
j185
(for iMac20,1) orj185f
(for iMac20,2). - Set to
Disabled
if you are using an NVIDIA Kepler Card. Otherwise the system will crash on boot. In this case you also need to enableRestrictEvents.kext
to enable theVMM-x86_64
board-id so OTA updates will work. More details here.
- Set to to
-
NVRAM/Add
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
:revpatch:sbvmm
→ Setting for RestrictEvents.kext to enable the board-id VMM spoof. Only required if you have to disableSIP
andSecureBootModel
in order to boot with patched in NVIDIA Drivers for Kepler GPUs.- Boot-args: based on the fix you are using to get the Intel I225-V working in macOS 12 and newer, you might need
dk.e1000=0
(macOS Big Sur) and/ore1000=0
(macOS Monterey+). - OCLP-Settings:
-allow_amfi
→ Required for OpenCore Legacy Patcher so Kepler Drivers can be installed
7C436110-AB2A-4BBB-A880-FE41995C9F82
:- Change
csr-active-config
to disable SIP:- SIP fully enabled:
00000000
- Big Sur and newer:
03080000
(0x803) → My default so macOS doesn't bother me. This is also the required value if you need to apply root patches with OCLP. - Mojave/Catalina:
EF070000
(0x7EF) - High Sierra:
FF030000
(0x3FF)
- SIP fully enabled:
- Change
-
PlatfotmInfo/Generic Section:
- Generate SMBIOS data for
iMac20,1
(for Core i9) oriMac20,2
(for Core i5/i7) - If you're not using Windows on your system, change
UpdateSMBIOSMode
fromCustom
toCreate
- Generate SMBIOS data for
-
Save the
config.plist
Important
- AMD GPUs may require additional `boot-args`. Check WhateverGreen's documentation for details.
- Applying root patches with OCLP results in a broken security seal which affects System Updates: incremental (or delta) system updates won't work after that. Instead, the full macOS installer (about 12 GB) will be downloaded every time a system update is available. See https://github.com/5T33Z0/OC-Little-Translated/blob/main/S_System_Updates/OTA_Updates.md for a workaround to apply incremental updates so you don't have to download the full installer every time.
- Copy the EFI Folder to a FAT32 formatted USB flash drive for testing
- Reboot
- Perform an NVRAM Reset (hit Space Bar to reveal the option)
- Boot macOS from the USB flash drive
- If your system boots successfully, mount your ESP and copy over the EFI Folder to you HDD/SSD and reboot.
- Continue with Post-Install!
Once you got macOS running, you should change the following settings to make your system more secure:
- Change
SecureBootModel
fromDisabled
toj185
(for iMac20,1) orj185f
(for iMac20,2).SecureBootModel
is only applicable to macOS Catalina and newer. - Change
csr-active-config
to00000000
to enable System Integrity Protection (SIP). Lower/Disables SIP when using a legacy NVIDIA GPU! - Under
UEFI/APFS
, changeMinDate
andMinVersion
from-1
(disabled) to the correct values for the macOS version you are using. A list with correct values can be found here.
Warning
You should have a working backup of your EFI folder on a FAT32 formatted USB flash drive since changing these settings can prevent the system from booting. You may have to disable them for installing macOS Monterey if you have issues.
You can follow my guide to generate a CPUFriendDataProvider.kext
which works alongside CPUFriend.kext
to optimize CPU Power Management for a more efficient performance. Have a look at the CPU behavior using Intel Power Gadget. The CPU idle frequency should be lower after adding the kexts.
The items displayed in OpenCore's Boot Picker menu are based on a combination of bits representing supported devices (SATA, NVME, USB, etc.) and file systems (APFS, HFS, NTFS, etc.). There are 24 bits which can be turned on and off to modify what's displayed in the Boot Picker. The combination of selected bits create what's called the ScanPolicy
. It's located under in the config.plist
under Misc/Security
. The default value of my EFI is 0
(everything). Although this is great for compatibility, it will also display EFI Folders on drives which are not the boot drive as well.
To change the ScanPolicy
to your liking, you can use the OpenCore ScanPolicy Generator. I am using 2687747
for example which hides EFI Folders and NTFS Drives. To add a custom entry for a Windows Disk to OpenCore's Boot Picker follow my guide. Otherwise you can just boot Windows from the BIOS Boot Menu (F12) which also bypasses all the OpenCore injections.
Important
Using an incorrect ScanPolicy
can lead to an empty Boot Menu without any entries. So make sure you have a working Backup of your EFI folder!
Besides the included themes from Acidanthera which provide the standard macOS look and feel, I've added 2 additional themes: BsxM1
(default) and EnterTwilight
. To change them, do the following:
- Open
config.plist
- Go to Misc/Boot and change
PickerVariant
to:Blackosx\BsxM1
orvelickovicdj\EnterTwilight
- Save and reboot
To revert the changes, enter Acidanthera\GoldenGate
as PickerVariant
and change the Flavour of the NVRAM Reset Tool back to Auto
.
Note
For more config tips and tricks, you can check out this.
Listed below, you find results of benchmark tests conducted with Geekbench 5. I was testing Metal 3 performance of the iGPU for 3 different cases: default configuration vs. using Apples GUC Firmware vs. using RPS Control.
iGPU: UHD 630 in "offline/headless" configuration
AAPL,ig-platform-id: 0300C89B
SMBIOS: iMac20,2
macOS: 13.2
Geekbench: 5.5.0
Test # | Added Properties | Compute Score | Notes |
---|---|---|---|
1 | enable-metal |
4671 |
|
2 | enable-metal igfxfw=2 |
4808 |
|
3 | enable-metal igfxfw=2 rebuild-device-tree |
4796 |
|
4 | enable-metal rps-control |
4754 |
|
5 | enable-metal igfxfw=2 rebuild-device-tree rps-control |
4798 |
|
Conclusions:
- Test #2 produced the best result. But it's not really a significant increase in performance compared to the default configuration used in test #1. It basically runs the iGPU at a higher base frequency so the energy consumption is higher as well. It also seems that this setting is uncapped in terms of max frequency. This resulted in my system crashing sometimes when watching YouTube because the iGPU frequency went through the roof. So you might consider not using
igfxfw=2
. - Results of Tests #3 and #5 are virtually identical. That's because
igfxfw=2
takes precedence overrps-control
, so you shouldn't combine these two properties!
- Check if your GPU supports resizable BAR – you can use GPU-Z in Windows for that. The RX 580 I am using does support it
- In your config, change the following settings:
Booter/Quirks
: changeResizeAppleGpuBars
from-1
to0
which will update GPU registers to their defaults when booting macOSUEFI/Quirks
: LeaveResizeGpuBars
at-1
so other OSes are not affected by this change
- Save your config and reboot
- Enter the BIOS
- Change the following Options:
- Enable
Above 4G Decoding
(otherwise the Resizable BAR option is not available) - Change Resizable BAR mode to:
Auto
- Enable
NOTES:
- Enabling resizable BAR slightly increases performance (approx. 10 %).
- About Resizable BAR
If you have an AMD GPU and want to benefit from improved performance of Polaris, Vega and (Big) Navi and cards, you can switch to SMBIOS iMacPro1,1
or MacPro7,1
instead. Since these Macs don't have an iGPU, tasks like Quick Sync Video and HEVC encoding are then handled by the GPU instead. More details about choosing the right SMBIOS can be found here
Mind the following:
- Additional config edits are required when switching the SMBIOS, so that the card works as intended.
- If you are using CPUFriend, you have to generate a new
CpuFriendDataprovider.kext
with CPUFriendFriend and replace the previously used on tp adapt CPU Power Management to the new SMBIOS.
The shikigva
boot-arg previously used to address DRM issues is no longer supported in macOS Monterey and newer.
Instead, 'unfairgva=x' (x = number from 1 to 7) must be used now. It's a bitmask containing 3 bits (1, 2 and 4) which can be combined to enable different features (and combinations thereof) as explained here
Apple removed support for NVIDIA GeForce Cards from macOS Monterey beta 7 onward. So users with NVIDIA Kepler GPUs (GTX 700, etc.) need to reinstall them in post-install using OpenCore Legacy Patcher.
Change the following settings in config.plist
:
Misc/Security/SecureBootModel
: Change it toDisabled
→ Required to load NVIDIA drivers – otherwise the system would crash during bootKernel/Add
: EnableRestrictEvents.kext
→ This enables the VMM board-id spoof. Required for OTA System Updates to work with SIP disabledcsr-active-config
: Change to03080000
before applying root patches with OCLP
Important
Applying root patches breaks the seal of the snapshot volume. Once the seal is broken, incremental OTA updates are no longer available in System Updates. Therefore, each time a System Update is available, the full macOS Installer (approx 15 GB) will be downloaded – and after the update is installed, OCLP has to re-apply the root patches again.
- Acidanthera for OpenCore Boot Manager and kexts
- Chris1111 for GeForce Kepler Patcher
- Corpnewt for ProperTree, SSDTTime and CPUFriendFriend
- daliansky for OC Little ACPI Hotpatch Collection
- Dortania for OpenCore Install Guide and OpenCore Legacy Patcher
- jsassu20 for MacDown Markdown Editor
- SL-Soft for Kext Updater and ANYmacOS