Odys"> Odys"> Debian"> Debian « like »"> ]>
Multi Écrans pour TX HOWTO <subtitle>Solution basée sur le projet TX <author>Benoît NICQ <benoit.nicq@odys-solutions.net> <inst>pour <sf>Odys</sf> <date>$Date: 2003/07/08 07:50:03 $ <abstract> Ce document détaille l'installation d'un Terminal X11 <bf>TX</bf> à plusieurs écrans. L'ensemble des écrans du <bf>TX</bf> forme un seul bureau. </abstract> <!-- <toc> --> <sect>Introduction <p>Il est tout à fait possible de faire fonctionner un terminal X11 avec plusieurs écrans pour ne disposer que d'un seul bureau plus grand. La seule limite étant le nombre de cartes qu'il est possible de mettre dans un PC, et la principale difficulté est de trouver aujourd'hui des cartes vidéo <bf>PCI</bf> acceptant de fonctionner ensemble. <p> Le PC utilisé pour l'exemple de ce document est un Pentium 200 Mhz, 128Mo de RAM avec une carte video ATI intégrée à la carte mère et deux cartes Matrox Millénium PCI. XFree86 en mode « multi-écrans » est gourmand en mémoire, 64 Mo de RAM est un minimum. Le bureau fait 3456x864 pixels (3 x 1152x864). <figure loc="ht"> <eps file="tritube.eps"> <img src="tritube.png"> <caption><bf>TX</bf> multi-écrans<label id="tritube"> </figure> <sect>Installer un nouveau système de fichiers pour le TX <p>Pour commencer l'installation, il est nécessaire d'installer un nouveau système de fichier pour le <bf>TX</bf> « multi-écrans » sans pour autant détruire le ou les système(s) des terminaux existants. Si vous n'avez jamais installer de <bf>TX</bf> reportez-vous aux documentations à l'adresse <url url="http://tx.odys-solutions.net/doc.html" name="Documentation TX">. <p>Pour ne pas écraser les systèmes de fichiers des <bf>TX</bf> existants il faut modifier le fichier <em>/etc/tx-master.conf</em> et changer le chemin du système de fichiers : <p>remplacer <tscreen><verb> tx_base="/var/lib/diskless/tx" </verb></tscreen> <p>par <tscreen><verb> tx_base="/var/lib/diskless/multi" </verb></tscreen> <p>Ensuite exécuter la commande <em>mk-tx-root</em>. Pour terminer l'installation voir la documentation complète à l'adresse <url url="http://tx.odys-solutions.net/doc.html" name="Documentation TX">. <sect>Configurer X11 <p>Pour le mode «| multi écrans| » il est nécessaire de configurer le <bf>TX</bf> pour fonctionner avec la version Xfree86 <bf>4.x.x.</bf>. En effet les versions antérieures à la version 4.0 ne supportent pas ce mode. <p>Il faut avant tout définir quelles sont les cartes reconnues par le système et sur quels bus elles sont connectées. Une fois que le TX a démarré (inutile pour le moment de se préoccuper de la configuration de X) appuyer sur les touches <bf>Ctrl+Alt+F4</bf> de façon à passer sur la console du terminal. Appuyer sur la touche <bf>Entrée</bf> pour l'activer et exécuter la commande suivante (Attention le clavier est configuré en QWERTY!) : <tscreen><verb> # /usr/X11R6/bin/XFree86 -scanpci </verb></tscreen> <p>Voici ce que ça donne pour l'exemple: <tscreen><verb> Probing for PCI devices (Bus:Device:Function) (0:13:0) Matrox Millenium II using a Matrox MGA 1064SG (0:14:0) Matrox unknown card (0x051a) using a Matrox MGA 1064SG (1:0:0) ATI card using a ATI Mach64 GB </verb></tscreen> <p>Une fois les informations sur les cartes vidéo récupérées il faut modifier le script <em>/var/lib/diskless/multi/etc/tx/XF86Config-4.sh</em> qui génère le fichier de configuration de <bf>XFree86</bf> <p>Le script <em>XF86Config-4.sh</em> remplace des variables par les valeurs correspondantes envoyées par le serveur <bf>DHCP</bf>. C'est un remplacement de variables par substitution. Pour indiquer une valeur en « dure » il suffit de remplacer dans le script la variable par la valeur souhaitée. Ce script n'est pas fait à l'origine pour gérer plusieurs écrans. Il faut envisager l'installation d'un système de fichiers par <bf>TX</bf> à moins que les PCs aient la même configuration matériele. <p>Le plus simple est de télécharger le script modifié qui sert pour l'exemple à l'adresse <url url="/doc/tx_multi_ecrans/XF86Config-4.sh" name="XF86Config-4.sh"> et de le comparer au script originel. <p>Pour plus d'information sur le fonctionnement en mode « multi-écrans » sous GNU/Linux voir la page <url url="http://lea-linux.org/xwindow/multihead.php3" name="Multi-Head ou Utiliser plusieurs écrans et/ou cartes graphiques"> <p>Tout d'abord il faut supprimer la <em>Section "Device"</em> existante et créer une nouvelle <em>Section "Device"</em> pour chaque carte suivant le modèle décrit dans l'exemple. <p>Exemple: <tscreen><verb> #Section "Device" # Identifier "Generic Video Card" # # Driver $X_DRIVER # # Option "UseFBDev" "true" #EndSection Section "Device" Identifier "Video_Card 1" Driver "mga" BusID "PCI:0:13:0" EndSection Section "Device" Identifier "Video_Card 3" Driver "mga" BusID "PCI:0:14:0" EndSection Section "Device" Identifier "Video_Card 2" Driver "ati" BusID "PCI:1:0:0" EndSection </verb></tscreen> <p>Pour notre exemple, les trois écrans sont identiques. Si les écrans ont des caractéristiques différentes il faut créer autant de <em>Section "Monitor"</em> que de modèles d'écran et y inscrire leurs caractéristiques. <tscreen><verb> Section "Monitor" Identifier "Generic Monitor" $X_HORIZONTAL_SYNC $X_VERTICAL_REFRESH $X_MODELINE Option "DPMS" EndSection </verb></tscreen> <p>Il est nécessaire de créer autant de <em>Section "Screen"</em> que de cartes vidéo utilisées. Les cartes video peuvent utiliser des résolutions différentes en fonction de leur capacité en mémoire et l'écran qui y est connecté. Par-contre il est primordial d'utiliser la même profondeur de couleur (DefaultColorDefth) pour toutes les cartes. <tscreen><verb> Section "Screen" Identifier "Screen 1" Device "Video_Card 1" Monitor "Generic Monitor" $X_COLOR_DEPTH SubSection "Display" Depth 1 $X_RESOLUTION EndSubSection SubSection "Display" Depth 4 $X_RESOLUTION EndSubSection SubSection "Display" Depth 8 $X_RESOLUTION EndSubSection SubSection "Display" Depth 15 $X_RESOLUTION EndSubSection SubSection "Display" Depth 16 $X_RESOLUTION EndSubSection SubSection "Display" Depth 24 $X_RESOLUTION EndSubSection EndSection Section "Screen" Identifier "Screen 2" Device "Video_Card 2" Monitor "Generic Monitor" $X_COLOR_DEPTH SubSection "Display" Depth 1 $X_RESOLUTION EndSubSection SubSection "Display" Depth 4 $X_RESOLUTION EndSubSection SubSection "Display" Depth 8 $X_RESOLUTION EndSubSection SubSection "Display" Depth 15 $X_RESOLUTION EndSubSection SubSection "Display" Depth 16 $X_RESOLUTION EndSubSection SubSection "Display" Depth 24 $X_RESOLUTION EndSubSection EndSection Section "Screen" Identifier "Screen 3" Device "Video_Card 3" Monitor "Generic Monitor" $X_COLOR_DEPTH SubSection "Display" Depth 1 $X_RESOLUTION EndSubSection SubSection "Display" Depth 4 $X_RESOLUTION EndSubSection SubSection "Display" Depth 8 $X_RESOLUTION EndSubSection SubSection "Display" Depth 15 $X_RESOLUTION EndSubSection SubSection "Display" Depth 16 $X_RESOLUTION EndSubSection SubSection "Display" Depth 24 $X_RESOLUTION EndSubSection EndSection </verb></tscreen> <p>Il faut décrire la disposition des écrans. Les options principales sont : <itemize> <item><bf>RightOf</bf> écran à droite <item><bf>LeftOf</bf> écran à gauche <item><bf>Below</bf> écran au-dessous <item><bf>Above</bf> écran au-dessus </itemize> <p>Pour plus d'information : <em>man XF86Config-4</em> <tscreen><verb> Section "ServerLayout" Identifier "Default Layout" Screen "Screen 1" Screen "Screen 2" RightOf "Screen 1" Screen "Screen 3" RightOf "Screen 2" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" # InputDevice "Generic Mouse" EndSection </verb></tscreen> <p>Il ne reste plus qu'à modifier le fichier <em>/var/lib/diskless/multi/etc/tx/rcS</em> pour que l'option Xinerama soit prise en compte. Cette option est nécessaire pour avoir un bureau qui utilise l'ensemble des écrans. <p>Il faut remplacer: <tscreen><verb> X_OPT="-nolisten local -nolock " </verb></tscreen> <p>par <tscreen><verb> X_OPT="-nolisten local -nolock +xinerama" </verb></tscreen> <p>Et voilà c'est fini! </article> <!-- vim:tw=72:sw=4:ts=4: -->