Location of FrameBuffer-to-vesa Setting

Just got Haiku up-and-running on bare metal for the first time, but it seems to prefer Framebuffer for my graphics driver. I have a newer Nvidia card, so vesa is more than acceptable, but I’d like to see if I can change the resolution to something more useful than 1280x1020. Where can I change the setting for the system to use vesa rather than framebuffer? Thanks!

If you boot from MBR you will get VESA
If you boot from EFI (UEFI) you will get Framebuffer

You should try to boot with MBR if you can. If it is a new Laptop or Computer you will likely stick to Framebuffer if I am not wrong.

GPT is a preferred drive type on this system. I multi-boot a lot of OS’s, though I want to really dig into Haiku.

Can resolutions be changed under FrameBuffer?

you can only chose the resolutions offered by FrameBuffer in ScreenPreferences.
The developer are working on a solution to make VESA resolutions available with FrameBuffer.
So you have to wait for a solution, sorry.

They are the same driver.

If you boot with efi the system may give you a different resolution that with mbr, but it cant be changed afterwards (not that a GPT table doesnt force efi by itself, you still nedd to use the efi loader properly)

Yeah I’m not sure what this means yet except I’m out of luck for the time being. I’m trying to trick grub into improving my framebuffer but I don’t think I can in efi. You learn something new everyday. I’ll just have to virtualize for a while and leave the bare metal install to rest until I can figure something out. Thanks.

You could try Clover instead of grub. But afair the Haiku detection code is still broken.

Are they? There is no way to do this.

UEFI can setup a mode for you, and if you disable compability mode (CSM) in UEFI you should get the best resolution UEFI can give you. That is all you can get without graphics drivers.

Forgive my curiosity, is using an EFI boot loader implicitly restrictive on if a graphics driver, even vesa, can take over rendering?

The efi way of booting exposes a different interface, the resolution then cannot be changed after booting, it is ideally supposed to be the native resolution. For vesa the redolution depends on what the firmware exposes aswell, so in that regard thise two ways arent that different.

UEFI can only do some basic mode setting at boot, but cannot be used after boot.
VESA functionality depends on the computer firmware, and was mostly functions you could call in real mode (16 bit addressing: what DOS used). Haiku uses a nice trick* to be able to call even though we do not use real mode. With the move from BIOS to UEFI and from 16 to 32 to 64 bits of addressing, VESA no longer exist or is hard to make use of.
So we need to have graphics drivers for most cards as VESA support is getting less useful. Vesa and framebuffer use the same driver. If we detect VESA modes at boot you get mode swtiching.

  • The driver switches to real mode and calls VESA. A few firmwares could use VESA in protected mode without this trick as well.

EFI and VESA are mutually exclusive. The reason for that is VESA is tied with the BIOS (we call it “VESA” but the full name is “VESA BIOS Extensions” or VBE).

We use either EFI and the framebuffer driver, or VBE and the VESA driver, for the boot screen in all cases. When app_server start, if there is a native driver, we will switch to that, if there is none compatible with your hardware, we remain in framebuffer/vesa mode which at least allows us to display something.


Then I wait for nouveau! No worries.