Linux: How to change the text size or character size in runlevel 3 (text mode)

Posted on in Categories Howto, Linux, Tips last updated September 6, 2006

If you have large size (21″) or small size (14″) monitor, it is better to use large/small character size. But how do you setup character size in runlevel 3 under Linux?

The answer is simple, use the kernel framebuffer. It allows you to set the Linux text scree (console) to higher or lower resolution. The Linux framebuffer (fbdev) is a graphic hardware-independent abstraction layer to show graphics on a console without relying on system-specific libraries such as SVGALib or the heavy overhead of the X Window System.

Open GRUB configuration file grub.conf
# vi grub.conf

Append line vga=0x318 (a 24-bit color depth @ 1024×768 display) to kernel line. At the end your modification should look like as follows:
title Debian Linux, AMD-VSNL (VMWARE)
root (hd1,0)
kernel /boot/vmlinuz- root=/dev/hdb1 ro vga=0x318
initrd /boot/initrd.img-

Save and close the file. Reboot the system:
# reboot

0x318 (hex) is a mode. Here are common modes:

Colors 640×480 800×600 1024×768
8 bits 0x301 0x303 0x305
16 bits 0x311 0x314 0x317
24 bits 0x312 0x315 0x318

See kernel docs – Documentation/i386/boot.txt and Documentation/svga.txt files for more information. You can also pass special parameter called ask i.e. vga=ask for menu.

Please note that not all video cards out there support kernel framebuffer mode. Also you may need to to use special driver.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.