Introduction
Lorsque les bureaux graphiques ne sont pas installés sur un serveur Ubuntu, les interfaces graphiques sont cependant parfois nécessaires et doivent être transmises et affichées sur les machines clientes. Parmi ces raisons, on peut citer :
- Les programmes d’installation assez complexes (Oracle…), la version graphique étant souvent préférée aux installations en mode console et/ou installations silencieuses.
- Exécuter Android studio sur le serveur Ubuntu, plus puissant, plutôt que sur la machine cliente qui ne possède pas les pré-requis matériels (mémoire, CPU…) nécessaires à son installation.
Évidemment, pour l’implémentation de cette fonctionnalité, la bande passante entre le serveur et le client doit être bien dimensionnée (fibre optique…).
Très peu d’étapes sont nécessaires sur Ubuntu 18.04 et le client Windows 10 pour la mise en œuvre de cette mécanique.
Configuration du serveur
Installation des packages
3 packages doivent être installés en premier :
- xvfb : X Virtual Frame Buffer
- xdm : X Desktop Manager
- xfonts-base : Polices de base
Sur le serveur Ubuntu, en tant que root, en une seule de ligne de commande :
root@vps:~% apt-get install xvfb xdm xfonts-base
Ensuite, toujours en tant que root, les packages ci-dessous sont installés :
- xterm (X Terminal)
- twm (Tab Window Manager)
- xfonts-100dpi* : bitmapped fonts (100 dots per inch)
root@vps:~% apt-get install twm xfonts-100dpi* xterm
X11 Forwarding
S’assurer que le paramètre X11Forwarding
est défini à yes
dans le fichier de configuration du démon SSH (/etc/ssh/sshd_config
).
/etc/ssh/sshd_config
...
X11Forwarding yes
...
Redémarrer le service sshd si ce paramètre était initialement à no
:
root@vps:~$ service ssh restart
Configuration des serveurs X
X Server est alors configuré pour utiliser xvfb (X Virtual Frame Buffer) au lieu du moteur X par défaut.
Dans le fichier /etc/X11/xdm/Xservers
, remplacer la ligne ci-dessous
/etc/X11/xdm/Xservers
:0 local /usr/X11R6/bin/X vt7 -dpi 100 -nolisten tcp
par
:0 local /usr/X11R6/bin/Xvfb -dpi 100 -screen 1024x768x16
Puis, en tant que root, redémarrer le service X Desktop Manager
root@vps:/etc/X11/xdm:~$ service xdm restart
[ ok ] Restarting xdm (via systemctl): xdm.service.
Configuration du client
XMing
Installer XMing Server pour Windows (Page de téléchargement: XMing 6.0.9.31 for Windows ). Sélectionner une installation complète (full installation).
Xming Server devra être autorisé dans le pare-feu Windows Defender de Windows 10.
Il s’agit d’une ancienne version (2007) en 32 bits, mais elle est toujours opérationnelle sur les versions récentes de Windows 10 64 bits. Des versions plus récentes, dont la version 64 bits, sont disponibles mais malheureusement uniquement après avoir fait un don (10 £ min.), cependant des alternatives existent en cas de défaillances (par exemple : VcXsrv).
Lorsque le serveur XMing est route sur le client Windows, une icône XMing apparaît dans la barre système de Windows. Les options comme l’arrêt ou l’accès au fichier de log sont accessibles avec un clic droit sur l’icône XMing.
Par défaut, la ligne de commande pour lancer le serveur XMing est la suivante (voir le fichier de log) :
D:\software\tools\xming\Xming.exe :0 -clipboard -multiwindow
Si le serveur XMing est éteint, il est démarré à partir du menu Windows des programmes :
Le serveur XMing écoute par défaut sur le port 6000. Pour retrouver le process ID du serveur XMing, dans une invite de commandes DOS (en tant qu’administrateur) :
C:\> netstat -ano | findstr "6000" | findstr "LISTEN"
TCP 0.0.0.0:6000 0.0.0.0:0 LISTENING 2768
C:\> tasklist /fi "pid eq 2768"
Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ Xming.exe 2768 Console 1 20 060 Ko
Putty
Dans les sessions Putty, activer l’option X11 forwarding pour SSH (Menu : ConnectionSSHX11).
C’est terminé, tout est prêt. Sauf si des règles firewall bloquent quelque part, voire partout…
Quelques tests
Un premier test basique : exécuter simplement une fenêtre xterm
. Cette fenêtre doit s’afficher dans l’environnement Windows 10 :
android@vps:~$ xterm -bg black -fg yellow &
[1] 26730
Un cas un peu plus ardu, afin de tester plus de fonctionnalités avancées (redimensionnement…) : ouverture d’une fenêtre Android Studio 3.4
android@vps:~$ cd /software/android/android-studio android@vps:~$ ./bin/studio.sh &
[1] 26730