Hello,
I have noticed several problems when using coreboot native graphics ("high resolution" linear framebuffer) with a resolution of 1024x768, on SeaBIOS + SeaVGABIOS:
- Boot menus (GRUB, Syslinux) look at a resolution of 640x480. - I get a warning in Debian "graphical" installer "Undefined video mode number: 314", asking me to select a mode, if I select a resolution of 1024x768 it boots fine, if I don't, after 30 seconds, it crashes. - When I use iPXE with SeaBIOS I can't get video on "text based installers" (which use ncurses, for example Debian text based installers).
However:
- In iPXE I get video on other "graphical" installers (e.g. Debian graphical installer). - I have noticed that in "video mode" it is able to change resolution to show a bootsplash (mode 0x144 on vgasrc/svgamodes.c) and then goes back to 640x480 on "text console". - In iPXE the text display resolution is 1024x7480, however the menus are 640x480.
I don't know if its implementation is incomplete, or because of technical reasons SeaVGABIOS is unable to behave correctly without a proprietary VGA BIOS.
I think a first step might be to be able to force a minimum resolution in text and video modes.
So, my first question is: what is needed to force SeaBIOS/SeaVGABIOS to display a resolution of 1024x768 instead of 640x480 when in "text mode" and "video mode"?
And my second question is whether with some work the coreboot native graphics implementation could behave as good as (or close to) a proprietary VGA BIOS.
Best regards,
Felix
On Wed, Jun 29, 2022 at 02:50:10AM -0400, Felix Freeman via SeaBIOS wrote:
Hello,
I have noticed several problems when using coreboot native graphics ("high resolution" linear framebuffer) with a resolution of 1024x768, on SeaBIOS + SeaVGABIOS:
- Boot menus (GRUB, Syslinux) look at a resolution of 640x480.
- I get a warning in Debian "graphical" installer "Undefined video mode number: 314", asking me to select a mode, if I select a resolution of 1024x768 it boots fine, if I don't, after 30 seconds, it crashes.
- When I use iPXE with SeaBIOS I can't get video on "text based installers" (which use ncurses, for example Debian text based installers).
I don't know if its implementation is incomplete, or because of technical reasons SeaVGABIOS is unable to behave correctly without a proprietary VGA BIOS.
I think a first step might be to be able to force a minimum resolution in text and video modes.
So, my first question is: what is needed to force SeaBIOS/SeaVGABIOS to display a resolution of 1024x768 instead of 640x480 when in "text mode" and "video mode"?
Sure, it's possible to filter the list of modes, but that doesn't guarantee the software using the vgabios behaves accordingly ...
debian complaining about 314 missing is such a case. IIRC that is a 15 or 16 bpp mode which is simply not supported in case coreboot native graphics run with 32 bpp. Seems the debian installer expects that mode being supported and can't deal with the case that it isn't.
And my second question is whether with some work the coreboot native graphics implementation could behave as good as (or close to) a proprietary VGA BIOS.
Nope. The linear framebuffer has a fixed resolution and depth. That implies some compatibility constrains which can hardly be avoided.
Also note that text mode emulation on the framebuffer only works for vgabios calls, linux vgacon (which talks directly to the hardware) is not supported.
take care, Gerd
On Thu Jun 30, 2022 at 7:29 AM -04, Gerd Hoffmann wrote:
So, my first question is: what is needed to force SeaBIOS/SeaVGABIOS to display a resolution of 1024x768 instead of 640x480 when in "text mode" and "video mode"?
Sure, it's possible to filter the list of modes, but that doesn't guarantee the software using the vgabios behaves accordingly ...
Could you give some pointers on how to do that? Is there a hard-coded selector for the default 640x480 mode? or you mean that I should simply delete the modes I don't want to use?
Felix.
On Thu, Jun 30, 2022 at 12:46:39PM -0400, Felix Freeman via SeaBIOS wrote:
On Thu Jun 30, 2022 at 7:29 AM -04, Gerd Hoffmann wrote:
So, my first question is: what is needed to force SeaBIOS/SeaVGABIOS to display a resolution of 1024x768 instead of 640x480 when in "text mode" and "video mode"?
Sure, it's possible to filter the list of modes, but that doesn't guarantee the software using the vgabios behaves accordingly ...
Could you give some pointers on how to do that? Is there a hard-coded selector for the default 640x480 mode?
Probably it's hardcoded somewhere (not seabios) with the expectation that it is a safe fallback and works on all devices.
or you mean that I should simply delete the modes I don't want to use?
Simply deleting should be easiest for creating a test build to see whenever it has the desired effect or not.
take care, Gerd