When adding displays, we know print errors if we cannot allocate buffers or other resources. This helps debugging video problems where the device is ready but the terminal is not printed. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
= 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. == Requirements == Kmscon requires the following software: - libudev: providing input, video, etc. device hotplug support 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) By default a very limited built-in keyboard handling is used. To get other keyboard layouts working, the following is required: - libxkbcommon: keyboard handling (optional but strongly recommended) Without libxkbcommon, basic US-ASCII input is provided. libxkbcommon has no public release, yet, but is available on freedesktop.org. Use "--disable-xkbcommon" if you have problems due to compile-errors. For font handling the following is required: - glib: only for Unicode handling - pango: drawing text with pango Pango requires: glib, cairo, pangocairo, pango and freetype2 Both (glib and pango) dependencies will be removed soon and made optional with plain freetype2+font-config being the fall-back. 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 [--enable-debug] (debug-mode is strongly recommended) $ make $ make install (TODO: this is currently not supported) To compile the test applications, run: $ make check If you want only a very basic kmscon program without that much dependencies, use: $ ./configure --disable-debug --disable-drm --disable-xkbcommon --disable-systemd == Running == To get usage information, run: $ ./kmscon --help You can then run kmscon with: $ ./kmscon [options] --switchvt The --switchvt option will make your machine switch the active VT directly to kmscon after starting it. (this is currently not implemented, though) For debug output use "--debug". For verbose output use "--verbose". If you didn't compile DRM support then you can use "--fbdev" to make kmscon select available framebuffer devices. With "--xkb-layout=<lang>" you can switch the keyboard layout. == License == This software is licensed under the terms of the MIT 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. == Code Base == The kmscon code is split into several independent subsystems: - uterm: This code manages the KMS/DRI output and provides OpenGL framebuffers. - console: This draws the text on the screen and provides an API for any terminal emulator to visualize its contents. - eloop: Main loop implementation. - log: Log file handling. - unicode: Provides basic Unicode handling. - font: Font loading, caching and drawing operations. - input: All linux input events are captured here and converted to Unicode characters for input handling. - vt: The linux VT subsystem integration. This allows to run the application in a classic linux VT like X does. - vte: The terminal emulator library. - terminal: Connects the console, output, input and vte handling into a real terminal. - main: This connects all subsystems into a usable console application.
Description
Languages
C
93.4%
M4
2.9%
Makefile
1.6%
GLSL
1.3%
C++
0.7%
Other
0.1%