Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

It is a common way to set the resolution of a text consoles (that are usually available by Ctrl-Alt-F1 thru Ctrl-Alt-F6) by using a vga=... kernel parameter. I'm using Ubuntu 10.04 Lucid, output of uname -a is:

Linux 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux

To identify modes available i use the sudo hwinfo --framebuffer which reports:

02: None 00.0: 11001 VESA Framebuffer
[Created at bios.464]
Unique ID: rdCR.R1b4duaxSqA
Hardware Class: framebuffer
Model: "NVIDIA G73 Board - p456h1 "
Vendor: "NVIDIA Corporation"
Device: "G73 Board - p456h1 "
SubVendor: "NVIDIA"
Revision: "Chip Rev"
Memory Size: 256 MB
Memory Range: 0xc0000000-0xcfffffff (rw)
Mode 0x0300: 640x400 (+640), 8 bits
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+800), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x030e: 320x200 (+640), 16 bits
Mode 0x030f: 320x200 (+1280), 24 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0315: 800x600 (+3200), 24 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x031b: 1280x1024 (+5120), 24 bits
Mode 0x0330: 320x200 (+320), 8 bits
Mode 0x0331: 320x400 (+320), 8 bits
Mode 0x0332: 320x400 (+640), 16 bits
Mode 0x0333: 320x400 (+1280), 24 bits
Mode 0x0334: 320x240 (+320), 8 bits
Mode 0x0335: 320x240 (+640), 16 bits
Mode 0x0336: 320x240 (+1280), 24 bits
Mode 0x033d: 640x400 (+1280), 16 bits
Mode 0x033e: 640x400 (+2560), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown

It looks like many hi-res modes are available, like 0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b (by the way, what does the plus-number means in the list of modes?). However, setting any of these modes in kernel option string, line vga=0x305, results in either pitch black text console, or screen filled by blinking color/bw dots.

What is the 'modern', 'robust' way to set up high resolution in text consoles?

share|improve this question
up vote 13 down vote accepted

Newer kernels use KMS by default, so you should move away from appending vga= to your grub line as it will conflict with the native resolution of KMS. However, it depends upon the video driver you are using: the proprietary Nvidia driver doesn't support KMS[1], but you can work around it.

You should be able to get full resolution in the framebuffer by editing your /etc/default/grub and making sure that the GFXMODE is set correctly, and then adding a GFXPAYLOAD entry like so:


# Hack to force higher framebuffer resolution

Remember to run sudo update-grub afterwards.

[1] https://wiki.archlinux.org/index.php/KMS

share|improve this answer
I've got Driver "nvidia" in my xorg.conf, so it's probably a proprietary driver. I'll experiment with grub anyway. By the way, how to work-around the proprietary driver? – mbaitoff Jul 20 '11 at 8:34
I use the proprietary driver and the above method (on a 10.10 box) and it is fine. You could always try a nouveau driver if you wanted: nouveau.freedesktop.org/wiki/UbuntuPackages – jasonwryan Jul 20 '11 at 8:42
Looks like GFXPAYLOAD approach worked, but only with set gfxpayload=keep in grub2 configuration files. – mbaitoff Jul 20 '11 at 9:07
But I still have a suspicion that my video mode is not native. I provided GRUB_GFXPAYLOAD=1920x1080 with GRUB_GFXMODE=1920x1080x24, but I still see the blurred letters in console as if I were in non-native resolution. – mbaitoff Jul 20 '11 at 9:09
Stumbled across this trying to get a larger console for my VM and wanted to add to @mbaitoff's comment. To get the set gfxpayload=keep into the grub2 configuration, you need to add the line GRUB_GFXPAYLOAD_LINUX=keep to your /etc/default/grub. (This is on Debian, and I would assume Ubuntu - YMMV on others). Had to hunt this down in the grub docs, so figured I'd share. – Will Sep 8 '14 at 2:50

For newer Debian & Ubuntu distros using nvidia, I had to do the following:

First, edit /etc/default/grub. Change the following line:


to this:


replacing 1280x800 with the desired resolution.


echo "echo FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-initramfs -u
sudo update-grub

To simply change the font size, you can do so using the following command:

sudo dpkg-reconfigure console-setup
share|improve this answer
+1 for dpkg-reconfigure console-setup – jinowolski Dec 8 '15 at 15:10

Here's your best option:

Use hwinfo --framebuffer as described, choose a video mode you would like to see during boot in console, then add the option vga=nnn to the kernel boot parameters.

The only trick is that nnn is the video mode you selected from the list produced by hwinfo - CONVERTED TO DECIMAL !!!

If you try vga=0xwhatever it's not going to work.

For instance I chose video mode 0x307 (1280x1024 (+1280), 8 bits), I converted 0x307 to decimal which is 775 and then I used vga=775 in the boot parameters of isolinux/extlinux.

And I got a nice fine text in all consoles from the start.


share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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