Cette excellente doc provient de : Ecrit par : rémy @ 07/09/2004 | 11850 hit(s) remy : http://www.labo-linux.com/index.php?page=membres&id=3 Doc reference : http://www.labo-linux.com/index.php?page=lumieres&id=347





Ecrit par : rémy @ 07/09/2004 | 11850 hit(s)
remy : http://www.labo-linux.com/index.php?page=membres&id=3

Doc reference : http://www.labo-linux.com/index.php?page=lumieres&id=347


Configuration d'XFree/Xorg

Nous partirons du principe que votre affichage graphique est configuré sur votre serveur et sur votre client.

Sur certaines distributions, l'écoute du serveur graphique via TCP est désactivée lors de l'appel du script startx. Il va falloir l'éditer pour l'activer. L'option -nolisten tcp est à enlever.

Mais où est mon script startx ?

which startx
/usr/X11R6/bin/startx

Editons ce script :

userclientrc=$HOME/.xinitrc
userserverrc=$HOME/.xserverrc
sysclientrc=/etc/X11/xinit/xinitrc
sysserverrc=/etc/X11/xinit/xserverrc
defaultclientargs=""
defaultserverargs="-nolisten tcp -br"
clientargs=""
serverargs=""

Il doit maintenant ressembler à cela :

userclientrc=$HOME/.xinitrc
userserverrc=$HOME/.xserverrc
sysclientrc=/etc/X11/xinit/xinitrc
sysserverrc=/etc/X11/xinit/xserverrc
defaultclientargs=""
defaultserverargs=""
clientargs=""
serverargs=""


Si le script startx ne contient pas l'argument -nolisten tcp, il est possible que cela soit declare dans le fichier xserverrc :

rescue:/usr/X11R6/lib/X11/xinit# cat xserverrc
#!/bin/sh
#exec /usr/bin/X11/X -dpi 100 -nolisten tcp
exec /usr/bin/X11/X -dpi 100

rescue:/usr/X11R6/lib/X11/xinit#

On peut verifier par un netstat -lnp que le serveur X est à l'ecoute sur un port tcp :

rescue:/usr/X11R6/lib/X11/xinit# netstat -lnp | grep X
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 14331/X
Sockets du domaine UNIX actives(seulement serveurs)
unix 2 [ ACC ] STREAM LISTENING 82725 14331/X /tmp/.X11-unix/X1
rescue:/usr/X11R6/lib/X11/xinit#

Nous allons maintenant lancer un affichage graphique qui acceptera les requêtes TCP/IP. Mais tout d'abord, nous allons éditer notre fichier ~/.xinitrc pour qu'il contienne une seule ligne qui permettra de lancer un terminal :

exec xterm

Il nous suffit maintenant de lancer startx sur un autre DISPLAY. Lorsqu'on lance startx sans arguments, le DISPLAY localhost:0 est utilisé. Nous allons utiliser le DISPLAY :1 pour pouvoir utiliser notre affichage graphique local en plus de l'affichage distant.

startx -- :1

Desormais nous allons devoir autoriser notre serveur à joindre notre client grâce à la commande xhost

La syntaxe est la suivante : xhost + <IP>

Exemple (A taper dans notre terminal graphique xterm):

xhost + 172.16.34.1
172.16.34.1 being added to access control list

La machine 172.16.34.1 peut maintenant nous joindre !



Afficher des applications à distance

Il ne nous reste plus qu'a lancer une application. Pour cela nous allons utiliser la commande ssh de la manière suivante :

ssh -X -f username@server. DISPLAY=mon_ip:1 commande

L'option -X permet de spécifier que nous voulons utiliser le forward de X.

L'option -f permet de lancer une commande en arrière plan et de rendre la main ensuite.

username@server. : Notre serveur.

DISPLAY=mon_ip:1 commande est notre commande : Nous indiquons notre machine et notre DISPLAY avant notre commande.

Je possède le compte supinfo sur la machine distante 172.16.34.2. Mon ip est 172.16.34.1. Je souhaite lancer l'utilitaire xclock

ssh -X -f supinfo@172.16.34.2. DISPLAY=172.16.34.1:1 /usr/X11R6/bin/xclock


Afficher un environnement complet

Le principe est exactement le même :
5.1 Gnome

Remplaçez le chemin vers votre binaire gnome-session (which gnome-session)

ssh -X -f supinfo@172.16.34.2. DISPLAY=172.16.34.1:1 /usr/bin/gnome-session


deport x

5.2 KDE

ssh -X -f supinfo@172.16.34.2. DISPLAY=172.16.34.1:1 /usr/kde/cvs/bin/startkde

5.3 Fluxbox

ssh -X -f supinfo@172.16.34.2. DISPLAY=172.16.34.1:1 /usr/bin/fluxbox