Determining supported Framebuffer video modes
If you use text mode, as I do, then you will need more than 80 characters by 25 lines to work efficiently. I have found it is always possible to have at least 1024×768 resolution and usually even higher.
Probing the hardware
The best way is to probe the hardware using the SuSE hwinfo tool, available for Gentoo through emerge:
emerge -va hwinfo
Then have it probe the hardware:
hwinfo --framebuffer
The output will look something like this:
$ sudo hwinfo --framebuffer 02: None 00.0: 11001 VESA Framebuffer [Created at bios.459] Unique ID: rdCR.VWINrtDIJN2 Hardware Class: framebuffer Model: "NVIDIA G86 Board - NV_NB8M" Vendor: "NVIDIA Corporation" Device: "G86 Board - NV_NB8M" SubVendor: "NVIDIA" SubDevice: Revision: "Chip Rev" Memory Size: 14 MB Memory Range: 0xd5000000-0xd5dfffff (rw) Mode 0x0300: 640x400 (+640), 8 bits Mode 0x0301: 640x480 (+640), 8 bits [snip] Mode 0x0364: 1440x900 (+1440), 8 bits Mode 0x0365: 1440x900 (+5760), 24 bits
Pick the size you want and put “vga=” followed by the mode on your kernel line in /boot/grub/menu.lst, e.g.,
kernel /vmlinuz root=/dev/sda7 vga=0x0365 resume=/dev/sda6
Using VGA standards
You can just pick a standard VGA code (or even a common non-standard one and hope it works). Refer to the VESA_BIOS_Extensions Wikipedia page or the table below.
Colours | 640×480 | 800×600 | 1024×768 | 1280×800 | 1280×1024 | 1600×1200 | 1440×900 |
---|---|---|---|---|---|---|---|
256 (8-bit) | 0x0301 | 0x0303 | 0x0305 | 0x0360 | 0x0307 | 0x031C | 0x0364 |
32,768 (15-bit) | 0x0310 | 0x0313 | 0x0316 | 0x0319 | 0x031D | ||
65,536 (16-bit) | 0x0311 | 0x0314 | 0x0317 | 0x031A | 0x031E | ||
16.8M (24-bit) | 0x0312 | 0x0315 | 0x0318 | 0x031B | 0x031F | 0x0365 | |
4096M (32-bit) | 0x361 |