# Ordinateurs: Une deuxième vie pour vos anciennes machines

Georges Pfeiffer, Cédric Nouguier

<figure><img src="image_1.png" /></figure>

## To cite this version:

Georges Pfeiffer, Cédric Nouguier. Ordinateurs: Une deuxième vie pour vos anciennes machines. Cahier des Techniques de l'INRA, 2006, 57, pp.47-55. hal-04685723

HAL Id: hal-04685723

https://hal.science/hal-04685723v1

Submitted on 3 Sep 2024

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_2.png" /></figure>
Ordinateurs
Une deuxième vie pour vos anciennes machines

Georges Pfeiffer<fnref n="1" />, Cédric Nouguier<fnref n="2" />

Cette documentation propose une solution de recyclage d'anciennes machines en terminaux (clients légers). Les objectifs de cette démarche sont triples : donner un second souffle aux anciens postes de travail, réaliser des économies en terme d'achat de licences de systèmes d'exploitation et, tout aussi important, réaliser des économies en terme de temps d'administration. Le système que nous utilisons est comparable aux terminaux vendus dans le commerce et permet de s'adapter à l'hétérogénéité du parc informatique à recycler (configuration minimale de 100Mhz avec 48Mo de mémoire vive).

Les postes récupérés pourront se connecter à un serveur de type Gnu/Linux ou Windows. Les ressources locales de ces machines (CDROM, USB, disquette) pourront être utilisées.

Le disque dur, étant une des pièces les plus vulnérables, la solution adoptée consistera à démarrer les postes clients depuis un lecteur de CDROM. Un démarrage des machines par le réseau via le protocole PXE est également possible avec notre solution, mais ne sera pas détaillée car nos machines les plus anciennes ne supportent pas ce mode de démarrage. Cette configuration est dès à présent en service sur une partie de notre parc.

**Mots clés** : Linux, Debian, Windows 2000, Samba, libre, PXES, client léger, recyclage.

# 1. Introduction

Le problème du recyclage des anciennes machines est devenu une réalité préoccupante. Aussi, de nombreux outils sont disponibles sur Internet pour y répondre. Nous avons retenu le boot des machines par le CDROM pour des raisons de fiabilité et de rapidité de mise en oeuvre. L'outil qui nous a semblé le plus adapté pour cette solution est PXES.

PXES est un outil libre et gratuit qui permet de générer des mini distributions GNU/Linux qui pourront ensuite, soit être gravées sur CDROM, soit téléchargées via le réseau avec une carte réseau supportant le protocole PXE. Cette dernière possibilité nécessite l'usage d'un serveur de TFTP et un serveur de DHCP compatibles avec la norme PXE.

En utilisant le CDROM, le système est chargé dans la mémoire vive de l'ordinateur. Un serveur de DHCP est conseillé pour donner les paramètres réseau automatiquement et dynamiquement aux postes clients. S'il n'est pas disponible, il faudra soit créer une image CD par machine, soit entrer les paramètres réseaux manuellement à chaque démarrage de la machine. Le disque dur n'étant pas nécessaire, la machine peut être arrêtée à tout moment sans aucun risque. De plus, à chaque redémarrage de la machine, nous retrouvons un système identique.

Nous allons décrire la méthode d'installation et de configuration des outils XFS et PXES, nécessaires à la création et à l'utilisation de mini systèmes d'exploitation sur les machines recyclées. Nous proposerons ensuite un moyen d'automatiser la gestion de l'accès aux ressources locales des postes clients sous Linux.

<footnote n="1">¹Unité Plantes et Systèmes de cultures Horticoles (PSH) d'Avignon. Courriel : pfeiffer@avignon.inra.fr</footnote>

<footnote n="2">²Institut Universitaire Professionnel (IUP) – Génie Mathématique et Informatique (GMI) d'Avignon.</footnote>
## 2. Configuration du serveur

Toutes les manipulations ont été réalisées sur un serveur disposant de la configuration suivante :
Distribution Debian Sarge avec un système de fichiers EXT3 et noyau 2.6.8-2-686-SMP.

## 3. Le serveur de polices XFS sur le serveur Linux

L'installation d'un serveur de polices XFS est utile pour les clients légers. Lorsque ces derniers n'ont pas la police disponible localement permettant d'afficher correctement une application, ils interroagent le serveur de polices XFS. Il n'est pas nécessaire d'installer un serveur XFS sur chaque machine Linux. Ce serveur pourrait être installé sur une machine Linux dédiée.

→ apt-get install xfs

Modifier le fichier « /etc/X11/fs/config » comme indiqué ci-après pour autoriser 50 connexions au serveur XFS :

client-limit = 50
#no-listen = tcp
port 7100

Redémarrer le serveur de polices XFS :

→ /etc/init.d/xfs restart

## 4. Installation de PXES sur le serveur

PXES n'est pas adapté à la distribution Debian. Il faut donc installer le logiciel manuellement comme expliqué ci-après.

Deux paquets sont à installer :

* pxesconfig

* pxes-base

Pour utiliser les ressources locales avec Windows, utiliser les versions 1.0.6 de pxes-base et 1.0.7 de pxes-config.

Télécharger les deux paquets (format tar ou tar.gz) puis les copier dans le répertoire « /usr/src ».

Décompresser les deux archives comme suit en root :

→ tar xzvf pxesconfig

→ tar xzvf pxes-base

Certains paquets sont nécessaires au fonctionnement du logiciel. Il faut veiller à les installer à présent via le gestionnaire de paquets aptitude par exemple (certains étant peut être déjà présents sur le serveur) :

gtk-Perl
glade-Perl
glade-perl_0.61-1_all.deb
hwdata_0.145-1_all.deb
libgnome-perl_0.7009-1.1_i386.deb
mkisofs_2.0+a34-2_i386.deb
mknbi_1.4.3-2_i386.deb
squashfs-tools_2.0-1_i386.deb

→ apt-get install xfonts-100dpi xfonts-100dpi-transcodedgtk-perl libgtk2-perl glade-perl hwdata libgnome-perl mkisofs mknbi squashfs-tools patch

A présent il faut installer le logiciel :

→ cd /usr/src/pxesconfig

→ perl Makefile.PL

→ make install

→ make clean

→ cd /usr/src/pxes-1.0

→ make install

La table des partitions « /etc/fstab » du système Linux doit être modifiée pour accepter un répertoire avec système de fichiers Ext2 :

→ vi /etc/fstab

Ajouter la ligne suivante:

/tmp/pxes.initrd /tmp/pxes ext2 loop,noauto,user,owner 0 0

A présent, il faut modifier un fichier de configuration suivant :

« /usr/local/share/perl/5.8.4/Pxesconfig/PxesconfigGUI.pm »

A la ligne 904, une ligne doit faire référence à flash ou USB. Modifier la variable nommée $hd par $ud. Certaines versions de PXES comportent ce bug qui ne prend pas en compte la clé USB dans le menu de configuration et ce, même si l'option clé USB est cochée.

## 5. La création des images

Il est possible de modifier certains paramètres par défaut en éditant directement les fichiers du répertoire d'installation de PXES :

Modifier le fichier>smb.conf.tpl :
« /etc/pxes-1.0/stock/extra/samba/etc/samba/smb.conf.tpl »
Ces 2 options permettent de restreindre l'accès aux partages des ressources locales des postes clients aux machines de notre choix, ici il s'agit de la classe d'adresses 192.168.0.0/255.255.255.0

`hosts allow = 192.168.0.`

`security = share`

`wins server = XXX.XXX.XXX.XXX`

Dans les rubriques de partages [fd] et [flash] spécifier la ligne suivante pour accéder au lecteur de CDROM et à la clé USB :

`public = yes`

## RDESKTOP :

La connexion aux serveurs Windows fonctionne seulement si l'on s'acquitte du prix des licences.

# 6. La gestion des souris

Il est possible de laisser l'option « autodetect » au paramètre de souris, auquel cas la molette de la souris ne sera pas utilisée.

Pour ne faire qu'une seule image tout en ayant la molette de la souris et la gestion des souris ps/2 et USB, il faut modifier manuellement un fichier de configuration :

`< /opt/pxes-1.0/stock/extra/XFree86-4.3.0/etc/X11/XF86Config-4.tpl >`

Remplacer la ligne :

`Option "Protocol" "${MOUSE_PROTOCOL_PREFIX}${MOUSE_PROTOCOL}"`

par celle-ci :

Commenter les lignes suivantes :

`#${MOUSE_EMULATE_3 buttons_OPTION}`

`#${MOUSE_EMULATE_3_TIMEOUT_OPTION}`

Remplacer la ligne :

`#${Z_axis_MAPPING_OPTION}`

par :

`Option "ZAxisMapping" "4 5"`

Dans une console se connecter en tant que « root » avec la commande `sux` (installer le paquet du même nom s'il n'est pas déjà présent) pour autoriser l'affichage de l'interface graphique en tant que « root » puis lancer le programme avec la commande `pxesconfig`.

Le logiciel génère ensuite une image au fur et à mesure des étapes dans le répertoire « /tmp/pxes ».
Il est alors possible de modifier manuellement certains paramètres.

Splash screen : image de fond d'écran au format `.lss`.

Initial ramdisk : soit générer une nouvelle image, soit reprendre la configuration de la dernière image générée comme base pour générer l'image plus rapidement.
- A la **première étape** choisir le type de fichier généré :
  ISO : pour un boot local depuis le CDROM

- A la **deuxième étape**, choisir le clavier « **fr** » puis le type de souris (laisser « **autodetect** » si toutes les machines n'utilisent pas le même port de branchement) et laisser « **autodetect** » pour la carte réseau ce qui convient à la plupart des machines.

- La **troisième étape** permet de choisir les besoins vis-à-vis du poste client :
  Sélectionner les trois premiers (**RDP**, **XDMCP** et **session locale**) puis avec la deuxième colonne la session activée par défaut.

- Dans une **quatrième étape**, il faut veiller à sélectionner le serveur graphique **Xfree4** puis éventuellement **autodetect** pour le type d'écran. Indiquer « **utiliser un serveur de polices XFS** » puis entrer l'adresse IP du serveur XFS et le port 7100.

- Les étapes suivantes permettent de configurer par défaut les valeurs des paramètres de connexion **X11** et **RDP**. Les laisser à « **ask values after boot** » impose à l'utilisateur d'entrer les bonnes valeurs après le démarrage du client. L'idéal est de fournir des valeurs par défaut puis de recocher « **ask values after boot** » ce qui permet de changer éventuellement l'adresse du serveur auquel on se connecte. Pour RDP, mettre 8 bits au nombre de couleurs (pour Windows 2000).

- Dans la **dernière étape**, il faut changer le mot de passe **root** en veillant à donner un mot de passe générique.

Sélectionner « Terminer » et les images seront ensuite créées dans le répertoire « **/tmp/pxes** ».
Graver l'ISO générée puis booter à partir du CDROM sur la machine cliente.

A la première invite, il est conseillé de sélectionner X11 (choix 2) ou RDP (choix 6). Le choix local permet de lancer une interface graphique sous icewm avec des icônes pour chaque type de connexion (et ainsi basculer d'une session rdp à x11).

## 7. Utilisation des ressources locales du client depuis Linux

Il faut créer un script permettant de modifier les icônes d'utilisation des ressources locales offertes à l'utilisateur en fonction des machines auxquelles il se connecte (script **lecteursnetstat.sh**).

Si aucun script n'est créé, les icônes que nous ajoutons pointeront toujours sur les ressources de la même machine. Un utilisateur qui se connectera sur un deuxième poste client aura toujours accès aux ressources locales de sa première machine.

Ce script doit donc être exécuté à chaque connexion des utilisateurs à KDE :

« **/home/utilisateur/.kde/Autostart/lecteursnetstat.sh** »

Positionner le fichier dans **/etc/skel/.kde/Autostart/lecteursnetstat.sh** pour l'appliquer à chaque nouvel utilisateur.

#!/bin/bash

# Conservation des 8 premiers caractères du nom de l'utilisateur

nom_utilisateur=`whoami`

# Recupération du nom de la machine

machine_user=`echo $DISPLAY | cut -f1 -d ":"`

#Verification de l'activation d'au moins une connexion graphique

if [ "$machine_user" != "" -a "$machine_user" != "localhost" ]; then
#On modifie le fichier d'acces aux lecteurs pour l'utilisateur sur son terminal
#Disquette
echo "[Desktop Entry]"

Comment=Lecteur de disquettes local
Comment[fr]=Lecteur de disquettes local

Encoding=UTF-8

Exec=konqueror "smb://$machine_user/fd"

GenericName=

GenericName[fr]=

Icon=3floppy mount

MIMEType=

Name=disquette terminal

Name[fr]=disquette terminal

Path=

StartupNotify=true

Terminal=false

TerminalOptions=

Type=Application

X-DCOP-ServiceType=

X-KDE-SubstituteUID=false

X-KDE-Username=" > `echo $HOME`/Desktop/disquette desktop

chmod u+rwx,go-rwx `echo $HOME`/Desktop/disquette desktop

#CDROM
echo "[Desktop Entry]"

Comment=Lecteur de CDROM local
Comment[fr]=Lecteur de CDROM local

Encoding=UTF-8

Exec=konqueror "smb://$machine_user/CDROM"

GenericName=

GenericName[fr]=

Icon=CDROM mount

MIMEType=

Name=CDROM terminal

Name[fr]=CDROM terminal

Path=

StartupNotify=true

Terminal=false

TerminalOptions=

Type=Application

X-DCOP-ServiceType=

X-KDE-SubstituteUID=false

X-KDE-Username=" > `echo $HOME`/Desktop/CDROM desktop

fi

chmod u+rwx,go-rwx `echo $HOME`/Desktop/CDROM desktop

echo "[Desktop Entry]"
Comment=cle USB locale
Comment[fr]= cle USB locale
Encoding=UTF-8
Exec=konqueror "smb://$machine_user/flash"
GenericName=
GenericName[fr]=
Icon=3floppy mount
MIMEType=
Name=cle_terminal
Name[fr]=cle_terminal
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=" > `echo $HOME`/Desktop/cle/desktop

chmod u+rwx,go-rwx `echo $HOME`/Desktop/disquette/desktop

<figure><img src="image_3.png" /><figcaption>**Figure 1:** Accès à Linux depuis client léger via PXES et connexion à un serveur Window.
Les ressources locales sont disponibles à droite de l'écran.</figcaption></figure>
## 8. Conclusion

Nous utilisons actuellement ces mini distributions sur une dizaine de machines connectées principalement à Linux. L'avantage de cette solution est la récupération de PC de faible puissance (100 Mhz et 48 Mo de Ram), elle offre de plus la possibilité de se connecter simplement et rapidement depuis toute machine du centre. Le seul désagrément rencontré concerne les clés USB qui ne peuvent être connectées que deux fois ; il faut ensuite redémarrer le poste client pour réutiliser les clés USB.

## 9. Liens utiles

http://arnofear.free.fr/linux/client-legers-1.php

http://pxes.sourceforge.net

http://sourceforge.net/project/showfiles.php?group_id=45684

## 10. Lexique

**GNU** : GNU is Not Unix Projet de réalisation d'un système d'exploitation totalement libre lancé en 1984.

**Linux** : Système d'exploitation complet, fiable, disponible gratuitement, développé à l'origine par Linus Torvalds.

**Debian** : Une des distributions de GNU/Linux les plus populaires pour sa stabilité. L'une de ses caractéristiques principales est due à ses concepteurs : ils insistent pour qu'elle contienne exclusivement du logiciel libre (mais tolère et facilite l'installation de logiciel commercial), que sa conception demeure élégante et conforme aux normes, et qu'elle soit appelée GNU/Linux (car est officiellement recommandée par le projet GNU). www.fr.debian.org

**Samba** est un logiciel libre sous licence GNU supportant le protocole SMB/CIFS. Ce protocole est employé par Microsoft pour le partage de diverses ressources (fichiers, imprimantes, etc.) entre ordinateurs équipés de Windows. Samba permet aux systèmes Unix d'accéder aux ressources de ces systèmes et vice-versa.

**PXE** : Preboot eXecution Environment. Norme d'un système de boot de poste de travail par le réseau.

**TFTP** : Trivial File Transfer Protocol ou Protocole de transfert de fichiers simplifié.

**X11** : X Window System, le système X Window (communément appelé X11 ou simplement X) est un système de fenêtrage pour ordinateurs à affichage graphique par pixels (par opposition à vectoriel) utilisé sous Linux.

**XDMCP** : XDisplay Manager Control Protocol. Protocole d'accès à une session Linux à distance.
**RDP** : Remote Desktop Protocol : Protocole permettant de réaliser un déport d'affichage sous Windows.

**Rdesktop** : Outil permettant d'accéder à un serveur Windows depuis un poste Linux.

**DHCP** : Dynamic Host Configuration Protocol. Protocole TCP/IP chargé d'attribuer dynamiquement une adresse IP à la demande. L'utilisation d'un serveur DHCP permet de configurer de manière automatique les paramètres réseau des machines (adresse IP, Masque de sous-réseau, passerelle par défaut...).

**XFS** : Serveur de polices X fournissant des polices au serveur XFree86 et aux applications affichées sur des postes clients ne disposant pas par défaut des polices requises.

**PXES** : Outil libre et gratuit permettant de générer des mini distributions GNU/Linux qui pourront ensuite, soit être gravées sur CDROM, soit téléchargées via le réseau avec une carte réseau supportant le protocole PXE. Ces distributions sont utilisées pour transformer des anciens postes de travail en terminaux.