Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

booting without working UGA or GOP causes assertion in OpenCanopy #180

Closed
internetzel opened this issue May 1, 2021 · 13 comments
Closed

Comments

@internetzel
Copy link

internetzel commented May 1, 2021

When booting without any display attached or without a working GOP or UGA driver OpenCore either doesn't boot or it's booting but not every injected kext works as expected.
For the former case here's an OpenCore log file attached, showing the assertion in OpenCanopy causing it to not boot at all: opencore-2021-05-01-075714.txt

OpenCanopy used to be usable blindly in the past, even without working EFI display.

@internetzel internetzel changed the title booting without working UGA or GOP causes assertion in OpenCore booting without working UGA or GOP causes assertion in OpenCanopy May 1, 2021
mhaeuser added a commit to acidanthera/OpenCorePkg that referenced this issue May 1, 2021
@mhaeuser
Copy link

mhaeuser commented May 1, 2021

Please report OC bugs upstream at https://github.com/acidanthera/bugtracker in the future.
Should be fixed at acidanthera/OpenCorePkg@cfa3c74, please confirm.

@vit9696 vit9696 closed this as completed May 1, 2021
@internetzel
Copy link
Author

internetzel commented May 1, 2021

Thanks for your fast reaction.
There's now another assertion failing In OpenCanopy:
opencore-2021-05-01-130358.txt

@internetzel
Copy link
Author

internetzel commented May 1, 2021

Using the release build I can actually boot blindly into Big Sur, leading to acidanthera issue 1623.
But I cannot boot into Mojave.

Having a display attached both systems can be booted without issues.

@vit9696
Copy link

vit9696 commented May 1, 2021

Resolved in master. Will now fallback to builtin UI.

@internetzel
Copy link
Author

internetzel commented May 1, 2021

So far I've tested the release build only and it is indeed working now for booting Mojave, Catalina and Big Sur blindly.
For Mojave and Catalina this fix does also work around acidenthera issue 1623, but not Big Sur.

The boot entry order seems to be different for the builtin UI, so one has to try until finding the right entry.

@mikebeaton
Copy link
Contributor

The boot entry order seems to be different for the builtin UI, so one has to try until finding the right entry.

The available boot entries are calculated before starting whichever picker, and are not intended to be different between pickers.

@internetzel
Copy link
Author

internetzel commented May 2, 2021

The available boot entries are calculated before starting whichever picker, and are not intended to be different between pickers.

The difference with the builtin UI is that I can only use the up and down arrow keys while in OpenCanopy I can use the left and right arrow keys. The entry order is indeed the same.

@vit9696
Copy link

vit9696 commented May 2, 2021

Either way, I assume the issue is resolved. Let's keep it open before @khronokernel integrates the new OpenCore.

Why do not you use GOP or UGA, by the way? It sounds a bit insane.

@internetzel
Copy link
Author

Well, in the 11,x and 12,x iMacs for the upgraded AMD graphics cards we have both GOP and UGA (CoreEG2) VBIOSes.
The GOP based VBIOSes offer boot screen only via i.e. OpenCore which works without problems using the internal screen.
Using the UGA VBIOSes on the other we can have the Apple boot picker, but until now the internal display only works when an external display is connected - would be nice not to be dependent on always having an external display connected.
The obvious solution would be to fix the VBIOS; I started with disassembling and patching it, but it is too easy to break the whole booting process and in that case I have to unscrew the TFT and short two pins on the EEPROM while switching on the machine, so the VBIOS can't be loaded and the machine can boot again.

I think Mac Pros don't always have boot screen with upgraded graphics cards.

@vit9696
Copy link

vit9696 commented May 2, 2021

Is that correct that UGA VBIOSes do not work over internal screen at all? Neither Apple BootPicker, nor OpenCore? What if you run GOPStop tool, will it show anything on the builtin screen (you can keep the external screen connected for convenience reasons)? Please provide the OpenCore DEBUG log when running GopStop and your config.plist.

@internetzel
Copy link
Author

Well, there is no display recognized by the VBIOS at all when no external screen is connected, because the Apple UGA VBIOS has it's own model specific code for detecting whether a display is actually connected at a certain port - and that does virtually never match with how the MXM boards are routed.
We have found those VBIOSes that enable us to use the internal screen when a mini-DP dummy dongle is plugged in. But that on the other hand puts unnecessary load on the video card (memory clock is always at the maximum then).

I'll give GOPStop a try.

@internetzel
Copy link
Author

internetzel commented May 2, 2021

Meanwhile I can confirm that the debug build successfully launches the OS now - at least the OpenCore debug log is similar for both without and with display connected.

While Big Sur does actually boot up blindly that way, Mojave doesn't, although I don't see any panic report from the OS. With a display connected both OSes boot up successfully

@internetzel
Copy link
Author

internetzel commented May 13, 2021

Is that correct that UGA VBIOSes do not work over internal screen at all? Neither Apple BootPicker, nor OpenCore? What if you run GOPStop tool, will it show anything on the builtin screen (you can keep the external screen connected for convenience reasons)? Please provide the OpenCore DEBUG log when running GopStop and your config.plist.

So here the requested log files.
One time with an external display connected and one time without.
As expected by me there's no display detected without an external display connected.
gop-2021-05-13-133548.txt
gop-2021-05-13-134123.txt
opencore-2021-05-13-133451.txt
opencore-2021-05-13-133913.txt
BTW, is there a way to have an entire VBIOS "injected" by OpenCore? That one should preferably only be used by OpenCore while the OS would still only see the one in the VBIOS flash EEPROM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants