Framebuffer can not be disabled in GRUB/UEFI mode
In our GRUB configuration we have set gfxmode=auto, see: https://github.com/grml/grml-live/blob/1df1f3df3f0ed9c9f8d518a9ef011ccfab634fee/templates/boot/grub/header.cfg#L6
The gfxmode documentation states that a platform-specific default "that should look reasonable" is selected as resolution (via VESA BIOS Extensions (VBE)). For instance, in my QEMU instance a resolution of 1280x800 is selected by the GRUB boot menu.
It seems that once the resolutions has changed the framebuffer can not be disabled with the boot options. Here the following boot options do not seem to work:
- "Disable Framebuffer"
- "Disable Video Kernel Mode Setting"
We should consider dropping them in the GRUB/UEFI boot menu (see below).
Note, that "Disable Framebuffer" (and "Serial Console") in Grub sets set gfxpayload=text. All other options have set gfxpayload=keep, see: %SHORT_NAME%_options.cfg
Quoting the gfxpayload documentation:
If this variable is set, it controls the video mode in which the Linux kernel starts up, replacing the ‘vga=’ boot option (see linux). It may be set to ‘text’ to force the Linux kernel to boot in normal text mode, ‘keep’ to preserve the graphics mode set using ‘gfxmode’, or any of the permitted values for ‘gfxmode’ to set a particular graphics mode (see gfxmode).
This means that set gfxpayload=text should actually work (with "Disable Framebuffer" ), but it does not...
Further:
Depending on your kernel, your distribution, your graphics card, and the phase of the moon, note that using this option may cause GNU/Linux to suffer from various display problems, particularly during the early part of the boot sequence. If you have problems, set this variable to ‘text’ and GRUB will tell Linux to boot in normal text mode.
As far as I can tell, we have no display problems, but we can not change back to text mode.
But again, we have gfxmode set. Maybe we should test without it?
The default is platform-specific. On platforms with a native text mode (such as PC BIOS platforms), the default is ‘text’. Otherwise the default may be ‘auto’ or a specific video mode.
sigh This makes it hard to test. I guess we use GRUB primarily with UEFI platforms. For BIOS platforms we use isolinux/syslinux. This means we just need to answer the question if we want UEFI systems to be able to boot in text mode or alike or drop everything regarding framebuffer / resolution and only keep the auto detection process.