pavement

High Resolution Console

From FreeBSDwiki
Revision as of 13:28, 3 November 2007 by Jimbo (Talk | contribs)
Jump to: navigation, search

If you come to FreeBSD after using Linux, one of the first things you may notice is the lack of high-resolution consoles. The default is text-mode 80x25 characters. Although high-resolution is desirable to many, it's certainly not required. If you want to have a 1024x768(or even higher) console resolution, it's fairly easy to set up, just requires a kernel recompile and setting the mode you want to use in the /etc/rc.conf file.

Contents

Kernel Configuration

First off, we need to edit the kernel config to add two options. I won't go into too much depth here, as this article isn't about how to config your kernel. For my example I will use the 'GENERIC' kernel config.

cd /usr/src/sys/i386/conf
cp GENERIC VESAKERN
vi VESAKERN

add the following lines:

options      VESA            # Build VESA module into kernel
options      SC_PIXEL_MODE   # Allows syscons to act on pixels rather than text

Save & exit

Build & Install New Kernel

cd /usr/src
make buildkernel KERNCONF=VESAKERN
make installkernel KERNCONF=VESAKERN

See Available Video Modes & Pick One

When that is done, reboot to use the new kernel. Upon reboot, you will notice no change initially. Log in as root and enter:

vidcontrol -i mode

You should see a long list of all available resolutions, including all of the modes that the video card is capable of. Personally, 1024x768 console is plenty big, or small, depending on how you think about it. On my system the mode number for 1024x768x24 is 280. To test the desired mode, use the following command:

vidcontrol MODE_280

Your console should jump to that. If it works, great. If the screen goes blank, your card/monitor can't support that, and you need to use something else. You may need to switch to different terminal to try one that works.

Tell FreeBSD to use the video mode all the time

Once you find a setting that you like, we can add it to /etc/rc.conf.

allscreens_flags="MODE_280"

This will tell all terminal screens to use the desired resolution. Go ahead and reboot to try it. You will not see the large screen resolution until rc.conf is processed. This is different to Linux where the bootloader passes the resolution providing for a full boot-sequence in high-resolution. On my system, it jumps to high-resolution just before loading the Linux ABI support.

Personal tools