I was expecting more interest and participation in finding the real problem, but unfortunately had to dig this myself. Here are some important updates.

I've downloaded the version 2.14-1 from snapshot.debian.org and confirmed that it works fine. Further tests also confirmed my previous suspicion that the problem is not in the efi_uga removal (actually, my system uses GOP, and it works), but nevertheless seems to be associated with the same patch.

Namely in 2.14-3, the command "terminal_output console" brings the system to a state when GRUB thinks that it works in the text mode, but the display is actually not switched to the text mode, so all GRUB output goes nowhere, leaving the screen stuck (in my case, blank because "terminal_output console" was in grub.cfg before any output). Blindly typing "terminal_output gfxterm" makes GRUB usable (supposedly, if necessary video modules were loaded).

So, removing "console" from the GRUB configuration made 2.14-3 usable, although quite poorly, as that MacBook has a high-resolution screen ("Retina"), on which the default GRUB font is very tiny (line height < 2 mm). "videoinfo" shows that only the native resolution is supported, so changing "gfxmode" does not help. The only solution that I've found was to load a larger font (finding a reasonable font file that will work with grub-mkfont was another quest). However, GRUB_FONT in /etc/default/grub is not documented and apparently does not work properly, so I had to edit grub.cfg manually and will need to do so every time...

Interestingly, "efitextmode" still works in 2.14-3, showing available text modes and allows selecting among them. But because their initialization has been removed from grub_prepare_for_text_output(), nothing really works.

I've also tested that "terminal_output console" works in 2.12-9 even on the newest PC (made this year), so my opinion is that the decision to "drop support for ... Console Control" was a mistake. However, if you prefer formalism ("Console Control protocol was an implementation detail of the deprecated Intel EDK") over real-world usability, please then remove it _completely_ and document this breaking change accordingly, because the current behavior is very confusing and frustrating (from the user perspective; and keeps the code in a highly inconsistent state, from the developer side).

Reply via email to