1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
= KMSCON =
Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS).
It is an attempt to replace the in-kernel VT implementation with a userspace
console. See kmscon(1) man-page for usage information.
== Requirements ==
Kmscon requires the following software:
- libudev: providing input, video, etc. device hotplug support (>=v172)
- libxkbcommon: providing internationalized keyboard handling
Everything else is optional:
For video output at least one of the following is required:
- fbdev: For framebuffer video output the kernel headers must be installed
and located in the default include path.
- DRM: For unaccelerated drm output the "libdrm" library must be installed
and accessible via pkg-config.
- OpenGLES2: For accelerated video output via OpenGLESv2 the following must
be installed: libdrm, libgbm, egl, glesv2 (i.e., mesa)
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.
- 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.
== 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
$ make
$ make install
To compile the test applications, run:
$ make check
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
However, you will loose a lot of functionality by dropping all dependencies.
The following configure options are available. If build-time dependencies
cannot be satisfied, an option is automatically turned off, except if you
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
--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
--with-renderers: Console rendering backends. Available are:
- bblit: Simply 2D blitting engine
- bbulk: Same as bblit but with bulk-requests
- gltex: OpenGLESv2 accelerated renderer
--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:
$ ./kmscon --help
You can then run kmscon with:
$ ./kmscon [options]
For debug output use "--debug". For verbose output use "--verbose".
With "--xkb-layout=<lang>" you can switch the keyboard layout.
See "man kmscon" / kmscon(1) for more information.
== License ==
This software is licensed under the terms of an MIT-like license. Please see
./COPYING for further information.
== FAQ ==
Please see http://github.com/dvdhrm/kmscon/wiki
== Contact ==
This software is maintained by:
David Herrmann <dh.herrmann@googlemail.com>
If you have any questions, do not hesitate to contact one of the maintainers.
|