3b3f746f3793d95b85b6f2ad104a64ade252bb4e
[platform/upstream/kmscon.git] / README
1 = KMSCON =
2
3 Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS).
4 It is an attempt to replace the in-kernel VT implementation with a userspace
5 console. See kmscon(1) man-page for usage information.
6
7 Website:
8   http://www.freedesktop.org/wiki/Software/kmscon
9
10 == Requirements ==
11
12   Kmscon requires the following software:
13     - libtsm: terminal emulator state machine
14     - libudev: providing input, video, etc. device hotplug support (>=v172)
15     - libxkbcommon: providing internationalized keyboard handling
16
17   Everything else is optional:
18
19     For video output at least one of the following is required:
20       - fbdev: For framebuffer video output the kernel headers must be installed
21                and located in the default include path.
22       - DRM: For unaccelerated drm output the "libdrm" library must be installed
23              and accessible via pkg-config.
24       - OpenGLES2: For accelerated video output via OpenGLESv2 the following must
25                    be installed: libdrm, libgbm, egl, glesv2 (i.e., mesa)
26
27     For font handling the following is required:
28       - 8x16: The 8x16 font is a static built-in font which does not require
29               external dependencies.
30       - unifont: Static font without external dependencies.
31       - pango: drawing text with pango
32                Pango requires: glib, pango, fontconfig, freetype2 and more
33
34     For multi-seat support you need the following packages:
35       - systemd: Actually only the systemd-logind daemon and library is required.
36
37 == Download ==
38
39 Released tarballs can be found at:
40   http://www.freedesktop.org/software/kmscon/releases
41
42 == Install ==
43
44   To compile the kmscon binary, run the standard autotools commands:
45     $ test -f ./configure || NOCONFIGURE=1 ./autogen.sh
46     $ ./configure
47     $ make
48     $ make install
49   To compile the test applications, run:
50     $ make check
51
52   If you want only a very basic kmscon program without any major dependencies,
53   use:
54     $ ./configure --with-video=fbdev,drm2d --with-renderers= --with-fonts=unifont --disable-multi-seat --with-sessions=dummy,terminal
55   However, you will loose a lot of functionality by dropping all dependencies.
56
57   The following configure options are available. If build-time dependencies
58   cannot be satisfied, an option is automatically turned off, except if you
59   explicitly enable it via command line:
60     --enable-multi-seat: This requires the systemd-logind library to provide
61                          multi-seat support for kmscon. [default: on]
62     --enable-hotplug: This requires libudev for hotplugging support. This is
63                       currently mandatory and cannot be disabled. [default: on]
64     --enable-debug: Enable debug mode/messages [default: on]
65     --enable-optimizations: Enable code optimizations [default: on]
66     --enable-eloop-dbus: Build dbus extension for eloop library [default: off]
67
68   Backends for several subsystems in kmscon can be selected with the following
69   options (all of them take a comma-separated list of backend names):
70     --with-video: Video backens. Available backends are:
71        - fbdev: Linux fbdev video backend
72        - drm2d: Linux DRM software-rendering backend
73        - drm3d: Linux DRM hardware-rendering backend
74        Default is: fbdev,drm2d,drm3d
75     --with-fonts: Font renderers. Available backends are:
76        - unifont: Static built-in non-scalable font (Unicode Unifont)
77        - pango: Pango based scalable font renderer
78        Default is: unifont,pango
79        The 8x16 backend is always built-in.
80     --with-renderers: Console rendering backends. Available are:
81        - bbulk: Simple 2D software-renderer (bulk-mode)
82        - gltex: OpenGLESv2 accelerated renderer
83        - pixman: pixman based renderer
84        Default is: bbulk,gltex
85        The bblit backend is always built-in.
86     --with-sessions: Built in sessions. Available sessions are:
87        - dummy: Dummy fallback session
88        - terminal: Terminal-emulator sessions
89
90   The following options select which applications are built. If
91   dependency-checks fail, they are disabled by default unless explicitly enabled
92   on the command line:
93     --enable-kmscon: Build kmscon application [default: on]
94     --enable-eloop: Build eloop event loop library [default: off]
95     --enable-uterm: Build uterm library [default: off]
96
97 == Running ==
98
99   To get usage information, run:
100     $ ./kmscon --help
101   You can then run kmscon with:
102     $ ./kmscon [options]
103
104   For debug output use "--debug". For verbose output use "--verbose".
105   With "--xkb-layout=<lang>" you can switch the keyboard layout.
106   See "man kmscon" / kmscon(1) for more information.
107
108 == License ==
109
110   This software is licensed under the terms of an MIT-like license. Please see
111   ./COPYING for further information.
112
113 == FAQ ==
114
115   Please see: http://www.freedesktop.org/wiki/Software/kmscon
116
117 == Contact ==
118
119   This software is maintained by:
120     David Herrmann <dh.herrmann@gmail.com>
121   If you have any questions, do not hesitate to contact one of the maintainers.