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.
Status
Not open for further replies.

trifero

macrumors 68030
May 21, 2009
2,958
2,801
So technically, either directions are far from pointing at a reliable solution. I think is time for me to just sell my Mac Pro. I'm afraid that with every "next" upgrade, I will experience the same failures others do. When this occurs, I will install Catalina and sell it.
I don´t have Big Sur installed in my suppoorted mac. I hate it. Catalina is great for me.
 
  • Like
Reactions: JeDiGM

Syncretic

macrumors 6502
Apr 22, 2019
311
1,533
I may have found something interesting. I really didn't expect this particular item to be "it", but so far, it's given me a 100% success rate regardless of the hardware configuration (disks/USB/etc.). I won't even consider calling it a solution until a lot of other people have tried it out, so please - give it a shot and let me know if it did anything for you.

In the OC config.plist, in the <Kernel> <Patch> section, add this to the array:
Code:
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>Base</key>
                <string></string>
                <key>Comment</key>
                <string>Patch gNVRAMSystemList (21may21)</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                cHJldmVudC1yZXN0b3Jlcw==
                </data>
                <key>Identifier</key>
                <string>kernel</string>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>MaxKernel</key>
                <string>20.4.9</string>
                <key>MinKernel</key>
                <string>20.0.0</string>
                <key>Replace</key>
                <data>
                b3NlbnZpcm9ubWVudAAAAA==
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
            </dict>
This has only been tested on Big Sur 11.3. If you have a beta of 11.4/11.5, you'll probably need to change MaxKernel to allow the patch to apply to your kernel. This patch should be harmless, and effectively invisible, on any version of MacOS; however, I make no guarantees if you try applying it to anything other than Big Sur 11.3.

(By way of quick explanation: gNVRAMSystemList is a whitelist of NVRAM variables that was introduced in Big Sur as part of Apple's ongoing code cleanup efforts. It initially contained a long list of variables that date back to the Jurassic era. Between 11.2 and 11.3, they removed most of the entries from that list - all of the ancient variables that are no longer used and needn't be bothered with. However, they also removed one that's still current - "osenvironment". On most systems, that variable probably doesn't exist; however, its absence from the whitelist changes the startup timing. As I said above, I didn't (and still kinda don't) expect this to be the solution, but it does appear to at least be a factor. So, what does this patch do? In the remaining whitelist, there's a variable called "prevent-restores" that appears to be ignored by the code and is left in place for some internal reason that shouldn't affect end-users. This patch replaces "prevent-restores" with "osenvironment" in the whitelist, so that the startup timing moves in the direction of what it was in 11.2. All the patch does is change some text, no code is altered.)

Once again - I'm not yet suggesting this is the answer to our problems, but on my system, it works far better than it has a right to, so please try it and give me some feedback here.

NOTE: I'm not sure why, but OC was finicky about the format of this patch. If all of the elements between (and including) <dict> and </dict> weren't tabbed (i.e. no spaces to the left of each element, only tabs), it failed to apply the patch. This failure appears in the first blob of text that appears after selecting BS 11.3 (assuming you have verbose/debug boot-args enabled); you'll see a line containing OC: Prelinked patcher result: and (Patch gNVRAMSystemList (21may21)) - Not Found. If you see that, the patch didn't take, and you'll need to examine your config.plist to see what's what.

Good luck, and please post any results (good, bad, or ugly) in this thread!
 

Syncretic

macrumors 6502
Apr 22, 2019
311
1,533
Excuse my question did you mean
<key>Kernel</key>
<dict>
<key>Add</key>
You may or may not already have a <Patch> section; I guess I should have been clearer.

The (non-inclusive) hierarchy should look like this:
Code:
<dict>
    <key>Kernel</key>
    <dict>
        <key>Patch</key>
        <array>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>Base</key>
                <string></string>
                <key>Comment</key>
                <string>Patch gNVRAMSystemList (21may21)</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                cHJldmVudC1yZXN0b3Jlcw==
                </data>
                <key>Identifier</key>
                <string>kernel</string>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>MaxKernel</key>
                <string>20.4.9</string>
                <key>MinKernel</key>
                <string>20.0.0</string>
                <key>Replace</key>
                <data>
                b3NlbnZpcm9ubWVudAAAAA==
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
            </dict>
        </array>
    </dict>
</dict>
(Obviously, you'll have other entries mixed in there as well.)
 
  • Like
Reactions: andrewkhoo

tsialex

Contributor
Jun 13, 2016
13,455
13,601
I have dual CPUs with no boot issues. I'm interested if anyone matching my procs and ram size on a 2010 Mac with MX25L3205D SPI has boot issues.
SPI flash memory model has nothing to do with anything except when programming to it via flashrom/ROMTool*. It's less consequential then the model of RAM chip of the DIMMs installed on your Mac.

*The way Apple designed/wired the SPI circuit makes the exact model inconsequential when programming to it in a MacPro4,1/MacPro5,1 backplane, different from some MacBooks that you have to know the exact model when using flashrom/ROMTool or risk bricking because of extremely tight timings used on the circuit.
 
Last edited:
  • Like
Reactions: andrewkhoo

eVasilis

macrumors 6502
Jan 13, 2010
425
182
I do not have a patch section at all so could I include it like this:

XML:
<key>Kernel</key>
    <dict>
        <key>patch</key>
        <array>
<dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>Base</key>
                <string></string>
                <key>Comment</key>
                <string>Patch gNVRAMSystemList (21may21)</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                cHJldmVudC1yZXN0b3Jlcw==
                </data>
                <key>Identifier</key>
                <string>kernel</string>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>MaxKernel</key>
                <string>20.4.9</string>
                <key>MinKernel</key>
                <string>20.0.0</string>
                <key>Replace</key>
                <data>
                b3NlbnZpcm9ubWVudAAAAA==
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
            </dict>
        </array>
<key>Add</key>
        <array>
            <dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>Lilu.kext</string>
                <key>Comment</key>
                <string>Patch engine</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>
        </array>
 
Last edited:

Syncretic

macrumors 6502
Apr 22, 2019
311
1,533
So could I add a the <patch> section before
<dict>
<key>Add</key> insert a whole new <patch> one? Something like this:
I don't know if the order is significant (it probably is - maybe someone with more OpenCore expertise can chime in), but your syntax looks correct to me. In my config.plist, the Kernel section contains the following sub-sections, in this order:
Code:
Add
Block
Emulate
Force
Patch
Quirks
Scheme
(Your mileage may vary ;-)

EDIT: tagging @eVasilis, since the quote didn't work properly.
 
  • Like
Reactions: HuRR

eVasilis

macrumors 6502
Jan 13, 2010
425
182
Or

XML:
<key>Kernel</key>
    <dict>
        <key>Add</key>
        <array>
<dict>
<key>Arch</key>
                <string>x86_64</string>
                <key>Base</key>
                <string></string>
                <key>Comment</key>
                <string>Patch gNVRAMSystemList (21may21)</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                cHJldmVudC1yZXN0b3Jlcw==
                </data>
                <key>Identifier</key>
                <string>kernel</string>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>MaxKernel</key>
                <string>20.4.9</string>
                <key>MinKernel</key>
                <string>20.0.0</string>
                <key>Replace</key>
                <data>
                b3NlbnZpcm9ubWVudAAAAA==
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
            </dict>
<dict>
                <key>Arch</key>
                <string>x86_64</string>
                <key>BundlePath</key>
                <string>Lilu.kext</string>
                <key>Comment</key>
                <string>Patch engine</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>
        </array>
 

eVasilis

macrumors 6502
Jan 13, 2010
425
182
I don't know if the order is significant (it probably is - maybe someone with more OpenCore expertise can chime in), but your syntax looks correct to me. In my config.plist, the Kernel section contains the following sub-sections, in this order:
Code:
Add
Block
Emulate
Force
Patch
Quirks
Scheme
(Your mileage may vary ;-)

EDIT: tagging @eVasilis, since the quote didn't work properly.
I'll give this a try. if you know could I make the mods and then install 11.3?
 

Syncretic

macrumors 6502
Apr 22, 2019
311
1,533
I'll give this a try. if you know could I make the mods and then install 11.3?
I have been testing this on an existing 11.3 installation; I have not even looked at the installation process. I don't know if this patch will help, hurt, or have no effect on the installation process. I'm hoping that some folks with (semi-)working 11.3+ installations can give it a try to see if it's worth digging deeper, or if it's just a mirage that happens to work really well on my system (which would be an interesting data point in itself).
 
  • Like
Reactions: HuRR and w1z

cdf

macrumors 68020
Jul 27, 2012
2,256
2,583
@Syncretic: Booting from a macOS 11.3 installer. The patch appears to be applied successfully:

Code:
74:291 00:098 OCAK: Read kernel version 20.4.0 (200400)
74:444 00:153 OCAK: 64-bit Patch gNVRAMSystemList (21may21) replace count - 1
74:529 00:085 OC: Kernel patcher result 0 for kernel (Patch gNVRAMSystemList (21may21)) - Success

Unfortunately, the hanging persists... I'll have to try on an actual installation next.
 

TECK

macrumors 65816
Nov 18, 2011
1,129
478
SPI flash memory model has nothing to do with anything except when programming to it via flashrom/ROMTool*.
I was simply posting the spec to see if anyone else have the same hardware I do. Honestly I’m disappointed I have to part away with my Mac Pro. I would’ve loved to keep it for a while. I’ll see how things unfold but so far it does not looks promising and is time for me to move to Mx Macs. I have a feeling we will see a trend similar to iPhones, with the new Mx Macs. The processor evolves so fast that ever year we will see the Mac improving significantly. People will sell their old Macs to get the next year model, like iPhones.
 

eVasilis

macrumors 6502
Jan 13, 2010
425
182
People will sell their old Macs to get the next year model, like iPhones.
That could be the case provided people have the money to spare every year but I can only see hobbyists or casual users doing that. When it comes to those using their computers for work, being "forced" to upgrade every year is a hassle.
 
  • Like
Reactions: Dewdman42 and paalb

eVasilis

macrumors 6502
Jan 13, 2010
425
182
Whenever you modify the config.plist, run this command in terminal (from /Volumes/EFI/EFI/OC/config.plist) to restructure and test syntax:

Code:
plutil -convert xml1 config.plist && plutil config.plist
Thanks JohnD, I always do! I am now in the process of updating from sys prefs > software update. The preparing Big sur part takes forever! Keeping fingers and toes crossed (I am not the only one that can cross his toes, am I?)
 
  • Like
Reactions: David403

JeDiGM

macrumors regular
Oct 20, 2018
120
23
The sleep issue is definitely network service related but unfortunately I need those services enabled. I had a workaround on Catalina but unfortunately that no longer works on Big Sur... With this problem looking like it won't be solved anytime soon maybe it's time to go back to Catalina for now
Have you tried switching the ethernet cable to the other port? Sounds silly but that has worked in the passed for some.
 

eVasilis

macrumors 6502
Jan 13, 2010
425
182
Ok, updating from software update hang too many times. Trying a clean install

Edit: No matter what I do, installation hangs and force rebooting does not help.
 
Last edited:

Syncretic

macrumors 6502
Apr 22, 2019
311
1,533
I finally got my setup to fail. The inside four SATA bays have 2x SSDs and 2x spinners; the ODD bays are both SSDs. USB2 has an Apple keyboard and a trackball hooked to the built-in keyboard hub, and a 32GB flash drive. The Sonnet Allegro has a 3-port USB3 hub attached, with 16/64/128GB flash drives in the ports. The second Allegro port has a USB3/SATA3 adapter and another SSD. Counting the NVMe drive in slot 3, that's a total of 12 drives, mixed SATA/USB/NVMe.

This suggests to me that we're on the right track here. Based solely on my system, it appears that (1) the "race condition" premise is very much intact, and (2) by undoing (or mitigating) some of the startup changes Apple introduced with 11.3, I've skewed the odds of the race toward success rather than failure. Clearly, this isn't "the" solution, but I suspect that if we can identify a few more items to tweak, we should be able to boot 11.3 reliably.

(I do note (with disappointment) that @cdf reports the patch being ineffective on his system; I'm very interested to hear what others experience. Hopefully we can learn something about which systems respond well to this patch and which ones don't. Every data point helps.)
 

JohnD

macrumors regular
Jun 2, 2005
150
97
Los Angeles, California
I may have found something interesting.
I started with Martin's default 0.6.9 config, and added the patch. So far, doesn't seem to have any effect on my system either. I'll run some more tests though, and edit this post should there be any difference.

1621637847751.png


EDIT: I'm getting about a 50% success/fail rate, which seems to be no effect from before this patch. SATA SSD on PCIe card, 11.3.1 w/FileVault, OC + Mojave on SSD in drive bay 1.

EDIT2: It seems to be halting at the ethernet port initialization every time - not a random point as it was before.
 
Last edited:

startergo

macrumors 603
Sep 20, 2018
5,022
2,283
@Syncretic: Booting from a macOS 11.3 installer. The patch appears to be applied successfully:

Code:
74:291 00:098 OCAK: Read kernel version 20.4.0 (200400)
74:444 00:153 OCAK: 64-bit Patch gNVRAMSystemList (21may21) replace count - 1
74:529 00:085 OC: Kernel patcher result 0 for kernel (Patch gNVRAMSystemList (21may21)) - Success

Unfortunately, the hanging persists... I'll have to try on an actual installation next.
your patcher result is 0 mine is 6:
Code:
28:505 00:086 OCAK: 64-bit Patch gNVRAMSystemList (21may21) replace count - 1
28:521 00:015 OC: Kernel patcher result 6 for kernel (Patch gNVRAMSystemList (21may21)) - Success

Edit: Unfortunately I still have panics. 1 out of 2,3 reboots is successful.
 
Last edited:
  • Like
Reactions: JohnD

VitaminK

macrumors member
Original poster
Dec 28, 2019
56
26
if anyone has trouble applying patches with Xcode or a text editor, then use "OpenCore Auxiliary Tools OpenCore Configurator OCAT" kinda recommend by Acidanthera

 

Dayo

macrumors 68020
Dec 21, 2018
2,257
1,279
I may have found something interesting.
Would it be better to patch in the variable as an addition instead of a replacement of another?
Bearing in mind that prevent-restores is flagged as being kept because of "problem 70476321"?
Seems "problem 70476321", whatever that is, is presumably as yet unresolved.
 
Status
Not open for further replies.
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.