You were redirected here from VT.

vt(4) is the virtual terminal console driver implementation (also known as the “Newcons” project) which replaces syscons(4), adding the following features:

  • Unicode support.
  • Double-width character support for CJK characters.
  • Bigger font maps (because of the use of graphics mode).
  • Better use of graphics modes, enabling more appealing graphical boot experiences.

It was added to CURRENT in r259016 (2013-12-05) and enabled by default in GENERIC for amd64 and i386 architectures in r268045 (2014-06-30).

vt(4) currently has the following features compared to syscons:un

Note: Additional vt(4) features will be implemented; this table does not represent the end goal for vt(4).

Feature syscons(4) vt(4)
splash screen support Yes Limited (see ImproveVtSplashScreenSupport)
ASCII encoding Yes Yes
UTF-8 encoding No Yes
Encodings other than ASCII/UTF-8 Yes No
Double-width characters (for CJK) No Yes
VGA text mode font changing Yes No
VGA vesa Yes Limited (vt_vbefb supports the mode set by the loader)
screensaver Yes No
Kernel Modesetting (KMS) integration No Yes
More than 256 distinct characters on screen No Yes
support for hardware mouse cursors Yes No

The vt and vt_vga devices are enabled by default; if using a custom kernel make sure they are included. The sc and vga devices may be omitted.

#device        vga             # VGA video card driver
#device        sc
device         vt
device         vt_vga

To test vt(4) with KMS on Intel driver

kldload i915kms

For ATI/AMD Radeon drivers

kldload radeonkms

vt_vga defaults to graphics mode. A loader tunable hw.vga.textmode can be set to use text mode instead. To enable text mode add the following to /boot/loader.conf:

hw.vga.textmode=1

vt(4) is enabled by default in GENERIC in -CURRENT.

The vtfontcvt(8) tool can convert BDF and HEX format font files for use by the vt(4) console.

For example, a 16×32 version of the terminus font can be created as follows:

  1. Obtain the latest Terminus font distribution and extract it
  2. Convert it to a vt(4) .fnt file:
% vtfontcvt -w 16 -h 32 ter-u32n.bdf ter-u32b.bdf ter-u32.fnt
  1. Load it from a console window:
% vidcontrol -f ter-u32.fnt
Feature Status
Generic terminal layer for the kernel DONE
Core of the vt driver, screen buffering, drawing, etc DONE
Make the keyboard layer accept Unicode DONE
Migrate syscons to xterm, to ease switching between vt(4) and syscons DONE
Make kernel mode setting work: to be investigated. DONE
Scrollback Works
Moused support Works
kbdcontrol(1) In progress: PR 204837
+— kbdmap load Works.
+— kbdmux control Works.
kbdmap(1) front end Works.
vidcontrol(1) In progress
+— Font load Works
+— Font console attributes Works
+— Colormap Not yet
+— Clear history Done (r361601, PR 224436)
+— CONS_BLANKTIME Not implemented: PR 233356
vidfont(1) front end DONE
Switch to text when required Works
ddb(4) debugger Works
Integration with X11 Works
vt(4) man page DONE
double width character support Done
CJK fonts Fonts In progress
UTF-8 keymaps DONE
Update FreeBSD Handbook Unstarted
Keyboard and char map support for other than Unicode UTF-8 Unstarted
Font setting from loader (at kernel start) Unstarted
Architecture / Hardware Specific
amd64 Works (VGA/i915kms/radeonkms)
ARM Works Framebuffer.
arm64 Unknown
i386 Works (VGA/i915kms/radeonkms)
MIPS Works
PPC Works
SPARC Works
VGA driver that supports at least 80×25 text mode and 640×480 graphics mode DONE
VESA driver Limited functionality (mode switch only by loader)
Graphics driver that works with Intel and ATI/AMD DONE
i386/amd64 nvidia driver Works
Xbox framebuffer driver (as a test, because it's easy to do so) DONE
DRM notification on panic/reboot/shutdown/debugger DONE
Screen saver Unstarted

Search for PRs tagged with the vt keyword

  • No support for non-UTF-8 charmap (e.g. ru_RU.KOI8-R).
  • Limited support for modesetting.
    • Partly fixed with a KMS driver (i915kms or radeonkms): one can set a mode by putting this in /boot/loader.conf:
kern.vt.fb.default_mode="1024x768"
  • No support for several vidcontrol(1) features.
  • No support for VGA text mode loadable fonts.
  • No support for moused(8) in VGA text mode.
  • No support for vgl(3).
  • No support for DPMS.
  • No support for splash(4).
  • Support only 16 colors.
  • Pre-loading i915kms.ko/radeonkms.ko disables video output from the point of time these video drivers are attached until interrupt threads are enabled way later. This makes kernel panics during boot undebugable.
  • Machines with at least certain Intel Ivy Bridge hardware may reliably panic when pre-loading i915kms.ko (but work when loading i915kms.ko after boot). Please submit a PR with details if you reproduce this.
  • Machines with at least certain Radeon ARUBA hardware may reliably panic when loading radeonkms.ko after boot (but work when pre-loading radeonkms.ko). Please submit a PR with details if you reproduce this.
  • If drm2 have 2+ outputs, it decides to use too big a window, which is not fully visible on one or both screens.
  • Console output with at least VGA in graphics mode or via i915kms.ko/radeonkms.ko still is remarkably slow, especially compared to syscons(4) with VGA text mode.
  • Having text marked for copy and paste and then launching something that clears the screen, f. e. vi(1), leaves the region of previous text still marked.
  • newcons.txt
  • Last modified: 2026/10/12 10:55
  • (external edit)