OpenCore configuration for running macOS 15 on the ASUS Prime B460i-PLUS motherboard. Without obsolete or cosmetic patches, the goal is simply macOS 15 working well on (mostly if you want WiFi) compatible hardware
Notes
- For features listed as
in-scopethat are not working as expected, it may be beneficial for all to open an issue here - Where something is listed as
out-of-scopemore explicit information will surely be found in various places across the internet, or in the OpenCore documentation - TextMate (github.com/textmate/textmate) is free software useful for editing
config.plist - WiFi with m.2 Broadcom BCM94360NG works in macOS 15 with downgraded/patched/blocked kernel extensions and OCLP root patching for modern WiFi
- The Bluetooth of m.2 Broadcom BCM94360NG works natively
- The repo contains files that are invisible in Finder according to a hidden file visibility toggle (Command + Shift + .)
- The EFI shell has the
csrutilcommand e.g.csrutil status,csrutil enable,csrutil disable 0x803for controlling the value of thecsr-active-configNVRAM variable - Use
reset,rebootorresetsystemafter usingcsrutiloreditto changeconfig.plistsettings or NVRAM variables - Using more than one display with Intel HD 630 has issues
in-scope
- Accelerated graphics on supported Intel and AMD GPUs
- Built-in audio
- Built-in ethernet
- Airport and Bluetooth using a natively supported device or BCM94360
- USB
- CPU power management
- PCIe active-state power management
- System wake, sleep, and shutdown
- macOS installation and updates
- System stability
- OpenCore picker attributes for reading icons from volumes, themed icons and mouse control
- EFI shell
out-of-scope
- Loading out-of-scope modified configurations or almost any ACPI table not originating from this repo
- Apple ID problems
- UEFI Secure Boot
- OpenCore Security and FileVault
- Airport and Bluetooth using a device that is not natively supported
- DRM and hardware video decoding or encoding
- NVMe problems
Use ASUS firmware version 1003 or newer.
| Field | Value |
|---|---|
| VT-d | Enabled |
| Graphics Configuration → DVMT Pre-Allocated | 64M* |
| USB Configuration → Legacy USB Support | Disabled |
| USB Configuration → XHCI Handoff | Enabled |
| Onboard Devices Configuration → Serial Port | Off |
* 64M HD 630 Graphics, 32M connectorless
| Field | Value |
|---|---|
| Graphics Configuration → Primary Display | PEG |
| Graphics Configuration → IGPU Multi-Monitor | Enabled |
| Field | Value |
|---|---|
| CSM (Compatibility Support Mode) → Launch CSM | Disabled |
| Secure Boot → OS Type | Other OS |
| Boot Configuration → Fast Boot | Disabled |
Source: dortania.github.io/OpenCore-Install-Guide/config.plist/comet-lake.html#intel-bios-settings
Edit the DeviceProperties section of your config.plist according to your configuration
Connectorless (using PCIe AMD GPU)
The default config.plist in this repo is configured in this way
...
<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>
...
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>AwCYPg==</data>
</dict>
...
</dict>
</dict>
...Attached Display
Intel graphics should work well with a single display. Prefer DisplayPort instead of HDMI where possible
...
<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>
...
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>BwCbPg==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-pipecount</key>
<data>AgAAAA==</data>
<key>framebuffer-portcount</key>
<data>AgAAAA==</data>
<key>framebuffer-con1-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-type</key>
<data>AAgAAA==</data>
</dict>
...
</dict>
</dict>
...Refer to README-Intel-Graphics.md
What's this?
OpenCore will generate a complete SMBIOS for your system according to information provided in the PlatformInfo section of config.plist and a dataset derived from Apple firmwares. GenSMBIOS is a python script that uses acidanthera's macserial to generate required serials and unique identifiers
Edit the PlatformInfo section of your config.plist so that the MLB, ROM, SystemSerialNumber and SystemUUID values are unique to your machine
...
<key>PlatformInfo</key>
<dict>
...
<key>Generic</key>
<dict>
...
<key>MLB</key>
<string>M0000000000000001</string>
...
<key>ROM</key>
<data>ESIzRFVm</data>
...
<key>SystemSerialNumber</key>
<string>W00000000001</string>
<key>SystemUUID</key>
<string>00000000-0000-0000-0000-000000000000</string>
</dict>
...
</dict>
...| PlatformInfo → Generic | Source |
|---|---|
| MLB | *Board Serial |
| ROM | *Apple ROM |
| SystemSerialNumber | *Serial |
| SystemUUID | *SmUUID |
* GenSMBIOS output, iMac20,1
GenSMBIOS: github.com/corpnewt/GenSMBIOS
At the picker, press space, choose Reset NVRAM
Reset NVRAM at first boot and whenever the bootloader files have changed
The csrutil command from AcidAnthera/OpenCorePkg is available from the EFI shell. System Integrity Protection can be enabled/disabled in NVRAM with, for example, csrutil enable and csrutil disable 0x803
The default in config.plist is enabled, resetting NVRAM will re-enable System Integrity Protection. Use csrutil in EFI shell to disable it, for example, while adding a .VolumeIcon to the /System/Volumes/Preboot/UUID directory, or at the root of the Preboot volume, or for root patching with OpenCore Legacy Patcher
Generate a valid USBPorts.kext
Refer to README-usbtool.command.md
NVMeFix is a set of patches for the Apple NVMe storage driver, IONVMeFamily. Its goal is to improve compatibility with non-Apple SSDs
Refer to github.com/acidanthera/NVMeFix
