<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article lang="fr">
<articleinfo>
  <title>Installer un serveur de Terminaux X11 sur une machine sans écran.</title>
  <authorgroup>
  <author>
        <firstname>Nowicki</firstname>
        <surname>Christophe</surname>
  </author>
  </authorgroup>
  <keywordset>
		<keyword>headless</keyword>
        <keyword>X11</keyword>
		<keyword>terminal</keyword>
		<keyword>server</keyword>
		<keyword>xdm</keyword>
		<keyword>debian</keyword>
  </keywordset>
  <date>août 2003</date>
  <legalnotice>
      <para>
         Permission est accordée de copier, distribuer et/ou modifier ce
         document selon les termes de la Licence de Documentation Libre GNU
         (GNU Free Documentation License), version 1.1 ou toute version
         ultérieure publiée par la Free Software Fondation.
         Pas de section inaltérable.
      </para>
  </legalnotice>
  <copyright>
      <year>2003</year>
      <holder>Nowicki Christophe</holder>
   </copyright>
 </articleinfo>

<abstract>
  <title>Introduction</title>
   <para>
	 Cet article explique comment mettre en place un serveur de
	 Terminaux X sur un machine sans écran à l'aide d'un serveur X
	 virtuel. Cela permet de faire l'économie d'un écran sur le serveur
	 de terminaux.  
   </para>
</abstract>

<sect1>
  <title>Serveur de terminaux X sans écran</title>
  <para>
	Dans notre cas, le serveur de terminaux va utiliser un serveur X virtuel (Xvfb)
	a la place du serveur X classique. Celui-ci n'as pas besoin d'un fichier
	de configuration XF86Config.
  </para>
  <sect2>
	<title>Installation</title>
	<para>Nous allons installer le serveur X virtuel et un gestionnaire
	de login. Il existe de nombreux gestionnaires de login pour XFree86 :
	xdm, gdm, kdm et wdm. Je vous propose d'utiliser xdm car c'est le
	plus répendu et le plus léger. Si vous avez la chance d'avoir une
	distribution Debian GNU/Linux il suffit d'installer les packages
	suivants :
	</para>
	<para>
	<screen format="linespecific"><prompt moreinfo="none">#</prompt><userinput moreinfo="none">apt-get install xvfb xdm xfonts-base</userinput></screen>
	</para>
	<para>Il s'agit du minimum vital pour faire tourner un serveur X
	virtuel. La commande apt-get va s'occuper d'installer les
	dépendances suivantes : libxaw7 xbase-clients xlibmesa3-gl xlibs.
	</para>
	<para>
    Pour que votre serveur de terminaux X soit utilisable il faut installer 
	quelques polices de caractère en plus, un gestionnaire de fenêtre et
	un terminal.
	</para>
	<para>
	<screen format="linespecific"><prompt moreinfo="none">#</prompt><userinput moreinfo="none">apt-get install twm "xfonts-100dpi*" xterm</userinput></screen>
	</para>
  </sect2>
  
  <sect2>
	<title>Configuration</title>
	<para>La configuration du serveur de terminaux X se trouve
	principalement au niveau du gestionnaire de login graphique. Voici
	comment procéder pour xdm.
	</para>
	<sect3>
		<title>Changer le serveur X de xdm</title>
		<para>
		Tout d'abord il faut lui préciser d'utiliser un serveur X virtuel
		dans le fichier "/etc/X11/xdm/Xservers". Pour cela nous allons
		remplacer la ligne : 
		</para>
		<para>
		<programlisting format="linespecific">:0 local /usr/X11R6/bin/X vt7 -dpi 100 -nolisten tcp</programlisting>
		</para>
		<para>
		Par celle-là :
		</para>
		<para>
		<programlisting format="linespecific">:0 local /usr/X11R6/bin/Xvfb -dpi 100 -screen 800x600x16</programlisting>
		</para>
		<para>
		  Vous pouvez changer la résolution du serveur virtuel a l'aide de 
		  l'option -screen. Pour les autres options je vous invite a
		  consulter le manuel de Xvfb.
		</para>
	</sect3>
	<sect3>
		<title>Activer le protocole XDMCP</title>
		<para>
		Le protocole XDMCP (X Display Manager Control Protocol) commun à
		tous les gestionnaires de login graphique est à la base des terminaux X. 
		Il permet à	un client X de trouver un serveur de terminaux et
		d'ouvrir un session. 
		Celui-ci est désactivé par défaut pour des raisons de sécurité. 
		Il est impossible d'encapsuler ce protocole dans un tunnel
		SSH sous peine d'avoir des performances désastreuses (UDP over
		TCP). Il ne faut surtout pas l'utiliser dans un environnement a
		risque. Pour activer le protocole XDMCP, il faut mettre en commentaire 
		la dernière ligne du fichier /etc/X11/xdm/xdm-config comme ceux-ci :
		</para>
		<para>
		<programlisting format="linespecific">
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
! DisplayManager.requestPort:   0</programlisting>
		</para>
	</sect3>
	
	<sect3>
		<title>Contrôle d'accès</title>
		<para>
		Il ne nous reste plus qu'à configurer les listes d'accès de xdm
		dans le fichier /etc/X11/xdm/Xaccess. Celui-ci se base sur le nom
		de la machine pour savoir si elle a le droit ou non d'accéder au 
		terminal X. Nous allons ajouter le nom de la machine de laquelle
		nous voulons nous connecter sur le serveur dans ce fichier.
		</para>
		<para>
		<screen format="linespecific"><prompt moreinfo="none">#</prompt><userinput moreinfo="none">cat client_hostname &gt;&gt;	/etc/X11/xdm/Xaccess</userinput></screen>
		</para>
	</sect3>
  </sect2>

  <sect2>
	<title>Tester</title>
	<para>Avant de tester le fonctionnement du serveur de terminaux il
	faut relancer le gestionnaire de login graphique.</para>
  <para><screen format="linespecific"><prompt moreinfo="none">#</prompt><userinput moreinfo="none">/etc/init.d/xdm restart</userinput></screen></para>
	<sect3>
		<title>A l'aide de Xnest</title>
		<para>Le programme Xnest permet de lancer un serveur X dans une fenêtre.
		Pour tester notre serveur de terminaux X sans écran il suffit
		donc de se placer sur une autre machine et entrer la commande
		suivante :</para>
		<para>
		  <screen format="linespecific"><prompt moreinfo="none">$</prompt><userinput moreinfo="none">Xnest :1 -query serveur</userinput></screen>
		</para>
		<para>
		  Si tout va bien vous devez voir le xdm du serveur dans la
		  fenêtre Xnest. Vous pouvez vous logger sur la machine sans
		  écran et lancer des applications graphiques.
		</para>
	</sect3>
	<sect3>
	  <title>A l'aide d'un serveur X</title>
	  <para>
		Si nous voulez lancer l'affichage du serveur de Terminaux X sur
		un autre TTY ou bien en affichage principal vous pouvez le
		faire a l'aide du serveur X de la machine cliente :</para>
		<para>
		  <screen format="linespecific"><prompt moreinfo="none">#</prompt><userinput moreinfo="none">X :1 vt8 -dpi 100 -query serveur</userinput></screen>
		</para>
		<para>
		  Vous devez voir la fenêtre de login XDM sur la console virtuelle
		  numéro 8. (Ctrl + Alt + F8).
		</para>
	  </sect3>
  </sect2>
</sect1>
</article>
