OpenCore Hackintosh configuration example for the ASUS ROG STRIX Z490-E GAMING motherboard with an Intel® Core™ i9-10900K.
macOS Sonoma running on native hardware.
You can also use this template to make your own writeup for your setup!
ASUS ROG STRIX Z490-E GAMING
Product Page
"The ROG Strix Z490-E Gaming motherboard is designed to cope with the demands of 10th Generation Intel® Core™ processors, with boosted power delivery and an optimised cooling design providing more surface area for heat dissipation."
Product description provided by ASUS.
These are the BIOS settings used with this Hackintosh setup.
Setting | Value |
---|---|
VT-d | Enabled |
Above 4G Decoding1 | Disabled |
ReSizeable BAR1 | Disabled |
Memory Remap | Enabled |
Primary Output | CPU Graphics |
DVMT PreAlloc Size | 64MB |
iGPU Multi-Monitor | Enabled |
1 ReSizable BAR and Above 4G Decoding are disabled to allow for the proper virtualisation of macOS under QEMU/KVM with PCI passthrough.
This is the version of OpenCore used, including bundled files. The included config.plist
targets this version.
This is the version of macOS that this OpenCore configuration currently targets. Other versions of macOS that are compatible with it are listed below.
- macOS Sequoia
- macOS Sonoma
- macOS Catalina
- Dedicated GPU (RX 5700 XT)
- iGPU (UHD 630)
- NVMe drives
- SATA drives
- USB 3.1 (XHCI)
- Ethernet
- Wi-Fi
- Bluetooth
- Camera
- Sound
- AirDrop
- iMessage
- FaceTime
- Sidecar
- Unlock with Apple Watch
- QE/CI graphics acceleration
- Metal support (Metal 3)
- Temperature sensors
- Sleep / Wake
- RTC (protection)
- Hyperthreading
- Virtualisation
- Memory bank configuration
HDMI on Intel UHD 630 (iGPU) 🎉 FIXED!Wi-Fi and Bluetooth 🎉 FIXED!AirDrop 🎉 FIXED!- Wi-Fi and Bluetooth fixed
- Secure Boot model changed from
Default
toj185f
Unlock with Apple Watch 🎉 FIXED!- Wi-Fi and Bluetooth fixed
- Secure Boot model changed from
Default
toj185f
BIOS POSTs in "Safe Mode" 🎉 FIXED!
Tip
This was fixed by using new DeviceProperties
connector patches (mentioned in the DeviceProperties section of this readme!).
Note
The DeviceProperties
for the UHD 630 iGPU has been updated to support Metal 3!
AirportItlwm.kext
. Wi-Fi networks will often connect but crash the entire system after a minute or two. Strangely, Wi-Fi worked flawlessly in macOS Recovery, and I even used it to install macOS as I had not patched the I225-V ethernet yet.Tip
This was fixed by using the debug (alpha) version of AirportItlwm.kext
.
Tip
This was fixed by two seperate patches;
Tip
This was fixed by two seperate patches;
The system has POSTed in safe mode.
displayed. This is because macOS tries to write to disallowed areas of the RTC.Tip
This was fixed by using using this guide.
The specs of my main system that the OpenCore configuration targets.
Motherboard | ASUS ROG STRIX Z490-E GAMING |
---|---|
CPU | Intel® Core™ i9-10900K |
Chipset | Z490 |
Generation | Comet Lake |
Memory | 64 GB DDR4 3200MHz |
Storage | 500 GB WD Blue NVMe M.2 |
GPU | Intel UHD Graphics 630 AMD Radeon RX 5700 XT |
NIC | Intel I225-V 2.5Gb Ethernet |
Note
The system contains an NVIDIA RTX 3090 graphics card, but it has been intentionally disabled through a custom SSDT (SSDT-GPU-DISABLE.aml
).
Intel Core i9-10900K | Windows | Linux | macOS |
---|---|---|---|
Single Core | 1,694 | 1,936 | 1,751 |
Muti Core | 9,279 | 10,229 | 9,883 |
GPU | Windows Vulkan |
Linux Vulkan |
macOS Metal |
---|---|---|---|
NVIDIA GeForce RTX 3090 |
182,120 | 194,027 | - |
AMD Radeon RX 5700 XT |
68,514 | 76,096 | 101,291 |
Intel UHD 630 Graphics |
6,275 | 5,702 | 6,312 |
SSDTs used:
- SSDT-AWAC
- SSDT-EC-USBX-DESKTOP
- SSDT-GPU-DISABLE
- SSDT-PLUG-DRTNIA
- SSDT-RHUB
- SSDT-RX5700XT ⎋
Important
SSDT-GPU-DISABLE
is a custom SSDT used to disable an NVIDIA RTX 3090 graphics card. It should be removed if config is being used on a different system.
SSDT-RX5700XT
is an EXPERIMENTAL custom SSDT used to enhance the performance of an AMD RX 5700 XT graphics card. It should be removed if config is being used on a different system.
The following tables display the added PCI devices and their child keys.
Intel UHD Graphics 630
Key | Type | Value |
---|---|---|
AAPL,ig-platform-id | Data | 07009B3E |
device-id | Data | 9B3E0000 |
enable-metal | Data | 01000000 |
disable-agdc | Data | 01000000 |
enable-hdmi-dividers-fix | Data | 01000000 |
enable-hdmi20 | Data | 01000000 |
framebuffer-con0-busid | Data | 02000000 |
framebuffer-con0-enable | Data | 01000000 |
framebuffer-con0-flags | Data | C7030000 |
framebuffer-con0-index | Data | 02000000 |
framebuffer-con0-pipe | Data | 0A000000 |
framebuffer-con0-type | Data | 00080000 |
framebuffer-con1-busid | Data | 04000000 |
framebuffer-con1-enable | Data | 01000000 |
framebuffer-con1-flags | Data | C7030000 |
framebuffer-con1-index | Data | 03000000 |
framebuffer-con1-pipe | Data | 08000000 |
framebuffer-con1-type | Data | 00080000 |
framebuffer-con2-busid | Data | 01000000 |
framebuffer-con2-enable | Data | 01000000 |
framebuffer-con2-flags | Data | C7030000 |
framebuffer-con2-index | Data | 01000000 |
framebuffer-con2-pipe | Data | 09000000 |
framebuffer-con2-type | Data | 00080000 |
framebuffer-patch-enable | Data | 01000000 |
framebuffer-stolenmem | Data | 00003001 |
rps-control | Data | 01000000 |
hda-gfx | String | onboard-1 |
model | String | Intel UHD Graphics 630 |
igfxfw | Data | 02000000 |
Expand this if you want to copy and paste the entries above as .plist
data!
You can paste this data straight into plist editors like ProperTree.
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>BwCbPg==</data>
<key>device-id</key>
<data>mz4AAA==</data>
<key>disable-agdc</key>
<data>AQAAAA==</data>
<key>enable-hdmi-dividers-fix</key>
<data>AQAAAA==</data>
<key>enable-hdmi20</key>
<data>AQAAAA==</data>
<key>enable-metal</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-busid</key>
<data>AgAAAA==</data>
<key>framebuffer-con0-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-flags</key>
<data>xwMAAA==</data>
<key>framebuffer-con0-index</key>
<data>AgAAAA==</data>
<key>framebuffer-con0-pipe</key>
<data>CgAAAA==</data>
<key>framebuffer-con0-type</key>
<data>AAgAAA==</data>
<key>framebuffer-con1-busid</key>
<data>BAAAAA==</data>
<key>framebuffer-con1-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-flags</key>
<data>xwMAAA==</data>
<key>framebuffer-con1-index</key>
<data>AwAAAA==</data>
<key>framebuffer-con1-pipe</key>
<data>CAAAAA==</data>
<key>framebuffer-con1-type</key>
<data>AAgAAA==</data>
<key>framebuffer-con2-busid</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-flags</key>
<data>xwMAAA==</data>
<key>framebuffer-con2-index</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-pipe</key>
<data>CQAAAA==</data>
<key>framebuffer-con2-type</key>
<data>AAgAAA==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-stolenmem</key>
<data>AAAwAQ==</data>
<key>hda-gfx</key>
<string>onboard-1</string>
<key>igfxfw</key>
<data>AgAAAA==</data>
<key>model</key>
<string>Intel UHD Graphics 630</string>
<key>rps-control</key>
<data>AQAAAA==</data>
</dict>
Important
The connector patches in the table above are new as of the 25th August 2024 and were implemented to fix HDMI output. Please add these new entries to enable HDMI!
Note
The NEW configuration of the UHD Graphics 630 can run in both display and headless modes!
Tip
The enable-metal
key is now included to enable Metal 3 graphics support with the UHD Graphics 630!
This means various macOS apps can now utilise the iGPU - even while headless - for more trivial tasks, such as rendering Finder. This frees up the dGPU's resources for other more intensive tasks.
You can even see this in action by enabling the hidden GPU tab in Activity Monitor.
Intel I225-V 2.5Gb Ethernet
Key | Type | Value |
---|---|---|
device-id | Data | F2150000 |
Expand this if you want to copy and paste the entries above as .plist
data!
You can paste this data straight into plist editors like ProperTree.
<key>PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)</key>
<dict>
<key>device-id</key>
<data>8hUAAA==</data>
</dict>
Note
The Intel I225-V requires a special patch mentioned in Kernel.
This only applies to macOS Big Sur and older.
Tip
For improved compatibility with macOS Big Sur and older, the I225-V
model has now been masked as the near-identical I225-LM
model. After extensive testing, it appears functionality is the same.
Apple ALC
Key | Type | Value |
---|---|---|
AAPL,ig-platform-id | Data | 0300220D |
layout-id | Data | 01000000 |
Expand this if you want to copy and paste the entries above as .plist
data!
You can paste this data straight into plist editors like ProperTree.
<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>AwAiDQ==</data>
<key>layout-id</key>
<data>AQAAAA==</data>
</dict>
The following shows the kernel configuration.
Kexts used:
- Lilu
- WhateverGreen
- AirportItlwm
- IntelBluetoothFirmware
- NVMeFix
- VirtualSMC
- AppleALC
- BlueToolFixup
- IntelBTPatcher
- SMCProcessor
- SMCSuperIO
- SMCRadeonSensors
- RestrictEvents
- FeatureUnlock
- RTCMemoryFixup
- Z490E_USBMap
Note
Z490E_USBMap.kext
is a custom kext containing the USB mappings of my ASUS ROG STRIX Z490-E GAMING motherboard ports - your mileage may vary!
Note
RestrictEvents.kext
has been added to utilise its OTA software update patches. It does NOT apply any other patches.
Tip
There are multiple versions of AirportItlwm.kext
installed to support various versions of macOS.
You don't have to remove any - they have all been individually configured to only be injected based on the macOS version booted.
Intel I225-V 2.5Gb Ethernet
Key | Type | Value |
---|---|---|
Arch | String | Any |
Base | String | __Z18e1000_set_mac_typeP8e1000_hw |
Comment | String | I225-V patch |
Count | Number | 1 |
Enabled | Boolean | True |
Find | Data | F2150000 |
Identifier | String | com.apple.driver.AppleIntelI210Ethernet |
Limit | Number | 0 |
Mask | Data | |
MaxKernel | String | 20.4.0 |
MinKernel | String | 19.0.0 |
Replace | Data | F3150000 |
ReplaceMask | Data | |
Skip | Number | 0 |
Expand this if you want to copy and paste the entries above as .plist
data!
You can paste this data straight into plist editors like ProperTree.
<dict>
<key>Arch</key>
<string>Any</string>
<key>Base</key>
<string>__Z18e1000_set_mac_typeP8e1000_hw</string>
<key>Comment</key>
<string>I225-V patch</string>
<key>Count</key>
<integer>1</integer>
<key>Enabled</key>
<true/>
<key>Find</key>
<data>8hUAAA==</data>
<key>Identifier</key>
<string>com.apple.driver.AppleIntelI210Ethernet</string>
<key>Limit</key>
<integer>0</integer>
<key>Mask</key>
<data></data>
<key>MaxKernel</key>
<string>20.4.0</string>
<key>MinKernel</key>
<string>19.0.0</string>
<key>Replace</key>
<data>8xUAAA==</data>
<key>ReplaceMask</key>
<data></data>
<key>Skip</key>
<integer>0</integer>
</dict>
SecureBootModel 》 j185f
Vault 》 Optional
Note
The secure boot model j185f
corresponds to an iMac20,2
from August 2020.
Contents stored in NVRAM.
Key | Type | Value |
---|---|---|
DefaultBackgroundColor | Data | 00000000 |
Key | Type | Value |
---|---|---|
rtc-blacklist | Data |
Key | Type | Value |
---|---|---|
ForceDisplayRotationInEFI | Number | 0 |
SystemAudioVolume | Data | 46 |
boot-args | String | keepsyms=1 debug=0x100 alcid=1 agdpmod=pikera igfxgl=1 forceRenderStandby=0 itlwm_cc=GB revpatch=sbvmm |
csr-active-config | Data | 00000000 |
prev-lang-diags:kbd | Data | 656E2D47 42 |
prev-lang:kbd | Data | 656E2D47 423A32 |
StartupMute | Data | 00 |
Expand this if you want to copy and paste the entries above as .plist
data!
You can paste this data straight into plist editors like ProperTree.
<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
<dict>
<key>DefaultBackgroundColor</key>
<data>AAAAAA==</data>
</dict>
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
<dict>
<key>rtc-blacklist</key>
<data></data>
</dict>
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<dict>
<key>ForceDisplayRotationInEFI</key>
<integer>0</integer>
<key>boot-args</key>
<string>keepsyms=1 debug=0x100 alcid=1 agdpmod=pikera igfxgl=1 forceRenderStandby=0 itlwm_cc=GB revpatch=sbvmm</string>
<key>prev-lang-diags:kbd</key>
<data>ZW4tR0I=</data>
<key>prev-lang:kbd</key>
<data>ZW4tR0I6Mg==</data>
<key>csr-active-config</key>
<data>AAAAAA==</data>
<key>StartupMute</key>
<data>AA==</data>
<key>SystemAudioVolume</key>
<data>Rg==</data>
</dict>
Due to the system having a 10-core i9-10900K, the CPU model is similar to the one found in an iMac 5K 27-inch (i9, 2020), with a model identifier of iMac20,2
.
Drivers in use:
- HFSPlus
- OpenCanopy
- OpenRuntime
- ResetNvramEntry
This is just a collection of my post-install tweaks I apply after installing macOS. They're not really related to OpenCore or the overall functionality of the configuration.
Okay, so I'm a bit of a macOS boomer. Having used macOS since long before Mojave's dark mode, I'm accustomed to the regular light appearance of the windows - but I always enabled the "Dark menu bar and dock" option as I loved the look. While I still like dark mode (and use it on iOS), the hybrid light/dark mode on macOS is still my favourite!
The following commands restore that functionality:
Window Server
defaults write -g NSRequiresAquaSystemAppearance -bool Yes
Notification Centre
defaults write com.apple.notificationcenterui NSRequiresAquaSystemAppearance -bool No
Control Centre
defaults write com.apple.controlcenterui NSRequiresAquaSystemAppearance -bool No
About This Mac + System Profiler
defaults write com.apple.SystemProfiler.AboutExtension NSRequiresAquaSystemAppearance -bool No
defaults write com.apple.SystemProfiler.AboutExtension NSRequiresAquaSystemAppearance -bool No
Show Hidden Files
Show Hidden Files
Does what it says on the tin. Shows all files, including hidden ones, in the Finder.
defaults write com.apple.Finder AppleShowAllFiles YES
killall Finder
Unhides the hidden sECrET GPU tab in macOS' Activity Monitor, helpful for seeing which apps are running on what GPU!
defaults write com.apple.ActivityMonitor ShowGPUTab -bool true
Makes AirDrop scan Ethernet too!
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1
killall Finder
Some macOS eye candy.
curl -OL https://raw.githubusercontent.com/Coopydood/OpenCore-Z490E-CometLake/main/EXTRAS/HyperTerm.terminal
Import through Terminal's preferences.
This repo is simply a dump of my current and up-to-date OpenCore stuff that I use on my machine.
Feel free to use it as an example and modify it however you'd like, but please don't expect it to "just work" - because it won't.
If you've found a way to make the configuration better, or have solved issues outlined in the Problems section, please share your changes on GitHub for us all to use! Thank you!