How do you determine what text-mode resolutions are available with a graphics card? I have been using uvesafb to get higher resolutions, but framebuffer TTY display is very slow, so I'd like to try sticking to text mode.

Edit: Related to this, I did find a utility called svgatextmode, which allows setting the graphics card to arbitrary text-mode resolutions. However, the documentation in the source package explains that it requires drivers for the specific chipset. The program has not been developed for several years, so newer hardware is not supported. The original author advises using the framebuffer instead.

2 Answers 2


This is often proprietary. The common modes which seem to be supported by all video cards these days are (columns by rows):

  80 x 25 (the standard -- all video cards should support this)
  80 x 43 (commonly supported by EGA cards originally)
  80 x 50 (extremely common, but can be difficult to read)

Then you get into custom modes. I remember having an ATi card on my MS-DOS 4.01 machine which could support 132 x 66 and a variety of others. If you go with 80 x 25 or 80 x 50 then you shouldn't have any problems with compatibility starting with pretty much all machines going all the way back to 80386-class (and also pretty much any XT with a VGA card in it). If you're supporting really REALLY old hardware, then just stick to 80 x 25.

  • Yes, proprietary is why I need to know how to query a specific piece of hardware for available modes.
    – user60598
    Mar 3, 2011 at 21:51

I found this here:

Append " vga=ask" to the kernel parameter specification in your boot loader (grub, lilo, etc.) or at the boot prompt. You will be presented with a list of standard VGA text modes, then asked to enter a mode or "scan". Type "scan" (without the quotes) and press Enter. This logic executes extremely early in the boot process, before the CPU switches from real mode to protected mode. (It has to run in real mode because it's going to make video BIOS calls.) Linux will probe the video BIOS, asking it for all the available text modes. It will then try to set them all, eliminating the ones that can't be set. (Sometimes a given video BIOS is used with more than one chipset, and not all modes will work with all chipsets.) During this time, you may see strange things on your screen and hear strange noises from inside your monitor. Linux will then present a list of all text video modes supported by the video BIOS for this chipset. (These modes may or may not work on your monitor, however, particularly if you have a fixed-frequency or dual-frequency monitor.) Choose a mode from the list. Linux will then set that mode via a video BIOS call and proceed with the boot process. To use that mode on a regular basis, specify it explicitly in the vga boot parameter. Caution: the boot loader may not support the specification of a hexadecimal number. Convert it to decimal. For example, video mode 0x0f00 should be specified as vga=3840. This method also results in a true hardware-level text mode, which means that screen scrolling is very fast! The down side is that you are limited to the text modes supported by the video BIOS, and you can't change the mode without a reboot.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.