Caractéristiques requises

  • Un processeur 486 ou plus !
  • Un lecteur de CD bootable
  • Une carte video quelconque et son écran
  • Une carte réseau
  • Un clavier et une souris
  • Un lecteur de disquette (optionnel)

L'objectif est de connecter ce vieux PC par le réseau à votre PC principal en tant que simple terminal X en mode XDMCP. C'est-à-dire que les programmes de ce PC vont être exécutés sur le PC principal et uniquement l'affichage sera déporté. Cela n'empêchera pas une utilisation normale du PC principal par un autre utilisateur.

Etape 1 : Mise en réseau

Si vous disposez déjà d'un réseau, un raccordement du vieux PC à votre HUB, switch ou routeur fera l'affaire. Si vous n'avez pas de réseau, reliez simplement les cartes ethernet de vos deux machines à l'aide d'un cable croisée. Pour plus d'information sur la configuration d'un réseau local, voir le wiki

Afin de simplifier les explications qui suivent, nous allons considérer que le réseau local est le suivant

Etape 2 : Paramétrage du pcprincipal sous Ubuntu

Activation de XDMCP

Sous Breezy : Dans le menu Système > administration > configuration de l'écran de connexion > Onglet Sécurité, cochez Activer XDMCP

Sous Dapper et Edgy : Sans le menu Système > administration > fenêtre de connexion > Onglet Distante > Style identique à la locale
Puis éditez le fichier /etc/X11/gdm/gdm.conf pour supprimer le # devant la ligne Enable=true dans le paragraphe [xdmcp]

$ sudo gedit /etc/X11/gdm/gdm.conf
...
[xdmcp]
...
Enable=true
...
Installation d'un serveur de polices
$ sudo apt-get install xfs
$ sudo gedit /etc/X11/fs/config
    mettre un # devant la ligne "no-listen = tcp" et enregistrez le fichier
$ sudo /etc/init.d/xfs restart
Redémarrage de GDM

Fermer toutes vos applications, déconnectez votre session et appuyez sur les touches Alt+Ctrl+F1
Identifiez vous dans ce mode terminal et lancez la commande :

$ sudo /etc/init.d/gdm restart
Autorisation de connexion réseau

Si vous utilisez le fichier /etc/hosts.allow pour la sécurité de votre machine, il faut y ajouter la ligne suivante avec l'adresse du vieuxpc :

ALL: 192.168.10.3

Si vous utilisez FireStarter, il faudra y ajouter l'autorisation pour les ports 177/UDP, 7100/TCP et 6000/TCP en provenance du vieuxpc

Etape 3 : Téléchargement de Thinstation

Téléchargez le fichier Thinstation-2.1.1-prebuilt-LiveCD.zip ou une version plus récente. Dézippez ce fichier dans un dossier temporaire que nous nommerons ~/thinclient/

Thinstation est une distribution Linux qui a pour objectif de transformer n'importe quel PC en client léger pour différent type de serveur :

  • Windows Terminal Services (RDP)
  • Citrix ICA
  • TightVNC
  • SSH
  • Telnet
  • Tarantella
  • X-Terminal (XDM)

C'est ce dernier qui nous intéresse.

Etape 4 : Préparation du CD bootable

Assemblage des éléments du cd de boot
$ cd ~/thinclient/RebuildIsoWithConf/
$ mkdir isotmp
$ sudo mount -t iso9660 -o loop ../Cd/thinstation.iso isotmp/
$ rm cd-files/delme.txt
$ cp isotmp/* cd-files/
$ sudo umount isotmp
$ mkdir cd-files/thinstation.profile
$ cp ../Floppy/thinstation.profile/thinstation.conf.user cd-files/thinstation.profile/

Etape 5 : Paramétrage de Thinstation

Editez le fichier ~/thinclient/RebuildIsoWithConf/cd-files/thinstation.profile/thinstation.conf.user C'est dans celui-ci que nous allons paramétrer notre image ISO en fonction de notre réseau et de notre vieuxpc.

Voici le contenu du fichier que j'ai utilisé, adaptez le en fonction de votre réseau et de votre vieuxpc :

# --- Network configuration
# Give a different name to each PC
NET_HOSTNAME=vieuxpc
# If you want to use a DHCP server, comment out these params:
NET_USE_DHCP=Off
NET_IP_ADDRESS=192.168.10.3
NET_MASK=255.255.255.0
NET_GATEWAY=192.168.10.2
# If you only have one session, it is a good idea to uncomment this line:
AUTOSTART=On
#SESSION_0 available with Alt+Ctrl+F3
SESSION_0_TITLE="Connexion a Ubuntu"
SESSION_0_TYPE=x
SESSION_0_X_SERVER=192.168.10.2
AUDIO_LEVEL=67
# Look inside BuildFiles\build.conf* file for a list of the supported KB layouts
KEYBOARD_MAP=fr
TIME_ZONE="UTC+1:00"
RECONNECT_PROMPT=On
# --- X Server Options
# SCREEN_RESOLUTION       Screen resolutions available in the workstations
# SCREEN_COLOR_DEPTH      Number of bits per pixel (8,16,24)
# SCREEN_HORIZSYNC        Monitor horizontal sync frequency in Khz.
#                         If left blank Xorg will try to detect with DDC
# SCREEN_VERTREFRESH      Monitor vertical refresh frecuency in Hz.
#                         If left blank Xorg will try to detect with DDC
# SCREEN_X_FONT_SERVER    IP address or hostname of the font server for X
#                       
#                         Screen Saver Settings
# SCREEN_BLANK_TIME       Minutes to X session goes blank
# SCREEN_STANDBY_TIME     Minutes to X session goes into standby mode
# SCREEN_SUSPEND_TIME     Minutes to X session goes into suspend mode
# SCREEN_OFF_TIME         Minutes to X session turn off
#
# MOUSE_PROTOCOL          Mouse protocol type (Microsoft, PS/2, etc.)
#                         (mouse is autodetected, use this only if it fails)
# MOUSE_DEVICE            Mouse device:  /dev/ttyS0 -> COM1
#                                   /dev/ttyS1 -> COM2
#                                   /dev/ttyS2 -> COM3
#                                   /dev/ttyS3 -> COM4
#                                   /dev/psaux -> PS/2 mouse port
#                                   /dev/input/mice -> USB mouse (needs USB package)
# MOUSE_RESOLUTION        Mouse resolution
# X_NUMLOCK               Set numlock state on boot
#SCREEN_RESOLUTION="800x600"
SCREEN_RESOLUTION="1024x768"
SCREEN_COLOR_DEPTH="16"
SCREEN_HORIZSYNC="30-64"
SCREEN_VERTREFRESH="56-87"
SCREEN_X_FONT_SERVER=192.168.10.2:7100
SCREEN_BLANK_TIME=10
SCREEN_STANDBY_TIME=20
SCREEN_SUSPEND_TIME=30
SCREEN_OFF_TIME=60
#MOUSE_PROTOCOL=PS/2
#MOUSE_DEVICE=/dev/psaux
MOUSE_RESOLUTION=100
X_NUMLOCK=On

Etape 6 : Création du CD de boot

Construction de la nouvelle image ISO
$ chmod +w cd-files/boot.cat && rm cd-files/boot.cat
$ chmod +w cd-files/isolinux.bin
$ mkisofs -o vieuxpc.iso -b isolinux.bin -c boot.cat -joliet -no-emul-boot -boot-load-size 4 -boot-info-table cd-files
Warning: creating filesystem with (nonstandard) Joliet extensions
        but without (standard) Rock Ridge extensions.
        It is highly recommended to add Rock Ridge
INFO:   UTF-8 character encoding detected by locale settings.
       Assuming UTF-8 encoded filenames on source filesystem,
       use -input-charset to override.
Using THINS000.USE;1 for  cd-files/thinstation.profile/thinstation.conf.user~ (thinstation.conf.user)
Size of boot image is 4 sectors -> No emulation
Total translation table size: 2048
Total rockridge attributes bytes: 0
Total directory bytes: 2048
Path table size(bytes): 30
Max brk space used 21000
4381 extents written (8 MB)
Gravure du CD de boot

A l'aide de votre logiciel de gravure préféré, créez un cd bootable à partir de l'image ~/thinclient/RebuildIsoWithConf/vieuxpc.iso

Ou tout simplement en faisant un clic droit sur ce fichier depuis Nautilus puis "Graver un CD..."

Etape 7 : Démarrage du vieuxpc

Démarrer le vieuxpc et assurez vous dans les options du BIOS qu'il bootera bien sur le CD.

Insérez le CD fraîchement gravé et vous devriez arrivez directement sur l'écran de login Ubuntu !

Prenez garde à ne pas utiliser simultanément sur le pcprincipal et sur le vieuxpc le même compte utilisateur, vous pourriez vérrouiller des fichiers.

Si le vieuxpc ne démarre pas correctement, vous pouvez retourner à l'étape 5 et corriger le fichier de configuration.

Pour information, il est possible de se connecter à une console linux sur le vieuxpc lorsqu'il a démarré à l'aide des touches Alt+Ctrl+F2 avec le login 'root' et le mot de passe 'pleasechangeme' !

Rebasculez sur Ubuntu avec Alt+Ctrl+F3

Bon recyclage.

D'après une bonne idée de Tao sur le forum Ubuntu-fr.org