TABLE of CONTENTS
- About
- New approach: generating EFIs from
config.plist
- Instructions
- Additional Configuration Notes
- Updating the config Templates manually
- References
This section contains generic OpenCore configs for Intel systems based on the work of Gabriel Luchina who created EFI folders following the instructions of Dortania's OpenCore install guide. I took his concept of base configs, modified and improved it so they work out of the box (hopefully). Nevertheless, it's crucial to understand that these configs serve only as a starting point for your system to get up and running with OpenCore.
Instead of downloading pre-configured and possibly outdated OpenCore EFI folders from the internet, you can use OpenCore Auxiliary Tools (OCAT) to generate the whole EFI folder based on the a config.plist alone. This way, you always have the latest version of OpenCore, the config, kexts and drivers.
I've created about 40 base configs for Intel systems, covering a wide range of supported Desktop CPUs (1st to 10th Gen), vendors and chipsets. Laptop configs are omitted because there are way too many variables to consider to get it working flawlessly which is beyond the scope of what's possible with this method.
No AMD? Since configs for AMD systems also require many customizations before deployment (Kernel Patches, MMIO Whitelist, etc.), AMD templates have been removed from OCAT's database entirely.
- Config Templates for Intel Desktop and High End Desktop CPUs with variations for Dell, Sony, HP and other Board/Chipsets (no Laptops!)
- Required SSDT Hotpatches for each CPU family (some are disabled – check before deployment!)
- Necessary Quirks for each CPU Family (also available as Presets inside of OCAT)
- Device Properties for each platform (mostly Framebuffer Patches for: iGPU only, iGPU+dGPU and GPU only)
- Base-set of Kexts (see chart below)
MinDate
andMinVersion
for the APFS Driver set to-1
, so all macOS versions are supported
Kext | Description |
---|---|
Lilu.kext | Patch engine required for AppleALC, WhateverGreen, VirtualSMC and many other kexts. |
VirtualSMC.kext | Emulates the System Management Controller (SMC) found on real Macs. Without it macOS won't boot boot. |
WhateverGreen.kext | Used for graphics patching, DRM fixes, board ID checks, framebuffer fixes, etc; all GPUs benefit from this kext. |
AppleALC | Kext for enabling native macOS HD audio for unsupported Audio CODECs without filesystem modifications. |
CpuTscSync.kext | HEDT Configs only! For syncing TSC on Intel HEDT and Server mainboards. Without it, macOS may run extremely slow or won't boot at all. |
Listed below, you'll find optional kexts for various features and hardware. Add as needed.
Kext | Description |
---|---|
SMCProcessor.kext | For temperature monitoring for Intel CPUs (Pennryn and newer). Included in VirtualSMC |
SMCSuperIO.kext | For Fan Speed Monitoring. Included in VirtualSMC |
Kext | Description |
---|---|
IntelMausi.kext | Intel's 82578, 82579, I217, I218 and I219 NICs are officially supported. |
AtherosE2200Ethernet.kext | Required for Atheros and Killer NICs. Note: Atheros Killer E2500 models are actually Realtek based, for these systems please use RealtekRTL8111 instead. |
RealtekRTL8111.kext | For Realtek's Gigabit Ethernet. Sometimes the latest version of the kext might not work properly with your Ethernet. If you see this issue, try older versions. |
LucyRTL8125Ethernet.kext | For Realtek's 2.5Gb Ethernet. |
SmallTreeIntel82576.kext | Required for I211 NICs, based off of the SmallTree kext but patched to support I211. |
Kext | Description |
---|---|
AirportItlwm | Adds support for a large variety of Intel wireless cards and works natively in recovery thanks to IO80211Family integration. |
IntelBluetoothFirmware | Adds Bluetooth support to macOS when paired with an Intel wireless card. |
AirportBrcmFixup | Used for patching non-Apple/non-Fenvi Broadcom cards, will not work on Intel, Killer, Realtek, etc. For Big Sur see Big Sur Known Issues for extra steps regarding AirPortBrcm4360 drivers. |
BrcmPatchRAM | Used for uploading firmware on Broadcom Bluetooth chipset, required for all non-Apple/non-Fenvi Airport cards. |
Kext | Description |
---|---|
NVMeFix | Used for fixing power management and initialization on non-Apple NVMe. |
SATA-Unsupported | Adds support for a large variety of SATA controllers, mainly relevant for laptops which have issues seeing the SATA drive in macOS. Try without it first to see if your system needs it. |
AppleMCEReporterDisabler | Useful starting a to disable the AppleMCEReporter kext on macOS Catalina and newer. Recommended for dual-socket systems (ie. Intel Xeon). |
RestrictEvents | Disables memory warnings when using SMBIOS MacPro7,1 . Can also fix issues with System Update notifications (requires boot-arg revpatch=sbvmm ) |
- Download and run OCAuxiliaryTools (OCAT)
- Open the Database CMD+D
- Click on the Link
- Select a config for your CPU family and click on it
- On the toolbar above the code, click on the button that says "Download raw file"
- Open the .plist in OCAT (or drag it into the main window)
- Go to
PlatformInfo/Generic
and click theGenerate
button (next to the SMBIOS dropdown menu) - Select "Edit" > "Create EFI Folder on Desktop"
Note
- Each config.plist contains notes (
#Info
). You can see them if you open the config with a plist editor. - There's also a zipped version which contains all config templates.
After the base EFI has been generated, the config.plist
has to be modified based on the used CPU, GPU, additional hardware, peripherals and SMBIOS.
- Go to the Desktop
- Open the
config.plist
included in\EFI\OC\
with OCAT or ProperTree - Check the following Sections and Settings:
Section Setting(s) ACPI/Add Add extra ACPI Tables if your hardware configuration requires them. 2nd to 3rd Gen Intel Core CPUs require SSDT-PM
(create it in Post-Install).DeviceProperties PciRoot(0x0)/Pci(0x2,0x0)
: check if the correct Framebuffer Patch is enabled for your hardware configuration and adjust it accordingly (themodel
property for details). Entries with a#
are disabled (→ see Additional Configuration Notes).Kernel/Add Add extra kexts required for your hardware and features (WiFi and Bluetooth come to mind). A base-set required for the selected system is already included. PlatformInfo/Generic Generate SMBIOS
Data for the selected Mac modelNVRAM/Add/7C436110-AB2A-4BBB-A880-FE41995C9F82 Add additional boot-args if your hardware requires them (→ see Additional Configuration Notes). - Save the config.plist
- Copy the EFI folder to a FAT32 formatted USB flash drive
- Reboot from the flash drive and test if it works
- If it does, mount your system's EFI and put the EFI folder in there.
- If it doesn't you have to check the config again, following Dortania's OpenCore Install Guide.
- If all settings are correct, check the troubleshooting guide
- If you find a config error in the config template itself, please create an issue report and I will fix it.
2nd and 3rd Gen Intel CPUs use a different method for CPU Power Management. Use ssdtPRGen to generate a SSDT-PM.aml
in Post-Install, add it to your EFI\OC\ACPI
folder and config to get proper CPU Power Management.
You can follow my guide to do so.
Before deploying your newly generated EFI folder, check the following:
- Open the
config.plist
in a Plist Editor to find additional info and notes - View
DeviceProperties
to check the included Framebuffer-Patches. Usually, 2 Frambuffer Patches are included (List of available Framebuffer Patches):- One for using the iGPU for driving a Display
- One for using the iGPU for computational tasks only (if a supported discrete GPU is present).
- Depending on your hardware configuration (CPU, iGPU, dGPU, Mainboard, other peripherals) you may have to add additional SSDT Hotpatches, boot-args, DeviceProperties and/or Kexts!
- Cross-Reference with Dortania's OpenCore Install Guide for your CPU family to double-check and verify the config.
- For Troubleshooting, please consult Dortania's OC Troubleshooting Guide
Depending on the combination of CPU, GPU (iGPU and/or dGPU) and SMBIOS, additional boot-args
may be required. These are not included in the configs and need to be added manually before deploying the EFI folder!
Boot-arg | Description |
---|---|
-v |
Verbose Mode. Replaces the progress bar with a terminal output with a bootlog which helps resolving issues. Combine with debug=0x100 and keepsyms=1 |
debug=0x100 |
Disables macOS'es watchdog. Prevents the machine from restarting on a kernel panic. That way you can hopefully glean some useful info and follow the breadcrumbs to get past the issues. |
keepsyms=1 |
Companion setting to debug=0x100 that tells the OS to also print the symbols on a kernel panic. That can give some more helpful insight as to what's causing the panic itself. |
dart=0 |
Disables VT-x/VT-d. Nowadays, DisableIOMapper Quirk is used instead. |
cpus=1 |
Limits the number of CPU cores to 1. Helpful in cases where macOS won't boot or install otherwise. |
npci=0x2000 /npci=0x3000 |
Disables PCI debugging related to kIOPCIConfiguratorPFM64 . Alternatively, use npci=0x3000 which also disables debugging of gIOPCITunnelledKey . Required when stuck at PCI Start Configuration as there are IRQ conflicts related to your PCI lanes. Not needed if Above4GDecoding can be enabled in BIOS |
-no_compat_check |
Disables macOS compatibility check. For example, macOS 11.0 BigSur no longer supports iMac models introduced before 2014. Enabling this allows installing and booting macOS on otherwise unsupported SMBIOS. Downside: you can't install system updates if this is enabled. A better solution is to add Booter Patches to enable the board-id skip and add RestrictEvents to enable system updates as explained here |
- OpenCore Bootloader: https://github.com/acidanthera/OpenCorePkg
- OpenCore Auxiliary Tools: https://github.com/ic005k/QtOpenCoreConfig
- Base Configs: https://github.com/luchina-gabriel?tab=repositories
- OpenCore Install Guide: https://dortania.github.io/OpenCore-Install-Guide
- OpenCore Troubleshooting Guide:https://dortania.github.io/OpenCore-Install-Guide/troubleshooting/troubleshooting.html#table-of-contents