Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
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.

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
Some clarification on the Windows EFI booting. BOOTX64.efi in the EFI folder of the Windows installation is the same as
bootmgfw.efi in \EFI\Microsoft\Boot\. So when you find your complete path (the easiest way to find the path is to boot Windows through the debug OC version) set it up in Entries :
1586040778135.png


Afterwards you can rename your original BOOTX64.efi to BOOTX64.efi.bak or replace it with the OC version if you want to boot from that EFI folder OC. Regardless, now you are safe, because even without OC your system will not boot inadvertently to Windows creating certificates in the NVRAM. It will boot to Windows only through OC, because you replaced the location of the BCD bootloader. Maybe you should only pay attention after Windows upgrade that there is no new BOOTX64.efi created by Windows in the EFI folder nor it replaced the OC BOOTX64.efi file if you have placed it there before for booting.
 
Last edited:

jameslmoser

macrumors 6502a
Sep 18, 2011
697
672
Las Vegas, NV
Some clarification on the Windows EFI booting. BOOTX64.efi in the EFI folder of the Windows installation is the same as
bootmgfw.efi in \EFI\Microsoft\Boot\. So when you find your complete path (the easiest way to find the path is to boot Windows through the debug OC version) set it up in Entries :
View attachment 903668

Afterwards you can rename your original BOOTX64.efi to BOOTX64.efi.bak or replace it with the OC version if you want to boot from that EFI folder OC. Regardless, now you are safe, because even without OC your system will not boot inadvertently to Windows creating certificates in the NVRAM. It will boot to Windows only through OC, because you replaced the location of the BCD bootloader. Maybe you should only pay attention after Windows upgrade that there is no new BOOTX64.efi created by Windows in the EFI folder nor it replaced the OC BOOTX64.efi file if you have placed it there before for booting.

Can you either point to more information on this, or explain it a little more?
 

heero503

macrumors member
Nov 12, 2014
75
18
Hong Kong
It seem my open core is stable, only LG display sometime will switch to 2560 x1080 HiDPI 30Hz. I need to switch the DP version in monitor to make it back to 2560x1080 HIDPI 60Hz.

Next step is install windows 10:
I have using REL-057-2020-04-04 OC now.
I would like to install windows in Bay 3 SSD. Formated in GUID NTFS by disk utility.

I have read the thread but I am not clear:
is it just I insert a windows installation boot USB and boot from OC?
Install windows in internal bay 3 with above partition setting?
anything more I need to do? I read OC should protect the EFI will not be crash if install windows.
Anything more I need to concern?

Thanks!
 

Attachments

  • Screenshot 2020-04-05 at 9.19.22 AM.png
    Screenshot 2020-04-05 at 9.19.22 AM.png
    1.1 MB · Views: 168

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
Can you either point to more information on this, or explain it a little more?
Enabling UEFI native boot
To be bootable in UEFI native mode, your OS installation medium must obviously actually comply with all this stuff we’ve just described: it’s got to have a GPT partition table, and an EFI system partition with a bootloader in the correct ‘fallback’ path – \EFI\BOOT\BOOTx64.EFI (or the other names for the other platforms)

Windows Boot Manager Settings for UEFI
Windows Boot Manager ({bootmgr}) manages the boot process. UEFI-based systems contain a firmware boot manager, Bootmgfw.efi, that loads an EFI application that is based on variables that are stored in NVRAM.

The BCD settings for the device and path elements in Windows Boot Manager indicate the firmware boot manager. The template that is named BCD-template for Windows includes the following settings for Windows Boot Manager.
Code:
## Windows Boot Manager

identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
 

jameslmoser

macrumors 6502a
Sep 18, 2011
697
672
Las Vegas, NV



Code:
## Windows Boot Manager

identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager

This is all stuff I already understand... I guess what I was asking is what you were doing in regards to OpenCore to override this... what exactly is going on with those config entries.
 

205Maxi

macrumors regular
Nov 3, 2019
175
53
Quick question here, how do I set nvram boot-args="mbasd=1" in the config.plist when I am getting
nvram: Error setting variable - 'boot-args': (iokit/common) general error Thank you.
 

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
I guess what I was asking is what you were doing in regards to OpenCore to override this
When you boot your EFI Windows in a debug OC version with logging enabled, when you open the log file you will see something like this:
Code:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x5,0x0,0x0)/HD(1,GPT,B82686F6-7D44-4CEA-8700-41CF2AEC45E7,0x28,0x64000)/\EFI\Boot\bootx64.efi
in the OC picker it will appear as WINDOWS same as in the regular Apple bootpicker. Apple will boot any external/internal drive which has a valid bootloader in \EFI\Boot\bootx64.efi.
If you modify this entry like this:
Code:
<key>Entries</key>
        <array>
            <dict>
                <key>Arguments</key>
                <string></string>
                <key>Auxiliary</key>
                <false/>
                <key>Comment</key>
                <string>Not signed for security reasons</string>
                <key>Enabled</key>
                <true/>
                <key>Name</key>
                <string>WIN10</string>
                <key>Path</key>
                <string>PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x5,0x0,0x0)/HD(1,GPT,B82686F6-7D44-4CEA-8700-41CF2AEC45E7,0x28,0x64000)/\EFI\Microsoft\Boot\bootmgfw.efi</string>
            </dict>
        </array>
OC boot picker will show another entry called WIN10 as defined in key Name for the same drive.
If you rename \EFI\Boot\bootx64.efi to \EFI\Boot\bootx64.efi.bak
The WINDOWS boot entry will disappear from OC bootpicker as well as from the normal Apple bootpicker (if you have a card which can show you the Apple bootpicker). cMP firmware is looking only for this entry\EFI\Boot\bootx64.efi and if it can't find it, it will never boot from that partition.
If you rebuild the bootloader through recovery, chances are that the file will be recreated. Same might happen during Windows upgrade. At this moment this is still a speculation, because I did not test rebuild/upgrade yet.
 
Last edited:

jameslmoser

macrumors 6502a
Sep 18, 2011
697
672
Las Vegas, NV
When you boot your EFI Windows in a debug OC version with logging enabled, when you open the log file you will see something like this:
Code:
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x5,0x0,0x0)/HD(1,GPT,B82686F6-7D44-4CEA-8700-41CF2AEC45E7,0x28,0x64000)/\EFI\Boot\bootx64.efi
in the OC picker it will appear as WINDOWS same as in the regular Apple bootpicker. Apple will boot any external/internal drive which has a valid bootloader in \EFI\Boot\bootx64.efi.
If you modify this entry like this:
Code:
<key>Entries</key>
        <array>
            <dict>
                <key>Arguments</key>
                <string></string>
                <key>Auxiliary</key>
                <false/>
                <key>Comment</key>
                <string>Not signed for security reasons</string>
                <key>Enabled</key>
                <true/>
                <key>Name</key>
                <string>WIN10</string>
                <key>Path</key>
                <string>PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x5,0x0,0x0)/HD(1,GPT,B82686F6-7D44-4CEA-8700-41CF2AEC45E7,0x28,0x64000)/\EFI\Microsoft\Boot\bootmgfw.efi</string>
            </dict>
        </array>
OC boot picker will show another entry called WIN10 as defined in key Name for the same drive.
If you rename \EFI\Boot\bootx64.efi to \EFI\Boot\bootx64.efi.bak
The WINDOWS boot entry will disappear from OC bootpicker as well as from the normal Apple bootpicker (if you have a card which can show you the Apple bootpicker). cMP firmware is looking only for this entry\EFI\Boot\bootx64.efi and if it can't find it, it will never boot from that partition.
If you rebuild the bootloader through recovery, chances are that the file will be recreated. Same might happen during Windows upgrade. At this moment this is still a speculation, because I did not test rebuild/upgrade yet.

I think I understand now. So in your config snapshot above, that is actually two different windows installations?
 

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
I think I understand now. So in your config snapshot above, that is actually two different windows installations?
In the screenshot yes. 2 different partitions with 2 different Windows drives. One is on SATA 3 alongside Mojave and the other - on its own NVME drive.
 

DigitaLife

macrumors regular
Jan 24, 2019
170
13
Italy
OpenCore on Legacy Apple Hardware

This guide explains how to use the excellent OpenCore (OC) bootloader on a Mac Pro 5,1 (with upgraded Westmere Xeons and Boot ROM version 144.0.0.0.0) to install, run, and update macOS Catalina, resulting in a clean, unpatched operating system no different than what you would find on a supported Mac.

The main advantage of using OC vs other tools on a Mac Pro 5,1 is that it makes Software Update work.

Another advantage is boot screen.

In a historic development, OC developer @vit9696 has brought basic boot-picker support to the Mac Pro 5,1 with standard UEFI GOP graphics cards (special thanks to @startergo for the relentless testing)! You can read about it here.

Guide

This guide provides a simplified hands-on approach to installing and configuring OC.

1. Setup

Disk A. Newly APFS-formatted drive (GUID scheme)

This is where OC and a clean install of Catalina will go.

Disk B. macOS Mojave

Installation and configuration will be done from here. (To ensure a bootable fallback after an NVRAM reset, it is recommended that Disk B be a SATA disk in Bay 1 and that it always be present alongside Disk A.)

2. Materials

A. The application "Install macOS Catalina" (the full installer)

B. OpenCore

See the releases page of the project site. Download OpenCore-0.5.6-RELEASE.zip. The uncompressed folder will be referred to here as "OpenCore."

C. Basic configuration file

Provided in this post. Download config.zip. The uncompressed file is "config.plist".

The configuration described in this guide should be perfectly safe. However, because OC is a very powerful tool, it is important that you fully understand all configuration options before deviating from the guide. You are encouraged to take a look at the very comprehensive manual available in the OpenCore folder.

Because OC is in active development, the configuration file for the current version (0.5.6) will likely be incompatible with future (or past) versions.

3. Installing OC

a) Mount the EFI partition of Disk A: To find the identifier of the partition, enter the following in terminal:
Code:
diskutil list

The identifier will be something like "disk0s1;" the next step will assume that this is the case.
Code:
sudo diskutil mount /dev/disk0s1

You may need to authorize this. The partition should mount as /Volumes/EFI and appear as "EFI" in Finder.

b) Copy the OpenCore/EFI folder to the EFI partition. The resulting folder, /Volumes/EFI/EFI, should contain the folders OC and BOOT.

c) Copy config.plist to /Volumes/EFI/EFI/OC.

4. Configuration

The file config.plist can be edited with any plist editor and even with TextEdit; the following steps will assume TextEdit.

a) Open config.plist with TextEdit.

b) Enable the VMM flag: Find the Cpuid1Mask entry, and carefully change AAAAAAAAAAAAAAAAAAAAAA== to AAAAAAAAAAAAAACAAAAAAA==. The value should now be the same as for Cpuid1Data.

Remark: VMM flag spoofing is only possible with Westmere Xeons. Nehalem and older Xeons don't have the hardware requirements to support Apple Hypervisor and can't enable VMM flag spoofing.

c) If your display is HiDPI (retina), find UIScale and change AQ== to Ag==.

d) Close the file. It should be saved automatically (select OK if informed about there being no permanent version storage).

5. Booting

a) Reboot into recovery mode by entering
Code:
sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery

You may need to authorize this. Be patient. Mac Pro boot times can be long, especially when booting into recovery mode.

b) Carry out step 3a (sudo is not needed in recovery).

c) Set the partition for booting:
Code:
bless --mount /Volumes/EFI --setBoot

If the above fails, try:
Code:
bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/BOOT/BOOTx64.efi --verbose

d) Shut down the Mac and do an SMC reset (unplug the power cord, wait 15 seconds, plug the power cord back in, wait 5 seconds, and then press the power button).

Remark: Being installed on Disk A, OC can have trouble seeing Disk B. Doing an SMC reset helps ensure that Disk B is seen when OC starts.

e) Power up the machine. If you see the simple boot picker, let it timeout to the default selection. OC should boot Disk B (currently the only macOS system).

Be patient. Mac Pro boot times can be long. If it seems that the machine is not booting up. Hold the power button to shut down the machine. Do an NVRAM reset on the next power up (immediately press and hold Option, Command, P, and R, and release after 20 seconds or after you hear the second startup chime). The Mac should boot without OC. Recheck all the steps above.

f) Booted into the system on Disk B, verify that it is indeed OC that has booted the system by entering this in terminal:
Code:
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version

You should see REL-056-2020-03-02.

You can also verify that the VMM flag is present by entering
Code:
sysctl machdep.cpu.features

You should see VMM in the list of features.

Congratulations for making it this far! The hard part is done.

6. Installing Catalina

a) Booted into the system on Disk B, run Install macOS Catalina. Install to Disk A.

The machine will reboot. If you see the simple boot picker, let it timeout to the default selection. Eventually you should see the installation progress bar.

b) Complete the installation.

From now on, OC should boot Catalina on Disk A by default. You can also select the desired system from the boot picker. Moreover, OC will respect the selection in Startup Disk.

7. Updates

Software Update should just work when the VMM flag is set.

8. A More Native System

Because the VMM flag causes a performance loss (about 5%) and disables power management, it is a good idea to only enable the flag when installing or checking for updates. To disable the flag, reverse step 4b and reboot.

9. Uninstalling OC

a) Carry out step 3a.

b) Delete the /Volumes/EFI/EFI folder.

c) Reboot and do an NVRAM reset. Mojave should start.

Acknowledgements

A big thank you to the talented developers of OpenCore for making all of this possible.

Today I tried to follow the guide perfectly to be able to install Catalina on my Mac Pro 5.1 with OpenCore but unfortunately I stopped at step 5 because typing the first "Code" the Terminal replies with these messages:
- No mount point for / Volumes / EFI
- Can't determine mount point of 'Volume / EFI'
- Could not statfs () / Volumes / EFI
- Could not determine filesystem of / Volumes / EFI
Then I tried with the second "Code" but also here the Terminal replied as follows:
- EFI found at IODeviceTree / EFI
- Can't determine mount point of 'Volume / EFI'
- No Bootx creation requested
- Could not statfs () / Volumes / EFI
- Could not determine filesystem of / Volumes / EFI

Please can someone help me?
Thanks a lot in advance!
 

heero503

macrumors member
Nov 12, 2014
75
18
Hong Kong
It seem my open core is stable, only LG display sometime will switch to 2560 x1080 HiDPI 30Hz. I need to switch the DP version in monitor to make it back to 2560x1080 HIDPI 60Hz.

Next step is install windows 10:
I have using REL-057-2020-04-04 OC now.
I would like to install windows in Bay 3 SSD. Formated in GUID NTFS by disk utility.

I have read the thread but I am not clear:
is it just I insert a windows installation boot USB and boot from OC?
Install windows in internal bay 3 with above partition setting?
anything more I need to do? I read OC should protect the EFI will not be crash if install windows.
Anything more I need to concern?

Thanks!
I would like to ask if there is any guide is clear for OC to install windows? Thanks!
 

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
I would like to ask if there is any guide is clear for OC to install windows? Thanks!
 
  • Like
Reactions: zoltm and heero503

h9826790

macrumors P6
Apr 3, 2014
16,656
8,587
Hong Kong
Quick question here, how do I set nvram boot-args="mbasd=1" in the config.plist when I am getting
nvram: Error setting variable - 'boot-args': (iokit/common) general error Thank you.
For OpenCore, do that in the config.plist NVRAM section. should looks something like this (depends on what you need)
Code:
<key>NVRAM</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
            <dict>
                <key>UIScale</key>
                <data>AQ==</data>
            </dict>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <dict>
                <key>boot-args</key>
                <string>agdpmod=pikera shikigva=80 mbasd=1 -wegtree -no_compat_check no32exec=0</string>
            </dict>
        </dict>
        <key>Block</key>
        <dict>
            <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
            <array>
                <string>UIScale</string>
            </array>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <array>
                <string>boot-args</string>
            </array>
        </dict>
        <key>LegacyEnable</key>
        <false/>
        <key>LegacySchema</key>
        <dict/>
    </dict>
All you need is just put mbasd=1 in the boot-args section, and block the original boot-args in the Block section.

But I attached the whole NVRAM section for your reference.
 
  • Like
  • Love
Reactions: zoltm and 205Maxi

tsialex

Contributor
Jun 13, 2016
13,455
13,601
Open Core version 0.5.7 was just released:

Repository: acidanthera/OpenCorePkg · Tag: 0.5.7 · Commit: 80a82ed · Released by: vandroiy2013
v0.5.7
  • Added TimeMachine detection to picker
  • Added early preview version of OpenCanopy
  • Fixed FS discovery on NVMe with legacy drivers
  • Added DirectGopCacheMode option for FB cache policy
  • Added KeyFiltering option to workaround buggy KB drivers
  • Added tool and custom entry separation in audio assistant
  • Added OpenControl tool to configure full NVRAM access from Shell
  • Added boot.efi debug protocol support for 10.15.4+
  • Added boot.efi performance logging for 10.15.4+
  • Added ProtectUefiServices quirk to fix DevirtualiseMmio on Z390
  • Replaced BOOTCAMP Windows with Windows to match the original
  • Added bundled OpenShell originally available as OpenCoreShell
  • Rework readlabel utility into disklabel with encoding support
  • Renamed FwRuntimeServices driver to OpenRuntime
  • Renamed AppleUsbKbDxe driver to OpenUsbKbDxe
  • Update builtin firmware
  • Fixed PowerTimeoutKernelPanic on 10.15.4
  • Fixed 4K section alignment in OpenRuntime to fix Linux booting on SKL
  • Introduced SyncRuntimePermissions to fix multiple memory permission flaws
  • Introduced RebuildAppleMemoryMap to fix macOS booting on Dell 5490
  • Removed ShrinkMemoryMap in favour of more advanced RebuildAppleMemoryMap
  • Marked EnableWriteUnprotector as deprecated on modern systems
  • Introduced ProtectMemoryRegions to fix memory region handling
  • Removed ProtectCsmRegion in favour of ProtectMemoryRegions
  • Renamed PickerAttributes to ConsoleAttributes
  • Introduced PickerAttributes as a matter of UI configuration

—​
 

DigitaLife

macrumors regular
Jan 24, 2019
170
13
Italy
Make sure not to forget step 5b.
Thank you very much!
In fact, I didn't really understand if I had to do step 5b) or not!
Now I managed to install Catalina without problems, but I have another question to ask you.
When I inserted the new Sata SSD for Catalina I had to remove the Sata SSD with Windows 10.
I tried to remove the Sata SSD with Mojave and replace the one with Windows 10, but there is no way to start Windows 10 (during the Boot it is not really seen by OC even if in the Catalina finder I see the volume BOOTCAMP (Windows) .
Then I tried from the "Startup disk" utility, but also by selecting the Windows BOOTCAMP disk the system restarts again with Catalina!
Can anyone help me understand what I should do?
Should I redo the installation of Windows 10?
Thanks so much in advance for your valuable help!
 

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
Thank you very much!
In fact, I didn't really understand if I had to do step 5b) or not!
Now I managed to install Catalina without problems, but I have another question to ask you.
When I inserted the new Sata SSD for Catalina I had to remove the Sata SSD with Windows 10.
I tried to remove the Sata SSD with Mojave and replace the one with Windows 10, but there is no way to start Windows 10 (during the Boot it is not really seen by OC even if in the Catalina finder I see the volume BOOTCAMP (Windows) .
Then I tried from the "Startup disk" utility, but also by selecting the Windows BOOTCAMP disk the system restarts again with Catalina!
Can anyone help me understand what I should do?
Should I redo the installation of Windows 10?
Thanks so much in advance for your valuable help!
If you have Windows installed in Legacy mode it is unsupported in OC. If you want to convert it follow this guide:
and also:
 

205Maxi

macrumors regular
Nov 3, 2019
175
53
For OpenCore, do that in the config.plist NVRAM section. should looks something like this (depends on what you need)
Code:
<key>NVRAM</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
            <dict>
                <key>UIScale</key>
                <data>AQ==</data>
            </dict>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <dict>
                <key>boot-args</key>
                <string>agdpmod=pikera shikigva=80 mbasd=1 -wegtree -no_compat_check no32exec=0</string>
            </dict>
        </dict>
        <key>Block</key>
        <dict>
            <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
            <array>
                <string>UIScale</string>
            </array>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <array>
                <string>boot-args</string>
            </array>
        </dict>
        <key>LegacyEnable</key>
        <false/>
        <key>LegacySchema</key>
        <dict/>
    </dict>
All you need is just put mbasd=1 in the boot-args section, and block the original boot-args in the Block section.

But I attached the whole NVRAM section for your reference.


Thank you very much,

not sure I understand,

<array>
<string>mbasd=1</string>
</array>
<key>block</key>

like that? not sure it's that
 

DigitaLife

macrumors regular
Jan 24, 2019
170
13
Italy
If you have Windows installed in Legacy mode it is unsupported in OC. If you want to convert it follow this guide:
and also:
Unbelievable! The Mac Rumors community is a paradise ... ask for help and it will get to you immediately! Thank you very much! In the next few days I will try to convert Windows 10 with the suggested application! All the best!
 
  • Like
Reactions: zoltm
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.