VGA(4)

πŸ“¦
version 15.1 Β· 3 versions
, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’– VGA(4) β€” the kernel interfaces manual, but make it cute πŸ’–

okay so bestie, welcome to the vga page from the Kernel Interfaces Manual β€” yes it's a real manual page, yes it's from Debian, and yes we're gonna make it make sense. buckle up πŸŽ€


✨ NAME ✨

vga β€” the generic video card interface, aka the thing that talks to your graphics card so your console can look cute πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

options VESA
options VESA_DEBUG=N
options VGA_ALT_SEQACCESS
options VGA_NO_FONT_LOADING
options VGA_NO_MODE_CHANGE
options VGA_SLOW_IOACCESS
options VGA_WIDTH90
device vga

and then, in /boot/device.hints:

hint.vga.0.at="isa"

that's the whole vibe check, no cap 🫢


🌸 DESCRIPTION 🌸

So the vga driver is this generic video card driver that gives you access to video cards. it's literally required for the console driver syscons(4) β€” like, syscons(4) cannot function without it, periodt. the console driver will call the vga driver to manipulate the video hardware (changing video modes, loading font, etc). she's the main character behind the scenes πŸ‘‘

the vga driver supports the standard video cards: MDA, CGA, EGA and VGA. and on top of that, she can utilize VESA BIOS extensions if your video card supports them. VESA support can either be statically included in the kernel or loaded as a separate module β€” pick your fighter πŸ’€

so to statically link the VESA support to the kernel, the VESA option (scroll down bestie, it's there) must be defined in the kernel configuration file.

and the vesa module can be dynamically loaded into the kernel using kldload(8). slay ✨


🧚 DRIVER CONFIGURATION 🧚

πŸ’œ Kernel Configuration Options πŸ’œ

The following kernel configuration options (see config(8)) can be used to control the vga driver. these options provide compatibility with certain VGA cards β€” lowkey a whole compatibility moment.

  • VGA_ALT_SEQACCESS β€” you may want to try this option if the mouse pointer is not drawn correctly or the font does not seem to be loaded properly on the VGA card. however β€” and this is important β€” it may cause flicker on some systems. so like, trade-offs, iykyk 😭
  • VGA_SLOW_IOACCESS β€” older VGA cards may require this option for proper operation. it makes the driver perform byte-wide I/O to VGA registers and slow down a little. she's not in a rush, she's taking her time πŸ’…
  • VGA_WIDTH90 β€” this option enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. these modes are not always supported by the video card and the display. it is highly likely that LCD display cannot work with these modes. so like… proceed with caution bestie πŸ™ˆ

The following options add optional features to the driver β€” the little extras, the sprinkles on top πŸ“

  • VESA β€” add VESA BIOS support to the driver. if the VGA card has the VESA BIOS extension 1.2 or later, this option will utilize the VESA BIOS service to switch to high resolution modes. high res era πŸ”₯
  • VESA_DEBUG=N β€” set the VESA support debug level to N. the default value is zero, which suppresses all debugging output. silence is golden, literally.

The following options will remove some features from the vga driver and save kernel memory β€” downsizing, but make it technical πŸ’€

  • VGA_NO_FONT_LOADING β€” the vga driver can load software font to EGA and VGA cards. this option removes this feature. note that if you use this option and still wish to use the mouse on the console then you must also use the SC_ALT_MOUSE_IMAGE option. see syscons(4). read that twice, bestie, it's a trap otherwise 🫢
  • VGA_NO_MODE_CHANGE β€” this option prevents the driver from changing video modes. she's staying exactly where she is, periodt.

🌈 EXAMPLES 🌈

Your kernel configuration should normally have:

device vga

And you need the following line in /boot/device.hints:

hint.vga.0.at="isa"

The following lines should be included in the kernel configuration file in order to enable the VESA BIOS Extension support:

options VESA
device vga

If you do not want VESA support included in the kernel, but want to use occasionally, do not add the VESA option. and load the vesa module as desired:

kldload vesa

see? flexible icon behavior πŸ’–


⭐ SEE ALSO ⭐

vgl(3), syscons(4), config(8), kldload(8), kldunload(8)

go read the friends, they're all linked in this little cinematic universe πŸ‘‘


πŸŽ€ STANDARDS πŸŽ€

Video Electronics Standards Association, VESA BIOS Extension (VBE).


πŸ¦‹ HISTORY πŸ¦‹

The vga driver first appeared in FreeBSD 3.1. an icon from day one, ngl.


πŸ’œ AUTHORS πŸ’œ

The vga driver was written by SΓΈren Schmidt <sos@FreeBSD.org> and Kazutaka Yokota <yokota@FreeBSD.org>. this manual page was written by Kazutaka Yokota. give them their flowers πŸ’


okay that's the whole page!! every option, every path, every caveat β€” all still here, just with better energy πŸ’…

mwah πŸ’‹ β€” this page is straight from Debian, dated June 30, 1999, and it lives in the VGA(4) slot of the Kernel Interfaces Manual. tysm for reading bestie, go load some fonts responsibly 🫢✨

πŸ“¦ where this page comes from