Become a MacRumors Supporter for $25/year with no ads, private forums, and more!
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

cdf

macrumors 68000
Original poster
Jul 27, 2012
1,652
1,636
This guide explains how to use the excellent OpenCore boot loader to install, run, and update the latest version of macOS on the MacPro5,1, resulting in a clean, unaltered operating system just like on a supported Mac.

OpenCore Guide.png


Introduction

OpenCore is an advanced boot loader program that expands macOS compatibility by injecting data into memory. In addition to keeping macOS secure and up to date, there are two major advantages to using OpenCore on the MacPro5,1:
  1. boot-screen support (even with a standard graphics card)
  2. hardware acceleration (with DRM support for streaming on Safari)
This guide

This guide offers a purist's approach:
  • it provides a minimal, deliberate setup (get to know precisely what makes what work)
  • it puts you in control (use OpenCore without any layers of abstraction)
  • it promotes usage practices intended by Apple (SIP, Secure Boot, clean NVRAM, vanilla features)
Although much of this guide applies to legacy Macs in general, it is specifically aimed at the following systems:

Hardware ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Requirement ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Mac Pro modelEarly 2009 with MacPro5,1 firmware, Mid 2010, or Mid 2012
Processor architectureWestmere (E56xx, L56xx, and X56xx) or Gulftown (W36xx)
Firmware version144.0.0.0.0 (need to update?)
GraphicsSupported GPU (such as RX 580, Radeon VII, and 5700 XT)
WirelessSupported modules (such as BCM94360CD and BCM943602CDP)

Other approaches

Since this guide first appeared, several solutions have been proposed to facilitate the use of OpenCore on the MacPro5,1:
  • Martin's Package (one-size-fits-all solution)
  • MyBootMgr (RefindPlus chain-loading solution with helper apps)
  • OC Plistlib Generator (programatic solution compatible with this guide for easily maintaining and updating your OpenCore setup)
  • OCLP (comprehensive automatic solution for setting up OpenCore based on your hardware)
Credits
And thank you to all those that have contributed to this guide!

Basic setup

This part of the guide provides step-by-step instructions for installing OpenCore on your Mac.

Boot natively

Boot into macOS natively (no patched installs, no third-party boot loaders).

On the MacPro5,1, the last natively bootable version of macOS is Mojave.

It is important to always have a disk with a natively bootable installation of macOS, so that you can always boot if something goes wrong.

Choose your ESP

Your EFI System Partition (ESP) is the disk volume where you will install OpenCore.
In Terminal, enter the following command:
diskutil list
Look for a volume of type EFI and choose one. Note its identifier. It will be something like diskAs1.

Look at the names and sizes of the volumes to properly identify the disk where your ESP is located, because the identifier you just noted can change from one boot to the next.

A typical choice for your ESP is the EFI volume of the disk on which you plan to install the latest version of macOS. If your choice corresponds to the current boot disk, make sure that you have another disk with a natively bootable installation of macOS.

Enter the following command, replacing "diskAs1" with the actual identifier of your ESP:

sudo diskutil mount /dev/diskAs1

Your ESP will appear as "EFI" in Finder.

Install the basic components

OpenCore consists of three basic components:

Component ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
OpenCorePkgMain filesDownload OpenCore-0.7.5-RELEASE.zip
OcBinaryDataGraphical user interface filesFollow the link, click the code button, then "download ZIP"
configSample config file for legacy MacsDownload from the bottom of this post

Open OpenCorePkg. In the folder "X64", you'll see a folder "EFI". Copy this folder to your ESP.

It is possible that your ESP already contains a folder "EFI" (Macs use EFI partitions as a staging area for firmware updates). In this case, you can safely delete the existing folder before.

In the folder "EFI" (now on your ESP), you'll see a folder "OC". Copy the file "config.plist" to this folder.

This file is your config, the most important part of your setup.

Open OcBinaryData. Copy the folder "Resources" to the folder "OC", overwriting the existing folder of the same name.
Verify that your ESP contains the following files and folders:

ESP ("EFI" in Finder)
└── EFI
⠀⠀ ⠀├── BOOT
⠀⠀ ⠀⠀ ⠀└── BOOTx64.efi
⠀⠀ ⠀└── OC
⠀⠀⠀⠀ ⠀ ⠀├── ACPI
⠀⠀⠀⠀ ⠀ ⠀├── config.plist
⠀⠀⠀⠀ ⠀ ⠀├── Drivers
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── OpenCanopy.efi
⠀⠀⠀⠀ ⠀ ⠀⠀ ⠀└── OpenRuntime.efi
⠀⠀⠀⠀ ⠀ ⠀├── Kexts
⠀⠀⠀⠀ ⠀ ⠀├── OpenCore.efi
⠀⠀⠀⠀ ⠀ ⠀├── Resources
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── Audio
⠀⠀⠀⠀ ⠀ ⠀⠀ ⠀├── Font (4 files)
⠀⠀⠀⠀ ⠀ ⠀⠀ ⠀├── Image
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀│
⠀ ⠀└── Acidanthera
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀│⠀⠀⠀ ⠀ ⠀└── GoldenGate (22 files)
⠀⠀⠀⠀ ⠀ ⠀⠀ ⠀└── Label (22 files)
⠀⠀⠀⠀ ⠀ ⠀└── Tools


To keep things minimal, the following files and folders can be deleted:
  • all files in the folders "Audio" and "Tools"
  • all files in the folder "Drivers", except for the files "OpenCanopy.efi" and "OpenRuntime.efi"
  • all folders in the folder "Acidanthera", except for the folder "GoldenGate"
First boot

If your Mac has native boot-screen support

Reboot and hold Option to enter Startup Manager.
Use the arrow keys to select "EFI Boot", then holding Control, press Enter.

OpenCore will start and is selected for booting automatically.

If your Mac has a standard graphics card

Reboot and hold Command-R to enter Recovery. You can also use the following command:

sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery

Be patient. Without boot screen support, it may take a while before something appears on your screen.

In Terminal (Menu bar > Utilities > Terminal), enter the following command:

diskutil list

Look for your ESP, noting its identifier. It will be something like diskAs1.

Enter the following command, replacing "diskAs1" with the actual identifier of your ESP:

diskutil mount /dev/diskAs1

Enter the following command:

bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/BOOT/BOOTx64.efi

Reboot.

OpenCore will start and is selected for booting automatically.

Confirm your installation

Your Mac should now be booted into macOS through OpenCore.

In the Terminal app, enter the following command:
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version

You should see the current version of OpenCore.

Mount your ESP

In Terminal, enter the following command:
diskutil list
Look for your ESP, noting its identifier. It will be something like diskAs1.

Enter the following command, replacing "diskAs1" with the actual identifier of your ESP:

sudo diskutil mount /dev/diskAs1

Your ESP will appear as "EFI" in Finder.

Open a copy of your config in your home folder

Copy your config to your home folder (the folder named with your user name in macOS).
Using TextEdit, open the copy of your config in your home folder.

Overview of basic settings

The sample config is optimized for minimality, offering a baseline for any Mac. Most options are disabled or set to the OpenCore failsafe values. There are only a few carefully chosen exceptions, which are described below.

Setting ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Value ⠀ ⠀
Explanation ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
DisableLinkeditJettisontrueRequired for the Lilu kernel extension in Big Sur and later
ProtectSecureBoottrueProtect against BootROM damage from UEFI Windows
SetApfsTrimTimeout9999999Use Mac value (9.999999 seconds)
PickerAttributes16Allow pointer control in boot menu
PickerModeExternalUse graphical user interface for boot menu
PickerVariantDefaultUse modern black-and-white theme
PollAppleHotKeystrueAllow Mac startup key combinations
ShowPickertrueShow the boot menu automatically at startup
Timeout10Automatically boot the default selection after 10 seconds
AllowSetDefaulttrueAllow using Control-Enter to set the default selection in boot menu
BlacklistAppleUpdatetruePrevent unwanted firmware updates
VaultOptionalNo integrity checking of OpenCore
SecureBootModelDisabledDisable Startup Security (for compatibility with macOS versions earlier than Big Sur )
TimerResolution100000Use Mac value (10 milliseconds)
DirectGopRenderingtrueUse special video renderer (for maximum compatibility with graphics cards)
ProvideConsoleGoptrueEnable preboot video output
AppleBootPolicytrueWorkaround to start Recovery in macOS versions earlier than Big Sur
AppleUserInterfaceThemetrueAllow modern black-and-white theme
RequestBootVarRoutingtrueAllow boot management for seamless OS installations and updates

You may want to make a few changes. Here are a few possibilities that are compatible with this guide:

Setting ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Value ⠀ ⠀
Explanation ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
ThirdPartyDrivestrue1 is recommended to enable trim on standard SSD drives
HideAuxiliarytrueHide recovery mode (press Space to reveal at the boot menu)
LauncherOptionFullFull is recommended to ensure boot persistence of OpenCore
DirectGopRenderingfalsefalse is recommended as long as the boot menu still appears
PickerAttributes80Enable pointer control and hide shutdown and restart buttons
ShowPickerfalseHide the boot menu (show by holding Escape at startup)
Timeout0Disable timeout when boot menu is shown
ExposeSensitiveData0Minimize traces of OpenCore
SecureBootModelDefaultEnable Medium Startup Security (Big Sur and later)
WriteFlashtruetrue is only recommended if your firmware chip is healthy (need to check?)
AppleBootPolicyfalseThe native protocol works fine in Big Sur and later

Making changes to these settings is easy. For example, here's how to set LauncherOption to Full:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>Misc</Key>
<dict>

<key>Boot</Key>
<dict>

<key>LauncherOption</key>

<string>Disabled</string>
<key>Misc</Key>
<dict>

<key>Boot</Key>
<dict>

<key>LauncherOption</key>

<string>Full</string>

With LauncherOption set to Full, OpenCore is guaranteed to boot on the next boot after booting once. This is especially useful if your ESP is on the disk with the top boot priority after an NVRAM reset.

As another example, here's how to set DirectGopRendering to false:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>UEFI</Key>
<dict>

<key>Output</Key>
<dict>

<key>DirectGopRendering</key>

<true/>
<key>UEFI</Key>
<dict>

<key>Output</Key>
<dict>

<key>DirectGopRendering</key>

<false/>
DirectGopRendering (which is needed for the Radeon VII and some versions of the 5700 XT but not for the RX 580) can cause undesirable effects (such as slow animations) and therefore should be set to false if not needed.

You can always revisit these settings to make more changes later.

Verify your config

Save your changes.
In Terminal, enter the following command:

plutil -convert xml1 config.plist && plutil config.plist

This command will take care of fixing the formatting of your config (so don't worry about the indentation). You should see "config.plist: OK". If not, recheck your edits. Once the check passes, you can proceed to load your config.

Load your config

Copy your config from your home folder back to your ESP as indicated below:

ESP
└── EFI
⠀⠀ ⠀├── BOOT
⠀⠀ ⠀└── OC
⠀⠀⠀⠀ ⠀ ⠀├── ACPI
⠀⠀⠀⠀ ⠀ ⠀├── config.plist
⠀⠀⠀⠀ ⠀ ⠀├── Drivers
⠀⠀⠀⠀ ⠀ ⠀├── Kexts
⠀⠀⠀⠀ ⠀ ⠀├── OpenCore.efi
⠀⠀⠀⠀ ⠀ ⠀├── Resources
⠀⠀⠀⠀ ⠀ ⠀└── Tools


Reboot.

Complete your setup

This part of the guide describes changes that you can make to your basic setup to obtain a more complete and functional setup.

General procedure

Changes to your setup should generally be preceded by the following steps:
  • Mount your ESP
  • Open a copy of your config in your home folder
Changes to your setup should generally be followed by the following steps:
  • Verify your config (especially if the changes to your config are complex)
  • Load your config
See Basic setup.

Tip: You can make several changes to your setup at once, but if the changes to your config are complex, it's best to verify your config after each change to better identify errors.

User-interface scaling

If your Mac is connected to a HiDPI display

Enable pixel doubling for the boot menu:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>NVRAM</key>
<dict>
<key>Add</key>
<dict>

</dict>
<key>Delete</key>






<key>NVRAM</key>
<dict>
<key>Add</key>
<dict>

<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>

<dict>
<key>UIScale</key>
<data>
Ag==
</data>
</dict>
</dict>

<key>Delete</key>

SurPlus

For macOS 11.3 and later, you'll need SurPlus:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>Kernel</key>
<dict>

<key>Patch</key>

<array/>
<key>Quirks</key>








































































<key>Kernel</key>
<dict>

<key>Patch</key>

<array>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>Base</key>
<string>_early_random</string>
<key>Comment</key>
<string>SurPlus (1)</string>
<key>Count</key>
<integer>1</integer>
<key>Enabled</key>
<true/>
<key>Find</key>
<data>
AHQjSIs=
</data>
<key>Identifier</key>
<string>kernel</string>
<key>Limit</key>
<integer>800</integer>
<key>Mask</key>
<data>
</data>
<key>MaxKernel</key>
<string>21.2.0</string>
<key>MinKernel</key>
<string>20.4.0</string>
<key>Replace</key>
<data>
AOsjSIs=
</data>
<key>ReplaceMask</key>
<data>
</data>
<key>Skip</key>
<integer>0</integer>
</dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>Base</key>
<string>_register_and_init_prng</string>
<key>Comment</key>
<string>SurPlus (2)</string>
<key>Count</key>
<integer>1</integer>
<key>Enabled</key>
<true/>
<key>Find</key>
<data>
ukgBAAAx9g==
</data>
<key>Identifier</key>
<string>kernel</string>
<key>Limit</key>
<integer>256</integer>
<key>Mask</key>
<data>
</data>
<key>MaxKernel</key>
<string>21.2.0</string>
<key>MinKernel</key>
<string>20.4.0</string>
<key>Replace</key>
<data>
ukgBAADrBQ==
</data>
<key>ReplaceMask</key>
<data>
</data>
<key>Skip</key>
<integer>0</integer>
</dict>
</array>

<key>Quirks</key>

Firmware features

For a better experience when installing and updating Monterey, you'll need to update the firmware features:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>PlatformInfo</key>
<dict>

<key>PlatformNVRAM</key>
<dict>

<key>FirmwareFeatures</key>

<data>
</data>

<key>FirmwareFeaturesMask</key>
<data>
</data>


<dict/>

<key>UpdateNVRAM</key>
<false/>

<key>PlatformInfo</key>
<dict>

<key>PlatformNVRAM</key>
<dict>

<key>FirmwareFeatures</key>

<data>
A1QMwAgAAAA=
</data>

<key>FirmwareFeaturesMask</key>
<data>
P/8f/wgAAAA=
</data>


<dict/>

<key>UpdateNVRAM</key>
<true/>

macOS Features

To enable hardware acceleration and Night Shift, you'll need three extra components:

Component ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
LiluPatcherDownload the latest RELEASE version
WhateverGreenLilu plugin for GPU patchesDownload the latest RELEASE version
NightShiftEnablerLilu plugin for Night ShiftDownload the latest RELEASE version

Note that some displays are incompatible with Night Shift.

Copy the files "Lilu.kext", "WhateverGreen.kext", and "NightShiftEnabler.kext" to your ESP as indicated below:

ESP
└── EFI
⠀⠀ ⠀├── BOOT
⠀⠀ ⠀└── OC
⠀⠀⠀⠀ ⠀ ⠀├── ACPI
⠀⠀⠀⠀ ⠀ ⠀├── config.plist
⠀⠀⠀⠀ ⠀ ⠀├── Drivers
⠀⠀⠀⠀ ⠀ ⠀├── Kexts
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── Lilu.kext
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── WhateverGreen.kext
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀└── NightShiftEnabler.kext
⠀⠀⠀⠀ ⠀ ⠀├── OpenCore.efi
⠀⠀⠀⠀ ⠀ ⠀├── Resources
⠀⠀⠀⠀ ⠀ ⠀└── Tools

Enable the kexts:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>Kernel</key>
<dict>
<key>Add</key>

<array/>
<key>Block</key>






















































<key>Kernel</key>
<dict>
<key>Add</key>

<array>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>BundlePath</key>
<string>Lilu.kext</string>
<key>Comment</key>
<string>Patcher</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string>Contents/MacOS/Lilu</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>BundlePath</key>
<string>WhateverGreen.kext</string>
<key>Comment</key>
<string>Lilu plugin for GPU patches</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string>Contents/MacOS/WhateverGreen</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>BundlePath</key>
<string>NightShiftEnabler.kext</string>
<key>Comment</key>
<string>Lilu plugin for Night Shift</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string>Contents/MacOS/NightShiftEnabler</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
</array>

<key>Block</key>

To further configure WhateverGreen for hardware acceleration, you'll need a special utility:

Utility ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
gfxutilFor getting device pathsDownload the latest RELEASE version

Copy the executable "gfxutil" to your home folder.
In Terminal, enter the following command:

xattr -c gfxutil

Get the path of your graphics card by entering the following command:

./gfxutil -f display | sed 's|.*= ||'

If your graphics card is in slot 1, the path should be PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0).

Add the device properties, replacing "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)" with the actual path:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>DeviceProperties</key>
<dict>
<key>Add</key>

<dict/>
<key>Delete</key>







<key>DeviceProperties</key>
<dict>
<key>Add</key>

<dict>
<key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>rebuild-device-tree</key>
<integer>0</integer>
<key>unfairgva</key>
<integer>1</integer>
</dict>
</dict>

<key>Delete</key>

You might want to hang on to gfxutil because it will be used in a later step; afterwards, you can delete it.

Hybridization

Hybridization consists of modifying only the board ID of your Mac. This minor change is sufficient for installing macOS and (as of Big Sur) for performing over-the-air (OTA) updates. With the help of WhateverGreen, it also enables hardware acceleration. Moreover, it keeps your Mac properly identified in Apple Services.

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>PlatformInfo</key>
<dict>

<key>SMBIOS</key>
<dict>

<key>BoardProduct</key>

<string></string>

<dict/>

<key>UpdateSMBIOS</key>
<false/>
<key>PlatformInfo</key>
<dict>

<key>SMBIOS</key>
<dict>

<key>BoardProduct</key>

<string>Mac-27AD2F918AE68F61</string>

<dict/>

<key>UpdateSMBIOS</key>
<true/>

If your Mac has two processors

Because of the changed board ID, you'll need an extra component:

Component ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
AppleMCEReporterDisablerDual-processor workaroundDownload the compressed file from the linked post

Copy the file "AppleMCEReporterDisabler.kext" to your ESP as indicated below:

ESP
└── EFI
⠀⠀ ⠀├── BOOT
⠀⠀ ⠀└── OC
⠀⠀⠀⠀ ⠀ ⠀├── ACPI
⠀⠀⠀⠀ ⠀ ⠀├── config.plist
⠀⠀⠀⠀ ⠀ ⠀├── Drivers
⠀⠀⠀⠀ ⠀ ⠀├── Kexts
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── Lilu.kext
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── WhateverGreen.kext
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── NightShiftEnabler.kext
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀└── AppleMCEReporterDisabler.kext

⠀⠀⠀⠀ ⠀ ⠀├── OpenCore.efi
⠀⠀⠀⠀ ⠀ ⠀├── Resources
⠀⠀⠀⠀ ⠀ ⠀└── Tools

Enable the kext:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>Kernel</key>
<dict>
<key>Add</key>
<array>

</array>
<key>Block</key>

















<key>Kernel</key>
<dict>
<key>Add</key>
<array>

<dict>
<key>Arch</key>
<string>x86_64</string>
<key>BundlePath</key>
<string>AppleMCEReporterDisabler.kext</string>
<key>Comment</key>
<string>dual-processor workaround</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string></string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string>19.0.0</string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
</array>

<key>Block</key>

Internal PCIe drives

On the MacPro5,1, macOS sees PCIe drives as external, but it's possible to make them internal. You'll need gfxutil (if you don't already have it from a previous step):

Utility ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
gfxutilFor getting device pathsDownload the latest RELEASE version

Copy the executable "gfxutil" to your home folder.
In Terminal, enter the following command:

xattr -c gfxutil

Get the paths of your drives by entering the following command:

./gfxutil -f $(system_profiler SPPCIDataType | grep -B 2 'AHCI Controller\|NVM Express Controller' | grep pci | sed 's|:||' | uniq) | sed 's|.*= ||'

Each path should be something like PciRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0).

Add the built-in property for each of your drives. Make sure to use the actual paths.

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>

</dict>
<key>Delete</key>






<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>

<key>PciRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>built-in</key>
<data>
AA==
</data>
</dict>
</dict>

<key>Delete</key>

Repeat the seven lines preceding the last </dict> for each of the paths you noted above. Make sure to use the actual paths.

VMM flag

Adding the CPUID VMM flag can help enable installations and OTA updates of macOS. In fact, it is required for installing and updating Catalina. However, because the flag impacts performance and disables power management, it is important to only enable the flag when installing and updating.

Disabled ⠀⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀⠀
Enabled ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀⠀
<key>Kernel</key>
<dict>

<key>Emulate</key>
<dict>
<key>Cpuid1Data</key>

<data>
</data>

<key>Cpuid1Mask</key>
<data>
</data>

<key>Kernel</key>
<dict>

<key>Emulate</key>
<dict>
<key>Cpuid1Data</key>

<data>
AAAAAAAAAAAAAACAAAAAAA==
</data>

<key>Cpuid1Mask</key>
<data>
AAAAAAAAAAAAAACAAAAAAA==
</data>

Clean NVRAM

If you are using OpenCore to boot only Catalina and later, then you can clean up the NVRAM:

Delete ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>NVRAM</key>
<dict>
<key>Add</key>
<dict>

<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<dict>
<key>boot-args</key>
<string>-no_compat_check</string>
</dict>

</dict>
<key>Delete</key>
<dict>

<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<array>
<string>boot-args</string>
</array>

</dict>

At this point, it is possible that you are using OpenCore to boot only Mojave or earlier. In this case, do not delete these lines.

Maintenance

This part of the guide describes standard maintenance procedures.

Updating OpenCore

Currently, a new version of OpenCore is released on the first Monday of every month at around 7:00 a.m. PST (8:00 a.m. PDT).

With the help of the updated sample config at the bottom of this post and the notes below, make any necessary changes to your setup.

0.7.4 to 0.7.5

Add ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>Booter</key>
<dict>

<key>Quirks</key>
<dict>

<key>ResizeAppleGpuBars</key>
<integer>-1</integer>
<key>UEFI</key>
<dict>

<key>Quirks</key>
<dict>

<key>ResizeGpuBars</key>
<integer>-1</integer>

Updated components ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
OpenCorePkg
Lilu
WhateverGreen
NightShiftEnabler

Install the components, as described in Basic setup and Complete your setup (and the Appendix if applicable), overwriting the existing files of the same name.

Validating your config

You'll need a special utility from the main OpenCore files:

Component ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
OpenCorePkgValidation utilityDownload the latest RELEASE version

Open OpenCorePkg. In the folder "Utilities", you'll see a folder "ocvalidate", in which you'll see an executable "ocvalidate". Copy this executable to your home folder.

In Terminal, enter the following command:

xattr -c ocvalidate

With your config in your home folder, validate your config by entering the following command:

./ocvalidate config.plist

The utility will tell you if your config has been properly updated for the latest version of OpenCore.

Creating a rescue CD

An OpenCore rescue CD makes it possible to boot through OpenCore by holding C at startup.

Create a new folder "OC-CD" in your home folder.
Copy your EFI folder from your ESP to the folder "OC-CD":

OC-CD
└── EFI
⠀⠀ ⠀├── BOOT
⠀⠀ ⠀└── OC


You will need to modify your config in this new instance of OpenCore.

Important: Do not try editing your config directly in the new instance of OpenCore. Instead, copy your config out to your home folder as usual, make the change, then copy your config back to the new instance of OpenCore.

Set LauncherOption to Disabled and RequestBootVarRouting to false (for native blessability).

Once the change is made and your modified config is back in place, you can proceed to create the CD.

In Terminal, enter the following command:

hdiutil create -size 200MiB -srcfolder OC-CD -format UDTO -fs FAT32 OC-CD.iso

Insert a blank CD or DVD and enter the following command:

hdiutil burn OC-CD.iso.cdr

To reuse a rewritable disk, use the following command instead:

hdiutil burn -erase OC-CD.iso.cdr

Wait for the task to complete. You will see "Burn completed successfully". You can now go back to your home folder and delete the folder "OC-CD" and the iso file. These files are no longer needed.

Important: Because the rescue CD is configured with native blessability it should not be used for installing or updating operating systems.

Disabling OpenCore

If you've prepared a rescue CD

Reboot and hold C to boot from the rescue CD.
Use the OpenCore boot menu to select a natively bootable installation of macOS, then holding Control, press Enter. Alternatively, boot into macOS and select a natively bootable installation of macOS in System Preferences > Startup Disk and choose Restart.

The natively bootable installation of macOS will start without OpenCore and is selected for booting automatically.

If your Mac has native boot-screen support

Reboot and hold Option to enter the Startup Manager.
Use Startup Manager to select a natively bootable installation of macOS, then holding Control, press Enter.

The natively bootable installation of macOS will start without OpenCore and is selected for booting automatically.

The long way

Set RequestBootVarRouting to false.
Reboot.
Set RequestBootVarRouting back to true, but don't reboot just yet.
Select a natively bootable installation of macOS in System Preferences > Startup Disk and choose Restart.

The natively bootable installation of macOS will start without OpenCore and is selected for booting automatically.

Re-enabling OpenCore after disabling it

If you've prepared a rescue CD

Reboot and hold C to boot from the rescue CD.
Use the OpenCore boot menu to select "EFI", then holding Control, press Enter.

The screen will black out briefly. On the next boot, OpenCore will start and is selected for booting automatically.

You may see two EFI entries. Selecting either should be fine. If you have more than two EFI entries, then you may need to experiment.

Otherwise

Repeat the first boot procedure. See Basic setup.

macOS

This part of the guide provides information regarding installing and updating the latest version of macOS with your OpenCore setup.

The latest version

If you've followed this guide, then your OpenCore setup allows you to easily install and update Monterey. You can do a clean install on an APFS volume or do an OTA update.

Recommended update options:

Either clean install with full installer in Mojave and later or OTA update in Big Sur and later
  • SecureBootModel is set to Disabled
  • VMM flag is enabled
Either clean install with full installer in Big Sur and later or OTA update in Big Sur and later
  • SecureBootModel is set to Default
  • Hybridization is used
  • Firmware features are updated
See Basic setup and Complete your setup.

During the update, your Mac may restart a few times. During these restarts, the default selection on the OpenCore boot menu should be "macOS Installer".

Full installer

To download a full installer of macOS, you can use the excellent installinstallmacos script, which assembles all the necessary files directly from Apple.

In Terminal, enter the following command:

curl -O -L https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py && sudo python installinstallmacos.py

A script "installinstallmacos.py" and a folder "contents" will appear in your home folder. You can delete them once you have the installer.

Choose the latest version of macOS.

A sparse disk image will be created in your home folder, and this image contains the installer.

Appendix: Windows

This part of the guide provides step-by-step instructions for installing Windows 10 or 11 on your Mac.

Prepare a USB installer

Format a USB flash drive with at least 8 GB of space as ExFAT with the MBR partition scheme. This volume will be referred to as "USB".

You'll need the installer image:

Component ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Windows 10 or 11Installer image file (ISO)Follow the link, select the edition, then download

Double click the image file. The volume will be referred to here as "CCCOMA_X64".
In Terminal, enter the following command, replacing "USB" and "CCCOMA_X64" with the actual volume names:

rsync -r /Volumes/CCCOMA_X64/ /Volumes/USB

Important: Don't forget the "/" after "CCCOMA_X64".

Let the task complete.

Format your Windows disk

Format a disk with at least 32 GB of space as ExFAT with the GUID partition scheme. This volume will be referred to as "Disk C".

Install the ExFat driver

You'll need to add a component to your setup:

Component ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Description ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
What to do ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
OcBinaryDataExFAT driverFollow the link, click the code button, then "download ZIP"

Open OcBinaryData. In the folder "Drivers", you'll see a file "ExFatDxeLegacy.efi". Copy this file to your ESP as indicated below:

ESP
└── EFI
⠀⠀ ⠀├── BOOT
⠀⠀ ⠀└── OC
⠀⠀⠀⠀ ⠀ ⠀├── ACPI
⠀⠀⠀⠀ ⠀ ⠀├── config.plist
⠀⠀⠀⠀ ⠀ ⠀├── Drivers
⠀⠀⠀⠀ ⠀ ⠀│⠀ ⠀├── OpenCanopy.efi
⠀⠀⠀⠀ ⠀ ⠀⠀ ⠀├── OpenRuntime.efi
⠀⠀⠀⠀ ⠀ ⠀⠀ ⠀└── ExFatDxeLegacy.efi
⠀⠀⠀⠀ ⠀ ⠀├── Kexts
⠀⠀⠀⠀ ⠀ ⠀├── OpenCore.efi
⠀⠀⠀⠀ ⠀ ⠀├── Resources
⠀⠀⠀⠀ ⠀ ⠀└── Tools


Enable the driver:

Find ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
Replace ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀
<key>UEFI</key>
<dict>
<key>Drivers</key>
<array>

</array>
<key>Input</key>









<key>UEFI</key>
<dict>
<key>Drivers</key>
<array>

<dict>
<key>Arguments</key>
<string></string>
<key>Comment</key>
<string></string>
<key>Enabled</key>
<true/>
<key>Path</key>
<string>ExFatDxeLegacy.efi</string>
</dict>
</array>

<key>Input</key>

Boot the installer

Before proceeding, make sure that
  • ProtectSecureBoot is set to true
  • The VMM flag is disabled
See Basic setup and Complete your setup.

Reboot with the USB installer inserted, and select "Windows" from the OpenCore boot menu.
When the Windows Setup window appears, press Shift-F10 to open Command Prompt.

Identify your disks

In Command Prompt, enter the following command:

diskpart

At the DISKPART prompt, enter the following command
list volume

Look for Disk C and your USB flash drive. You should see something like

Volume 1 ⠀ ⠀ C ⠀ ⠀ Disk C ⠀ ⠀ exFAT
Volume 2 ⠀ ⠀ D ⠀ ⠀ USB ⠀ ⠀ ⠀ exFAT


Note the actual volume numbers and letters.

Reformat your Windows disk

Still at the DISKPART prompt, enter the following command, replacing "Volume 1" by the actual volume number of Disk C:

select volume 1

If you are absolutely sure of the volume number, proceed by entering the following command:

format quick fs=ntfs label=Windows

Wait for the task to complete.

Enter the following command:

exit

Proceed with the installation

In Command Prompt, enter the following command, replacing "D" by the actual volume letter of the USB drive:

D:

Now enter the following commands:

ren efi efi.bak

cd sources

dism /get-wiminfo /wimfile:install.wim

Identify the index of the desired Windows version. You should see something like

Index : 1
Name : Windows 11 Home


Enter the following command, replacing "1" by the actual index of the Windows version and "C" by the actual letter of Disk C:

dism /apply-image /imagefile:install.wim /index:1 /applydir:C:\ /compact /EA

Wait for the task to complete.

Enter the following command, replacing "C" by the actual letter of Disk C and "D" by the actual letter of the USB drive:

bcdboot C:\Windows /s D: /f uefi

Wait for the task to complete.

Finally, enter the following command:

exit

Close the Windows Setup window by clicking the x and reboot into macOS.

Prepare your Windows EFI

In Terminal, enter the following command:

diskutil list

Look for the EFI Partition of Disk C, noting its identifier. It will be something like diskCs1.
Enter the following command, replacing "diskCs1" by the actual identifier:

sudo diskutil mount /dev/diskCs1

The volume should appear as "EFI" in Finder. This is your Windows EFI.

In your Windows EFI, create a folder "EFI".

On the USB drive, in the folder "EFI", you will find a folder "Microsoft". Copy this folder to the folder you just created:

Windows EFI
└── EFI
⠀⠀ ⠀└── Microsoft


On your USB flash drive, delete the folder "EFI" and rename "efi.bak" to "efi".
Eject the drive.

Finish the installation

Reboot and use the OpenCore boot menu to select "Windows".

The configuration process will begin and eventually your Mac will restart.

Follow the guided steps to complete the installation.
 

Attachments

  • config.zip
    3 KB · Views: 294
Last edited:

Syncretic

Contributor
Apr 22, 2019
264
1,079
Before I venture down this path, does your OpenCore setup enable boot screens on your "non-bootscreen graphics card"? I'm currently using rEFInd to achieve that, but I'm interested in OpenCore if it can provide the same functionality.
 

cdf

macrumors 68000
Original poster
Jul 27, 2012
1,652
1,636
Before I venture down this path, does your OpenCore setup enable boot screens on your "non-bootscreen graphics card"? I'm currently using rEFInd to achieve that, but I'm interested in OpenCore if it can provide the same functionality.

For a 3,1, I would say that the chances are good. OpenCore provides GOP support. However, you will have to edit the configuration file appropriately.
 
  • Like
Reactions: shadow_999

w1z

macrumors 6502a
Aug 20, 2013
651
455
I can also confirm that OpenCore is working beautifully with Catalina installed on a dedicated NVMe drive, Mojave installed on a shared NVMe drive and with Windows 10 installed in EFI mode on the same shared drive as Mojave.

I did not need to have Mojave installed on a SATA drive.

Now to save those of you wanting to try OpenCore while using Windows 10 in EFI mode from going bananas, the trick to getting Windows EFI to play nicely with OpenCore's Bootx64.efi in /Volumes/EFI/EFI/Boot was to relocate the shared NVMe drive (which has Mojave / Windows 10 installed on it) from slot 3 to slot 2 on the 7101A thus placing it before the dedicated Catalina drive. Reason being, Apple's boot efi is scanning drives backwards / in reverse order with the 7101A ie. NVMe Slots 4 3 2 1 instead of 1 2 3 4 (not sure if this is the case too with other PCIe cards) so now Catalina shows up first in the boot screen.

Also, if you have enabled Apple's full mitigation for disabling hyper-threading, you will need to edit the config.plist file and append cwae=2 to the boot-args string:

Code:
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <dict>
                <key>boot-args</key>
                <string>-no_compat_check cwae=2</string>
            </dict>

I'm loving this! Thanks for sharing @cdf as well as a massive thank you to the developers of OpenCore.

2019-10-28_00-42-34.png
 
Last edited:

h9826790

macrumors P6
Apr 3, 2014
15,392
7,667
Hong Kong
—- Warning!!! This config may brick your Mac. Do NOT use it unless you know what you are doing. —-

As a record. The following setting to simulate iMac Pro will cause black screen. [Update: fixed by using agdpmod=pikera]

Code:
    <key>PlatformInfo</key>
    <dict>
        <key>Automatic</key>
        <true/>
        <key>Generic</key>
        <dict>
        <key>MLB</key>
        <string>C02706700J9JG36JA</string>
        <key>ROM</key>
        <data>ESIzAAAA</data>
        <key>SpoofVendor</key>
        <true/>
        <key>SystemProductName</key>
        <string>iMacPro1,1</string>
        <key>SystemSerialNumber</key>
        <string>C02T75Y5HX87</string>
        <key>SystemUUID</key>
        <string>EF81678C-50D7-4A13-9D1A-B423E7F7BE5B</string>
        </dict>
        <key>UpdateDataHub</key>
        <true/>
        <key>UpdateNVRAM</key>
        <true/>
        <key>UpdateSMBIOS</key>
        <true/>
        <key>UpdateSMBIOSMode</key>
        <string>Create</string>
    </dict>


Basically, UpdateSMBIOS = true will cause black screen.

I haven't have time to insert a Mac EFI UGA GPU or Remote Desktop to check what's happening yet. However, I highly suspect that the cMP actually booted to desktop with the above settings, because the Eject key works, Caps Lock key works, and Command + Control + power button also work.

If the cMP was jammed at loading screen, eject key shouldn't work.

And AFAIK, Command + Control + Power button only react properly inside macOS.

So, very high chance the cMP actually booted to desktop. However, using the iMac Pro SMBIOS cause the GPU fail to display properly.

Anyway, one more good news. PCIe info won't be mess up like using Clover. It's a good start.
 
Last edited:

cdf

macrumors 68000
Original poster
Jul 27, 2012
1,652
1,636
Basically, UpdateSMBIOS = true will cause black screen.
Perhaps you could try with UpdateDataHub and UpdateNVRAM set to false. I have been successful with just UpdateSMBIOS set to true with a few model identifiers. I haven't tried iMacPro1,1, though.

I haven't have time to insert a Mac EFI UGA GPU or Remote Desktop to check what's happening yet.
Another option is setting the debug properties for creating a log file.
 

h9826790

macrumors P6
Apr 3, 2014
15,392
7,667
Hong Kong
My setting in post #7 is correct indeed. But it seems after applying the iMac Pro SMBIOS, only the 1st display port on my Radeon VII can display, the other ports are disabled. My cable was connected to the 3rd port, that's why I only got black screen.

Anyway, now I can see the screen, and my cMP ident itself as iMac Pro, and provide Catalina upgrade natively.

Screenshot 2019-10-28 at 8.35.11 AM.png
 

h9826790

macrumors P6
Apr 3, 2014
15,392
7,667
Hong Kong
Almost all sensor disappear after applying iMac Pro SMBIOS. But the 2 fans are controllable via iStat. I can spin them up manually.
Screenshot 2019-10-28 at 9.03.47 AM.png
 
  • Like
Reactions: octoviaa

Ludacrisvp

macrumors 6502a
May 14, 2008
776
350
My setting in post #7 is correct indeed. But it seems after applying the iMac Pro SMBIOS, only the 1st display port on my Radeon VII can display, the other ports are disabled. My cable was connected to the 3rd port, that's why I only got black screen.

Anyway, now I can see the screen, and my cMP ident itself as iMac Pro, and provide Catalina upgrade natively.

View attachment 872912
Now the slightly offtopic question... did this allow you to enable HEVC encode / decode in Catalina (and Mojave hevc encode)?
 

w1z

macrumors 6502a
Aug 20, 2013
651
455
My setting in post #7 is correct indeed. But it seems after applying the iMac Pro SMBIOS, only the 1st display port on my Radeon VII can display, the other ports are disabled. My cable was connected to the 3rd port, that's why I only got black screen.

Anyway, now I can see the screen, and my cMP ident itself as iMac Pro, and provide Catalina upgrade natively.

View attachment 872912
I wonder if the model identifier MacPro7,1 would provide functioning sensors, ports and hevc.
 

startergo

macrumors 68040
Sep 20, 2018
3,636
1,650
The fan control is an essential part of the SMC. If we cannot make them work automatically OC is not safe on the cMP. This is the main reason I did not try unraid server.
 

CMMChris

macrumors 6502a
Oct 28, 2019
597
486
@h9826790 Whatevergreen and agdpmod=pikera (boot arg) should fix your black screen issue and enable all outputs of your graphics card. Alternatively you could also remove the iMacPro1,1 Board ID from the info.plist of AppleGraphicsDevicePolicy.

Regarding the HEVC issues you guys report on the real Mac Pros, try to do an ACPI rename of your GPU from whatever it is called by Apple to GFX0. If this is the root of the problem it should enable HEVC acceleration. On a Hackintosh GFX0 is mandatory for this.
 
Last edited:

cdf

macrumors 68000
Original poster
Jul 27, 2012
1,652
1,636
The fan control is an essential part of the SMC. If we cannot make them work automatically OC is not safe on the cMP. This is the main reason I did not try unraid server.

Fan control appears to function fine for my setup. The sensor issue seems to come from spoofing the iMac Pro.
 

cdf

macrumors 68000
Original poster
Jul 27, 2012
1,652
1,636
FaceTime and iMessage seem to work when using OC. However, I've been very careful not to play around with platform information when logged in to these services.
 
  • Like
Reactions: octoviaa

h9826790

macrumors P6
Apr 3, 2014
15,392
7,667
Hong Kong
@h9826790 Whatevergreen and agdpmod=pikera (boot arg) should fix your black screen issue and enable all outputs of your graphics card. Alternatively you could also remove the iMacPro1,1 Board ID from the info.plist of AppleGraphicsDevicePolicy.

Regarding the HEVC issues you guys report on the real Mac Pros, try to do an ACPI rename of your GPU from whatever it is called by Apple to GFX0. If this is the root of the problem it should enable HEVC acceleration. On a Hackintosh GFX0 is mandatory for this.

Thanks for pointing me into the right direction. I will study the OpenCore manual and try to config it accordingly.

Hopefully I can fix the following things

1) HEVC hardware encode (both in Mojave and Catalina), if possible, I want to make it available for a 5,1 ident cMP (may be the ACPI rename trick also work for 5,1 ident). This approach may able to avoid unnecessary SMC issue (if I ident the cMP as iMac Pro or 7,1, most sensors disappear).

Apparently, the Radeon VII isn't ident at GFX0 at this moment.
Screenshot 2019-10-29 at 2.16.40 PM.png


2) In the case of iMac Pro or 7,1 ident, fix the SMC. In my own experience so far. Using iMac Pro SMBIOS makes Handoff etc more reliable. Without 7,1 ident, when I login multiple profiles with multiple Apple ID on my cMP. Handoff often become unstable. But with 7,1 ident, it seems no matter how many profiles I logged in, Handoff still works. But the downside is, all sensors disappear.
Screenshot 2019-10-29 at 6.00.49 AM.png


I've already try few different VirtualSMC setup, but doesn't change anything yet.

Let's see if I can achieve anything in the next few days.
 
  • Like
Reactions: kitcostantino

CMMChris

macrumors 6502a
Oct 28, 2019
597
486
Your screenshot doesn't show what the ACPI device is called. You just see the bridges there. Please expand the "IOReg Name" column.
 

gigignopechegno

macrumors newbie
May 11, 2016
11
10
Your screenshot doesn't show what the ACPI device is called. You just see the bridges there. Please expand the "IOReg Name" column.

thanks,
i have this in my Macpro 5.1 whit Radeon vII ... is not GFX..
 

Attachments

  • Screenshot 2019-10-29 at 09.38.41.png
    Screenshot 2019-10-29 at 09.38.41.png
    346 KB · Views: 1,436

CMMChris

macrumors 6502a
Oct 28, 2019
597
486
Then rename PXS1 to GFX0 and HEVC should start working. It's insane Apple don't take the Mac Pros into account when matching HEVC acceleration to GFX0....
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.