OpenCore Z490-E (Comet Lake)
v1.0.0
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!
Motherboard
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.
BIOS
UEFI BIOS Utility
Version 3001 (19/02/2024)
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.
OpenCore
OpenCore
1.0.2
This is the version of OpenCore used, including bundled files. The included config.plist
targets this version.
macOS
macOS Sonoma
This is the version of macOS that this OpenCore configuration currently targets. Other versions of macOS that are compatible with it are listed below.
Supported
macOS Sequoia
macOS Ventura
macOS Monterey
macOS Big Sur
macOS Catalina
***
## What works?
### macOS
- [x] macOS Sequoia
- [x] macOS Sonoma
- [x] macOS Catalina
### Hardware
- [x] Dedicated GPU (RX 5700 XT)
- [x] iGPU (UHD 630)
- [x] NVMe drives
- [x] SATA drives
- [x] USB 3.1 (XHCI)
- [x] Ethernet
- [x] Wi-Fi
- [x] Bluetooth
- [x] Camera
- [x] Sound
### Software
- [x] AirDrop
- [x] iMessage
- [x] FaceTime
- [x] Sidecar
- [x] Unlock with Apple Watch
- [x] QE/CI graphics acceleration
- [x] Metal support (Metal 3)
- [x] Temperature sensors
- [x] Sleep / Wake
- [x] RTC (protection)
- [x] Hyperthreading
- [x] Virtualisation
- [x] Memory bank configuration
***
## Problems
### 🎉 ALL MAJOR PROBLEMS HAVE BEEN FIXED!
HDMI on Intel UHD 630 (iGPU) 🎉 FIXED!
Despite trying multiple different framebuffers and connection patches, I cannot get the HDMI output to work from the iGPU. DisplayPort works fine. HDMI also works fine on the dedicated GPU.
As a result, the iGPU is being used for internal compute only - which works really well. I do still intend to find the fix though!
> [!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!
Wi-Fi and Bluetooth 🎉 FIXED!
Having worked on my virtualised instances of macOS Catalina and macOS Monterey, I'm still unable to get stable Wi-Fi or Bluetooth support on macOS Sonoma with 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``.
AirDrop 🎉 FIXED!
As this relies on Wi-Fi and Bluetooth connectivity, while shown as available throughout the system, it sadly does not work at this time. As a workaround, I have been using LocalSend, a cross-platform alternative.
> [!TIP]
> This was fixed by two seperate patches;
> - Wi-Fi and Bluetooth fixed
> - Secure Boot model changed from ``Default`` to ``j185f``
Unlock with Apple Watch 🎉 FIXED!
Again, as a Wi-Fi and Bluetooth reliant feature, unlocking with Apple Watch doesn't work either right now.
> [!TIP]
> This was fixed by two seperate patches;
> - Wi-Fi and Bluetooth fixed
> - Secure Boot model changed from ``Default`` to ``j185f``
BIOS POSTs in "Safe Mode" 🎉 FIXED!
After booting macOS, the next reboot always caused the BIOS to POST in a "safe mode" with the message 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](https://dortania.github.io/OpenCore-Post-Install/misc/rtc.html).
***
## System
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
~~NVIDIA RTX 3090~~ * |
| **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``).
### Geekbench Scores
| **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 |
***
## ACPI
SSDTs used:
- SSDT-AWAC
- SSDT-EC-USBX-DESKTOP
- SSDT-GPU-DISABLE
- SSDT-PLUG-DRTNIA
- SSDT-RHUB
- SSDT-RX5700XT [⎋](https://www.tonymacx86.com/threads/amd-radeon-performance-enhanced-ssdt.296555/)
> [!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.
***
## DeviceProperties
The following tables display the added PCI devices and their child keys.
### PciRoot(0x0)/Pci(0x2,0x0)
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`` |
📄 Show as property list data
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.
```xml
PciRoot(0x0)/Pci(0x2,0x0)
AAPL,ig-platform-id
BwCbPg==
device-id
mz4AAA==
disable-agdc
AQAAAA==
enable-hdmi-dividers-fix
AQAAAA==
enable-hdmi20
AQAAAA==
enable-metal
AQAAAA==
framebuffer-con0-busid
AgAAAA==
framebuffer-con0-enable
AQAAAA==
framebuffer-con0-flags
xwMAAA==
framebuffer-con0-index
AgAAAA==
framebuffer-con0-pipe
CgAAAA==
framebuffer-con0-type
AAgAAA==
framebuffer-con1-busid
BAAAAA==
framebuffer-con1-enable
AQAAAA==
framebuffer-con1-flags
xwMAAA==
framebuffer-con1-index
AwAAAA==
framebuffer-con1-pipe
CAAAAA==
framebuffer-con1-type
AAgAAA==
framebuffer-con2-busid
AQAAAA==
framebuffer-con2-enable
AQAAAA==
framebuffer-con2-flags
xwMAAA==
framebuffer-con2-index
AQAAAA==
framebuffer-con2-pipe
CQAAAA==
framebuffer-con2-type
AAgAAA==
framebuffer-patch-enable
AQAAAA==
framebuffer-stolenmem
AAAwAQ==
hda-gfx
onboard-1
igfxfw
AgAAAA==
model
Intel UHD Graphics 630
rps-control
AQAAAA==
```
> [!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](https://github.com/Coopydood/OpenCore-Z490E-CometLake#show-gpu-tab-in-activity-monitor).
### PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
Intel I225-V 2.5Gb Ethernet
| **Key** | **Type** | **Value** |
|--------------------------|:--------:|:------------:|
| device-id | Data | ``F2150000`` |
📄 Show as property list data
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.
```xml
PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
device-id
8hUAAA==
```
> [!NOTE]
> The **Intel I225-V** requires a special patch mentioned in [Kernel](https://github.com/Coopydood/OpenCore-Z490E-CometLake/?tab=readme-ov-file#patches).
>
> 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.
### PciRoot(0x0)/Pci(0x1b,0x0)
Apple ALC
| **Key** | **Type** | **Value** |
|--------------------------|:--------:|:------------:|
| AAPL,ig-platform-id | Data | ``0300220D`` |
| layout-id | Data | ``01000000`` |
📄 Show as property list data
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.
```xml
PciRoot(0x0)/Pci(0x1b,0x0)
AAPL,ig-platform-id
AwAiDQ==
layout-id
AQAAAA==
```
***
## Kernel
The following shows the kernel configuration.
### Kexts
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.
### Patches
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 |
📄 Show as property list data
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.
```xml
Arch
Any
Base
__Z18e1000_set_mac_typeP8e1000_hw
Comment
I225-V patch
Count
1
Enabled
Find
8hUAAA==
Identifier
com.apple.driver.AppleIntelI210Ethernet
Limit
0
Mask
MaxKernel
20.4.0
MinKernel
19.0.0
Replace
8xUAAA==
ReplaceMask
Skip
0
```
***
## Security
**SecureBootModel 》** j185f
**Vault 》** Optional
> [!NOTE]
> The secure boot model ``j185f`` corresponds to an ``iMac20,2`` from August 2020.
***
## NVRAM
Contents stored in NVRAM.
### 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
| **Key** | **Type** | **Value** |
|------------------------|:--------:|:------------:|
| DefaultBackgroundColor | Data | ``00000000`` |
### 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
| **Key** | **Type** | **Value** |
|---------------|:--------:|:---------:|
| rtc-blacklist | Data | |
### 7C436110-AB2A-4BBB-A880-FE41995C9F82
| **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`` |
📄 Show as property list data
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.
```xml
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
DefaultBackgroundColor
AAAAAA==
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
rtc-blacklist
7C436110-AB2A-4BBB-A880-FE41995C9F82
ForceDisplayRotationInEFI
0
boot-args
keepsyms=1 debug=0x100 alcid=1 agdpmod=pikera igfxgl=1 forceRenderStandby=0 itlwm_cc=GB revpatch=sbvmm
prev-lang-diags:kbd
ZW4tR0I=
prev-lang:kbd
ZW4tR0I6Mg==
csr-active-config
AAAAAA==
StartupMute
AA==
SystemAudioVolume
Rg==
```
***
## SMBIOS
### iMac20,2
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``.
***
## UEFI
Drivers in use:
- HFSPlus
- OpenCanopy
- OpenRuntime
- ResetNvramEntry
***
## Post-Install Tweaks
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.
Dark Menu Bar and Dock
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**
```sh
defaults write -g NSRequiresAquaSystemAppearance -bool Yes
```
**Notification Centre**
```sh
defaults write com.apple.notificationcenterui NSRequiresAquaSystemAppearance -bool No
```
**Control Centre**
```sh
defaults write com.apple.controlcenterui NSRequiresAquaSystemAppearance -bool No
```
**About This Mac + System Profiler**
```sh
defaults write com.apple.SystemProfiler.AboutExtension NSRequiresAquaSystemAppearance -bool No
defaults write com.apple.SystemProfiler.AboutExtension NSRequiresAquaSystemAppearance -bool No
```
Show Hidden Files
Does what it says on the tin. Shows all files, including hidden ones, in the Finder.
```sh
defaults write com.apple.Finder AppleShowAllFiles YES
killall Finder
```
Show GPU Tab in Activity Monitor
Unhides the hidden sECrET GPU tab in macOS' Activity Monitor, helpful for seeing which apps are running on what GPU!
```sh
defaults write com.apple.ActivityMonitor ShowGPUTab -bool true
```
AirDrop over Ethernet
Makes AirDrop scan Ethernet too!
```sh
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1
killall Finder
```
Frosted Glass Terminal Theme
Some macOS eye candy.
```sh
curl -OL https://raw.githubusercontent.com/Coopydood/OpenCore-Z490E-CometLake/main/EXTRAS/HyperTerm.terminal
```
Import through Terminal's preferences.
***
## Gallery
***
## Disclaimer
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.
***
## Contribute!
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!
***