CFT: Graphics support for /boot/loader

Oliver Fromme olli at
Tue Feb 10 01:08:12 PST 2009


Sorry for the late reply.  I'm swamped with emails, and
real life takes its time, too ...

Alexey Shuvaev wrote:
 > Looks good, BTW is 640x480 in 4 bits per pixel the maximum of standard VGA?
 > Can you go higher or you are already in protected mode with (almost) no BIOS?
 > I mean, 640x480 is ok, but 4 bits per pixel... mmm... the same 16 colors as
 > in text mode... although with a palette...

For logos and simple graphics, 16 colors is actually not
that bad.  Look at the various examples (screen shots) that
you can find here:

With a proper palette and dithering you can make quite
nice background graphics with only 16 colors.  I made all
of those with the netbpm tools, xv and a little bit of gimp.

Also take into account that this is "only" a boot screen.
Most people will see it only for a few seconds.

Regarding your question about VGA modes:

Standard VGA supports at most 640x480 at 4 bits and 320x200
at 8 bits.  So that's the common denominator.

There are some "hacked modes" (sometimes called "mode X")
that allow somewhat higher resolutions, such as 704×528
at 4 bits or 360x256 at 8 bits.  But those don't work well
with all monitors.

And then there is VESA, of course.  I plan to add limited
VESA support, so higher resolutions are possible.  However,
there are a few issues with VESA support:

 - 1. Some VESA BIOS implementations have serious bugs,
   because nobody uses it in the Windows world.

 - 2. There is no simple and reliable way to autodetect
   which resolutions are supported by the monitor.

 - 3. There are many, many different VESA modes and display
   resolutions.  It's unfeasible that FreeBSD ships with
   appropriate graphics files for every conceivable VESA
   mode, color depth, display size and height/width ratio.

So, the default FreeBSD boot loader (as shipped on the CD
or DVD images) will use the standard VGA mode 640x480 at
4 bits, because that's the only thing guaranteed to work
everywhere out of the box.  It might be possible to use
a VESA mode at higher color depth (e.g. 8 bits), but the
default resolution should stay at 640x480.

Of course, those who want higher resolutions will be able
to use them by editing their theme.conf file and providing
graphics files of appropriate size.

Best regards

Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:

"When your hammer is C++, everything begins to look like a thumb."
        -- Steve Haflich, in comp.lang.c++

More information about the freebsd-current mailing list