It is an attempt to replace the in-kernel VT implementation with a userspace
console. See kmscon(1) man-page for usage information.
+Website:
+ http://www.freedesktop.org/wiki/Software/kmscon
+
== Requirements ==
Kmscon requires the following software:
- - libudev: providing input, video, etc. device hotplug support
+ - libtsm: terminal emulator state machine
+ http://www.freedesktop.org/wiki/Software/kmscon/libtsm/
+ - libudev: providing input, video, etc. device hotplug support (>=v172)
+ http://www.freedesktop.org/wiki/Software/systemd/
- libxkbcommon: providing internationalized keyboard handling
+ http://xkbcommon.org/
+ - libdrm: graphics access to DRM/KMS subsystem
+ - linux-headers: linux kernel headers for ABI definitions
Everything else is optional:
For font handling the following is required:
- 8x16: The 8x16 font is a static built-in font which does not require
external dependencies.
- - freetype2: The freetype2 font uses libfreetype2 and libfontconfig to
- provide a very basic font backend.
+ - unifont: Static font without external dependencies.
- pango: drawing text with pango
Pango requires: glib, pango, fontconfig, freetype2 and more
For multi-seat support you need the following packages:
- systemd: Actually only the systemd-logind daemon and library is required.
+== Download ==
+
+Released tarballs can be found at:
+ http://www.freedesktop.org/software/kmscon/releases
+
== Install ==
To compile the kmscon binary, run the standard autotools commands:
- $ ./autogen.sh (you need this only when building from git directly)
- $ ./configure --prefix=/usr
+ $ test -f ./configure || NOCONFIGURE=1 ./autogen.sh
+ $ ./configure
$ make
$ make install
To compile the test applications, run:
If you want only a very basic kmscon program without any major dependencies,
use:
- $ ./configure --disable-debug --with-video=fbdev --disable-multi-seat --with-fonts=8x16 --disable-pciaccess --with-sessions=dummy,terminal
+ $ ./configure --with-video=fbdev,drm2d --with-renderers= --with-fonts=unifont --disable-multi-seat --with-sessions=dummy,terminal
However, you will loose a lot of functionality by dropping all dependencies.
The following configure options are available. If build-time dependencies
explicitly enable it via command line:
--enable-multi-seat: This requires the systemd-logind library to provide
multi-seat support for kmscon. [default: on]
- --enable-hotplug: This requires libudev for hotplugging support. This is
- currently mandatory and cannot be disabled. [default: on]
- --enable-pciaccess: Enable GPU detection via pciaccess [default: on]
--enable-debug: Enable debug mode/messages [default: on]
--enable-optimizations: Enable code optimizations [default: on]
- --enable-eloop-dbus: Build dbus extension for eloop library [default: off]
Backends for several subsystems in kmscon can be selected with the following
options (all of them take a comma-separated list of backend names):
--with-video: Video backens. Available backends are:
- fbdev: Linux fbdev video backend
- - dumb: Linux DRM dumb-buffer backend
- - drm: Linux DRM backend
- Default is: fbdev,dumb,drm
+ - drm2d: Linux DRM software-rendering backend
+ - drm3d: Linux DRM hardware-rendering backend
+ Default is: fbdev,drm2d,drm3d
--with-fonts: Font renderers. Available backends are:
- - 8x16: Static built-in non-scalable 8x16 font (ASCII only)
- unifont: Static built-in non-scalable font (Unicode Unifont)
- Takes very long to compile
- - freetype2: Freetype2+fontconfig based scalable font renderer
- pango: Pango based scalable font renderer
- Default is: 8x16,freetype2,pango
+ Default is: unifont,pango
+ The 8x16 backend is always built-in.
--with-renderers: Console rendering backends. Available are:
- - bblit: Simply 2D blitting engine
- - bbulk: Same as bblit but with bulk-requests
+ - bbulk: Simple 2D software-renderer (bulk-mode)
- gltex: OpenGLESv2 accelerated renderer
+ - pixman: pixman based renderer
+ Default is: bbulk,gltex
+ The bblit backend is always built-in.
--with-sessions: Built in sessions. Available sessions are:
- dummy: Dummy fallback session
- terminal: Terminal-emulator sessions
- The following options select which applications are built. If
- dependency-checks fail, they are disabled by default unless explicitly enabled
- on the command line:
- --enable-kmscon: Build kmscon application [default: on]
- --enable-wlterm: Build wlterm Wayland terminal [default: on]
- --enable-eloop: Build eloop event loop library [default: on]
- --enable-tsm: Build TSM terminal state-machine library [default: on]
- --enable-uterm: Build uterm library [default: on]
-
== Running ==
To get usage information, run:
== FAQ ==
- Please see http://github.com/dvdhrm/kmscon/wiki
+ Please see: http://www.freedesktop.org/wiki/Software/kmscon
== Contact ==
This software is maintained by:
- David Herrmann <dh.herrmann@googlemail.com>
+ David Herrmann <dh.herrmann@gmail.com>
If you have any questions, do not hesitate to contact one of the maintainers.