posting this here until I get the time to appropriately format it!!! The I will submit to LinuxAnswers
note: this is a rough draft, and will have better formatting in the future, however, the information is correct and should work accordingly.
This document is an instruction on how to provide your FreeBSD installation with a high resolution console.
I have successfully done this in FreeBSD 6.0-BETA5 and FreeBSD 5.4-RELEASE.
In the 6.x series, there is support for consoles up to 1600x1200x32 resolution. 5.x supports a max of 1024x768.. which is fine for most people.
First thing we have to do is add VESA and SC_PIXEL_MODE to the kernel and rebuild. You should always cvsup and rebuild your kernel and world to the latest available. However, don't try to 'optimize' the BSD kernel. It is already well optimized. If there is an option, like this, that you need to have, then go for it. We need to open the kernel config file. I would recommend that you cvsup first so that you rebuild the latest world/kernel, but it's optional.
Code:
cvsup -h cvsup2.freebsd.org -g -L 2 /usr/share/examples/cvsup/standard-supfile
Obviously, you can use whichever cvsup server you want. You can install fastest_cvsup to fins what server is fastest for your location as well. If this is the first time you are cvsup-ing, it will take some time. When it completes, we will continue.
Code:
cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/GENERICVESA
Name it to whatever you want.
Code:
vi /usr/src/sys/i386/conf/GENERICVESA
You will see, a couple of lines down an "ident GENERIC" line. You can change this if you want. It will be the display of the kernel in uname.
Directly after that, you will start to see 'option xxxxx #Description' sections..
This is where we add our options:
Code:
options VESA
options SC_PIXEL_MODE
Save your changes and exit.
From here, you generally build the world, and the kernel, install the kernel, reboot to single-user mode, mergemaster, installworld, etc... but I'm going to skip the buildworld because it will eat up a lot of time, and we can do it after the kernel.
Code:
cd /usr/src
make buildkernel KERNCONF=GENERICVESA
make installkernel KERNCONF=GENERICVESA
reboot
Now, you won't get the resolution just yet, we're not quite done. Boot back up and do the following:
Code:
kldload vesa
vidcontrol -i mode | less
You should see a punch of different modes. Scroll through and find one you'd like. For me, 1024x768x24 is the size I want. The first column shows the mode number, mine being 280.
Choose the one you want and try:
Code:
vidcontrol MODE_xxx
Substituting "xxx" for the number of the mode you want. The screen will go bank for a second, then it should come back with the prompt. If it cannot handle the resolution you specified, it should return with an error.
If it works, GREAT! Now we can add this to /etc/rc.conf to load on boot-up. However, we must make sure we load vesa on boot-up as well.
Code:
vi /boot/defaults/loader.conf
see the line that says:
change it to "YES" (maintaining caps)
Save, and exit.
and add to the end:
Code:
allscreens_flags="MODE_xxx"
again, substituting "xxx" for the mode of your choice.
Reboot, and it should come up to the correct console resolution. It does take a while for it to load since it's from a config file. Not like the kernel parameter in Linux where the whole thing boots full-screen. In my case, it goes to full screen just before loading the Linux ABI.