X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=README;h=da1290f79f01fc5cff0a621d0d1e2ee2ae7bb88b;hb=1893b8b90ca78e0bd823abb2484908afd038f485;hp=1ba6f518618b462bfdd0345469f75599cbe7de3a;hpb=6e301a9af3235681a534c0e50dd7702294458f80;p=platform%2Fupstream%2Fkmscon.git diff --git a/README b/README index 1ba6f51..da1290f 100644 --- a/README +++ b/README @@ -1,57 +1,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. +console. See kmscon(1) man-page for usage information. + +Website: + http://www.freedesktop.org/wiki/Software/kmscon == Requirements == + Kmscon requires the following software: - - udev - - mesa with: - - EGL library - - gbm library - - GL library - - pango with: - - glib - - cairo - - pango - - libxkbcommon + - 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 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. + - 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: - $ ./configure [--enable-debug] + $ test -f ./configure || NOCONFIGURE=1 ./autogen.sh + $ ./configure $ 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 --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 + 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-debug: Enable debug mode/messages [default: on] + --enable-optimizations: Enable code optimizations [default: on] + + 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 + - drm2d: Linux DRM software-rendering backend + - drm3d: Linux DRM hardware-rendering backend + Default is: fbdev,drm2d,drm3d + --with-fonts: Font renderers. Available backends are: + - unifont: Static built-in non-scalable font (Unicode Unifont) + - pango: Pango based scalable font renderer + Default is: unifont,pango + The 8x16 backend is always built-in. + --with-renderers: Console rendering backends. Available are: + - 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 + +== 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=" you can switch the keyboard layout. + See "man kmscon" / kmscon(1) for more information. + == License == - This software is licensed under the terms of the MIT license. Please see + + This software is licensed under the terms of an MIT-like license. Please see ./COPYING for further information. == FAQ == - === Why didn't you use libvte or similar terminal emulators? === - All existing terminal emulators I found highly depend on X. Also, their code - base often is a horrible mess. I haven't had the time to convert them to use - other drawing functions than Xlib, yet. - If you feel like doing this work, please notify me. I would be glad to adjust - my code to work with other terminal emulators. + + Please see: http://www.freedesktop.org/wiki/Software/kmscon == Contact == + This software is maintained by: - David Herrmann + David Herrmann 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: - - output: - 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. - - evdev: - All linux input events are captured here and converted to Unicode - characters for input handling. - - vte: - The terminal emulator library. - - main: - This connects all subsystems into a usable console application.