====== README ====== The most updated documentation is available at our wiki: http://wiki.c3sl.ufpr.br/multiseat It is also available in other languages there. This document is just a copy of a 2 pages on the wiki. It follows MediaWiki syntax. For the most updated version, see these pages: - http://wiki.c3sl.ufpr.br/multiseat/index.php/Mdm - http://wiki.c3sl.ufpr.br/multiseat/index.php/Compiling_mdm ======================== Multisat Display Manager ======================== '''mdm''' stands for "multiseat display manager". Despite its name, mdm is actually a wrapper on the real display manager. It is used to configure multiseat environments, allowing users to change a normal machine into a multiseat machine by just installing a package. ==The problem== There are many ways to configure multiseat environments. Some people use nested X servers, while others use multiple instances of the X server or maybe VNC or directfb or anything else. Also, combined with these solutions people might want to use GDM, KDM, XDM, remote X without display managers or many others. The goal of the mdm package is to be generic enough to be able to be used in any solution. ==The solution== mdm consists of two disctinct parts: the ''core'', simply called mdm, which is the solution-independent code, and the ''multiseat mode'', which is the solution-dependent code. The ''core'' is installed by the mdm package and the other multiseat modes are installed by the other packages (like mdm-xephyr-gdm, which combines Xephyr and GDM). There are also some default modes inside the mdm package, like the xephyr-xdmcp, which just starts X servers connected to remote xdmcp servers. Modes that have extra dependencies are provided by other packages. ===mdm=== The ''core'' package is responsible for detecting input devices, video cards, creating xorg.conf, associating seats with devices and then calling the modes ===[[multiseat modes]]=== The modes are actually bash scripts that define some specific functions that are called to start the displays used by the seats. They are usually located in /usr/share/mdm/modes. To change between modes, it is necessary to edit the MULTISEAT_MODE variable inside the [[mdm.conf|mdm configuration file]]. ==Using mdm== There are 3 ways to use mdm. You can: * [[Installing mdm|install]] the mdm package from our repositories; * [[Compiling mdm|compile]] and install mdm from git * or download our [[Live-CD]] and boot it in your machine. You'll have to install the main mdm package, the package for the multiseat mode you want to use and then edit the [[mdm.conf|mdm configuration file]] to use the right mode and change other preferences. ========= COMPILING ========= This page contains instructions on how to compile mdm from git. ==Dependencies== The first thing you'll need is to download the dependencies. Our dependencies include: [http://git.or.cz/ git], the essential packages for compiling source code (gcc, make), the cairo library and development files and the fakeroot package For Debian/Ubuntu users, you can use this command: sudo apt-get install git-core build-essential libcairo2-dev libcairo2 fakeroot ==Downloading the files== To download the repository, use this command: git-clone http://git.c3sl.ufpr.br/pub/scm/multiseat/mdm.git It will create a directory called ''mdm''. Change to it: cd mdm ==Compiling== Our repository consists of 3 main parts: * The ''mdm'' directory, which generates the package called mdm * The ''extra-modes'' directory, which includes the non-default [[multiseat modes]] * The '''dependencies''' directory, which includes a patch for libx11. This patch is needed because without it Xephyr will keep randomly dying. You ''can'' use mdm without it, but as soon as your sessions start dying, you'll want this patch. If you don't use Xephyr, you don't need this patch. The patch fixes [https://bugs.freedesktop.org/show_bug.cgi?id=6820 freedesktop.org's bug #6820] Also, there are 2 ways of compiling each package. One is for the supported distros and other is for the still unsupported distros. Currently the only supported distros are Debian Lenny and Ubuntu 8.04. ===Supported distros=== Set the DISTRO environment variable according to you distribution's name. Current possible values: export DISTRO=debian-lenny export DISTRO=ubuntu-8.04 ====Compiling mdm==== Change to the mdm sub-directory cd mdm Generate the package make $DISTRO The package will be installed in the newly-created ''packages'' directory. Use your distribution's command to install it. For Debian/Ubuntu: sudo dpkg -i packages/mdm_0.0.2_i386.deb (package version and architecture might change) Go back to the main directory cd .. This way, you will be able to use mdm via XDMCP. If you wish to use gdm: ====Compiling the xephyr-gdm mode==== Change to the xephyr-gdm directory: cd extra-modes/xephyr-gdm Generate the package make $DISTRO The package will be installed in the newly-created ''packages'' directory. Use your distribution's command to install it. For Debian/Ubuntu: sudo dpkg -i packages/mdm_0.0.2_i386.deb (package version and architecture might change) Go back to the main directory cd ../.. ====Patching libx11-6==== Change to your distribution's dependencies directory cd dependencies/$DISTRO Install the pre-requisites for recompiling libx11 sudo apt-get build-dep libx11-6 Then, use this command to compile and install the package: sudo make install It will download the sources, apply the patches, and put the libx11-6 package in ''hold'' status. ===Still unsupported distros=== ====Choose a destination directory==== Instead of inserting the files into the root directory, you'll and to add them somewhere else, like your home directory. Do this: export DESTDIR=~/mdm-test Remember: all the files will be here, so [[mdm.conf]] will be located in $DESTDIR/etc/mdm/mdm.conf, not just /etc/mdm/mdm.conf ====Compile the mdm package==== cd mdm make DESTDIR=$DESTDIR install cd .. This way, you will be able to use mdm via XDMCP. If you wish to use gdm: ====Compile xephyr-gdm mode==== cd extra-modes/xephyr-gdm make DESTDIR=$DESTDIR install cd ../.. ====Patching libx11-6==== cd dependencies/generic Apply the patch here to your libx11-6 package and install it cd ../.. ==Configuring the package== To configure it, edit [[mdm.conf]]. sudo vim /etc/mdm/mdm.conf Adjust your monitor mode, frequency, keyboard layout and multiseat mode (use ''xephyr-gdm'' if you want gdm). ==Running== mdm is configured to automatically start whenever your computer boots. You can either reboot or: sudo /etc/init.d/mdm start