Linux – Can’t get 1440×900 resolution with GRUB2 although vbeinfo says it’s available

arch linuxgrublinux

I'm trying to use GRUB2 in graphical mode with 1440×900 resolution, but the result is always garbled nonsense: the highest resolution I can get is 1280×800.

Word is from googling that long as vbeinfo lists a resolution, GRUB2 can use it. This doesn't seem to be true: vbeinfo says that 1440×900 is available but it doesn't work.

Testing it from the GRUB2 command line:

set gxfmode=1440x900
terminal_output gfxterm
# -> garbled nonsense

# back to trusty 640x480
terminal_output console

The graphics card is an Intel GM965.

Once linux boots the framebuffer switches to 1440×900.

Added after epheminent's reply and various experiments

vbeinfo lists two sets of modes.

The first set runs from 0x160 to 0x16b, with resolutions 768×480, 960×600, 1280×800 and 1440×900

Then – after a bunch of text-only modes – the second set, containing resolutions 1024×768, 800×600, and 640×480

The first set of modes aren't altered by 915resolution. They all work except 1440×900.

The resolution of modes in the second set can be altered using the 915resolution module / command available in GRUB2 >= 1.99.

# in /boot/grub/grub.cfg

insmod 915resolution

# 30, 32, 34 all work for me: all that varies is which modes are altered
915resolution 30 1440 900

# setting an impossible resolution changes the mode to "text-only"
# in my case 1280x1024 is not supported
915resolution 30 1280 1024

Clearly, 1440×900 should just work: adding it with 915resolution is just a workaround.

Best Answer

There is a 915resolution module which enables GRUB 2 to enable Intel's non-standard resolutions. It is based off of the userspace 915resolution which adds VBE entries at runtime for these resolutions; they're not otherwise available from BIOS.

Related Question