Supported macOS version: macOS 14 - Sonoma, macOS 15 - Sequoia
SMBIOS: iMac19,1
OpenCore: 1.0.2
If you are updating from macOS 13 (Ventura), pay attention to the fact that the SMBIOS has changed in order to receive the Sonoma update.
Before updating the EFI, log out of iCloud. You can also delete iCloud leftovers by following this guide for extra safety. Afterward, regenerate the serial number with GenSMBIOS
(as described in the Notes section below).
After updating the EFI, reset NVRAM on first boot (press spacebar on the boot picker, and select Reset NVRAM
).
Proceed with the update as you normally would on a Mac. Open System Settings, check for updates, and install Sonoma. Then log back into iCloud. Your PC will be detected as an entirely new device. Make sure to delete stale login entries from your device list.
- Motherboard: Supermicro MBD-X11SAE-O
- GPU: Gigabyte PCI-E Radeon RX 570 8GB (GV-RX570GAMING-8GD-MI) - Polaris
- CPU: Intel Xeon E3-1225 v6 (cm8067702871024s r32c) - Kaby Lake
- Bluetooth: ASUS USB-BT400 (
0b05:17cb
ASUSTek Computer Inc. BCM20702A0) - most USB Broadcom dongles should also work
Only one of the 2 Ethernet ports works in macOS. The left Ethernet port (closer to the display cables) functions.
However, if you plug anything into the right Ethernet port, the system will kernel panic soon after boot. There are multiple reports of this issue for different SuperMicro motherboards, and I was unable to find a fix.
While the config itself is ready to use, you still need to generate your own serial numbers and tweak the configuration accordingly before installing the system.
SuperMicro does not allow changing CFG lock in UEFI settings, so you must manually patch your UEFI to remove CFG lock. Follow this guide first before attempting to install macOS; it’s safe as long as you understand what you're doing.
Additionally, you have to disable VT-D in UEFI settings. You can review my UEFI settings in this folder.
After installation, consider enabling secure boot. I have only tested the x86legacy
option.
You can also disable on-screen logging once you’re sure your system is stable.
The boot chime is enabled to play on the back orange AUX port.
An alternative (quieter) boot chime is provided in EFI/OC/Resources/Audio.
The ACPI
patches included are specific to the motherboard and were created by me on 11-Aug-2021. If you have a different motherboard, follow this guide to create your own patches suitable for your motherboard.
USBMap.kext
is specific to the motherboard and was manually generated by me with corpnewt/USBMap.
If you have a different motherboard, generate your own USBMap
following this guide.
If you choose to try this config on a different motherboard despite the warnings above, you may need to adjust the layout-id
to get macOS to correctly detect your audio ports. Follow this guide.
Resources included (except for voiceovers)
AudioDxe.efi
- HDA audio support driver EFI firmware for most Intel and some other analog audio controllersHfsPlus.efi
- Proprietary EFI HFS+ file system driverOpenCanopy.efi
- OpenCore plugin (Bootloader GUI)OpenRuntime.efi
- Mandatory OpenCore plugin with special featuresResetNvramEntry.efi
- OpenCore plugin, adds ResetNvram entry to the boot menuToggleSipEntry.efi
- OpenCore plugin, adds ToggleSip entry to the boot menu
- AppleALC (1.9.2) - Audio for codecs that are not officially supported
- IntelMausi (1.0.7) - Intel Ethernet LAN driver
- Lilu (1.6.9) - Required for almost all other Kexts
- NVMeFix (1.1.1) - Improve compatibility with non-Apple NVMe SSDs
- SMCProcessor (n/a) - Part of VirtualSMC. Used for monitoring Intel CPU temperature
- SMCSuperIO (n/a) - Part of VirtualSMC. Used for monitoring fan speed
- USBMap (11-Aug-2021) - Generated manually as part of SSDT patches
- VirtualSMC (1.3.4) - SMC emulator layer
- WhateverGreen (1.6.8) - Patches for GPUs
- BrcmPatchRAM3 (2.6.9) - Broadcom USB Bluetooth support
- BrcmFirmwareData (n/a) - Part of BrcmPatchRAM. Firmware files for bootloader injection
- BlueToolFixup (n/a) - Part of BrcmPatchRAM. Required for macOS 12+
OpenShell.efi
- EFI shell, useful for debuggingCleanNvram.efi
- completely clears NVRAM, useful when NVRAM got corrupted