Skip to Content

Installation de Linux Terminal Server (LTSP 4.2) sur une Debian Etch

But de ce document

Ce document me sert de mémo pour installer et configurer « Linux Terminal Server (LTSP 4.2) » sur une Debian Etch.

Ce système permet de recycler de vieux ordinateurs en terminaux graphiques. Pour cela, il faut un ordinateur assez puissant (qui fera office de serveur) et avec suffisamment de mémoire vive pour pouvoir gérer les terminaux. Les terminaux peuvent être, par exemple, des pentium 166 avec 32 Mo de mémoire vive et sans disque dur.

Pour seulement 200€, il est possible également d’acheter de vrais terminaux Linux (ou clients légers) comme les t5000 de chez HP :

  •  http://h10010.www1.hp.com/wwpc/fr/fr/sm/WF04a/35943-342061-342061-342061-637147.html

    Les développeurs de LTSP propose même un site pour acheter des terminaux et des cartes réseaux valides pour LTSP :

  •  http://www.disklessworkstation.com/

    Pré-requis

    Avoir installé une Debian avec un serveur X opérationnel et toutes les applications utiles aux terminaux. Pour cela, vous pouvez consulter mon mémo sur l’installation de KDE :

  •  http://www.coagul.org/article.php3 ?id_article=159

    En plus de ce document, je conseille vivement la lecture de la documentation officielle très complète et en français disponible à cette adresse :

  •  http://wiki.ltsp.org/twiki/bin/view/Ltsp/Documentation

    LTSP est un système relativement complexe faisant intervenir plusieurs services qu’il est nécessaire de connaître au moins un minimum avant de se lancer dans l’installation :

  •  Serveur DHCP pour la connexion automatique des terminaux au réseau
  •  Serveur TFTP pour fournir le noyau Linux des terminaux (FTP limité)
  •  Serveur NFS pour fournir le système de fichiers des terminaux
  •  Serveur XDMCP permettant d’exporter le serveur graphique vers les terminaux

    Deux normes pour faire booter des terminaux

    Il existe au moins deux normes pour booter un ordinateur sur le réseau :

    PXE

    Cette norme est maintenant reconnue en standard par quasiment toutes les cartes réseaux et par toutes les cartes mères récentes.

    Sur une carte mère compatible PXE, il est possible de paramétrer le bios pour que le boot se fasse directement sur le réseau. Malheureusement ce système n’existe que sur les ordinateurs récents (Pentium IV) alors qu’il est surtout intéressant d’utiliser des vieux ordinateurs pour en faire des terminaux graphiques.

    Cependant cette méthode de boot est plus rapide et plus fiable, car elle ne nécessite pas de lecteur de disquette. De plus, le fait d’installer une carte réseau PXE sur un veille ordinateur dont le bios ne connaît pas cette norme permet quand même de booter sur le réseau (Testé avec une carte 3COM 3C905CX à 30€).

    Avec cette norme, le terminal cherche un bootloader spécial (pxelinux.0) dont l’adresse est fournie par le serveur DHCP.

    Etherboot

    Cette norme est un système libre et très flexible qui permet de faire booter même de vieux PC via le réseau à l’aide de différentes méthodes (Disquettes, CD-ROM, Lilo, Carte Réseau spéciale avec ROM Etherboot,...).

    Il faut donc utiliser cette norme si la carte réseau ou la carte mère du terminal ne permet pas d’utiliser la norme PXE.

    Avec cette norme, le terminal cherche un noyau spécial (vmlinuz-2.4.26-ltsp-2) dont l’adresse est fournie par le serveur DHCP.

    Choix entre PXE et Etherboot

    Si votre carte réseau ne reconnaît pas la norme PXE, je conseil vivement de la remplacer (30€) car cela évite de booter sur un lecteur de disquettes.

    Mise en place de l’utilitaire d’installation

    LTSP utilise des scripts permettant d’automatiser l’installation. Ces scripts permettent également de vérifier que tous les services fonctionnent correctement.

    Ces scripts sont disponibles dans ce paquet :

    # aptitude install ltsp-utils

    Les scripts disponibles suite à cette installation sont les suivants :

  •  ltspadmin : Script principal pour télécharger et configurer les paquets
  •  ltspcfg : Script de configuration pouvant être appelé directement par ltspadmin
  •  ltspinfo : Pas d’info sur ce script :-)

    Téléchargement des paquets de LTSP

    La commande « ltspadmin » installée précédemment, permet de télécharger les paquets.

    # ltspadmin

    Ensuite, il faut sélectionner le menu « Install/Update LTSP Packages » et suivre les indications.

    Sur l’écran de sélection des paquets, il faut télécharger tous les paquets.

    Lors du lancement de «  ltspadmin  », les paramètres de configuration seront enregistrés dans le fichier « /etc/ltsp.conf ».

    Configuration de LTSP

    Toujours avec l’utilitaire « ltspadmin  », le menu « Configure LTSP » permet de configurer le système.

    Dans le menu « Configure LTSP » de « ltspadmin  », il y a deux sous-menus :

  •  Show de status of all services -> Permet de vérifier l’installation et la configuration des services.
  •  Configure the services manually -> Permet de configurer les différents services comme indiqué dans les chapitres suivants.

    1 - RunLevel

    Sous Debian, le RunLevel par défaut est 2 alors qu’il est à 5 sur la plupart des autres distributions, mais cela ne pose pas de problème.

    2 - Interface Selection

    Possibilité de sélectionner l’interface réseau à utiliser pour les clients.

    3 - DHCP Configuration

    Pour faire fonctionner LTSP, il est impératif de disposer d’un serveur DHCP opérationnel. Dans mon cas, le réseau utilise déjà un serveur DHCP qui n’est pas le même que le serveur LTSP.

    Pour avoir plus d’informations sur l’installation d’une serveur DHCP, vous pouvez consulter mon mémo sur le sujet

  •  http://www.coagul.org/article.php3 ?id_article=167

    Pour faire fonctionner LTSP, j’ai dû commencer par ajouter la ligne suivante dans le fichier « /etc/dhcp3/dhcpd.conf », pour indiquer l’adresse du serveur LTSP, car celui-ci est différent du serveur DHCP. Dans le cas où tout est sur le même serveur, cette ligne n’est pas nécessaire (Remplacer « pgltsp » par le nom ou l’adresse IP du serveur ltsp) :

    next-server         pgltsp;

    Ensuite, il faut ajouter une ligne pour indiquer le chemin du système de fichiers utilisé par les terminaux qui sera utilisé via NFS (Remplacer « pgltsp » par le nom ou l’adresse IP du serveur ltsp) :

    option root-path    "pgltsp:/opt/ltsp/i386";

    Pour finir, il faut indiquer le chemin du noyau pour un boot avec la norme Etherboot qui sera obtenu par le serveur TFTP :

    filename            "/lts/2.6.16.1-ltsp-2/bzImage-2.6.16.1-ltsp-2";

    Ou le chemin du « bootloader » pour un boot avec la norme PXE :

    filename                "/lts/2.6.16.1-ltsp-2/pxelinux.0";

    Remarque1 : Il est important de vérifier que le chemin « /opt/ltsp/i386 » contient bien l’arborescence complète d’un système Linux (/bin, /dev, /etc,...) qui sera utilisé par les terminaux via NFS.

    Remarque2 : Il faut vérifier également que le noyau « bzImage-2.6.16.1-ltsp-2 » ou le bootloader « pxelinux.0 » existe bien dans le dossier « /tftpboot »

    ATTENTION  : Pour faire cohabiter les normes PXE et Etherboot sur le serveur DHCP, il est obligatoire d’utiliser une des deux normes par défaut et d’utiliser l’autre en spécifiant les adresses MAC des terminaux qui l’utiliseront.

    L’exemple complet du fichier « /etc/dhcp3/dhcpd.conf  » ci-dessous, permet d’utiliser la norme «  pxe  » par défaut pour tous les ordinateurs du réseau qui boot via la carte réseau et d’utiliser la norme «  Etherboot  » uniquement pour l’ordinateur « ws001 » dont l’adresse mac est « 00:a0:cc:66:75:51 »

    ddns-update-style none;
    option domain-name "mondomaine.com";
    option domain-name-servers 192.0.0.4, 194.2.0.50;
    option routers 192.0.0.151;

    default-lease-time 3600;
    max-lease-time 7200;
    log-facility local7;

    next-server             pgltsp;
    option root-path        "pgltsp:/opt/ltsp/i386";
    filename                "/lts/2.6.16.1-ltsp-2/pxelinux.0";

    subnet 192.0.0.0 netmask 255.255.255.0 {
     range 192.0.0.170 192.0.0.254;
    }

    host ws001 {
     hardware ethernet       00:a0:cc:66:75:51;
     filename                "/lts/2.6.16.1-ltsp-2/bzImage-2.6.16.1-ltsp-2";
    }

    Dans le cas de la mise ne place de plusieurs serveurs LTSP, c’est le serveur DHCP qui doit aiguiller le terminal vers le bon serveur.

    Par exemple la section suivante à ajouter au fichier « /etc/dhcp3/dhcpd.conf  » permet d’utiliser un serveur LTSP spécifique (achat-ltsp) pour le terminal ws021 possédant l’adresse MAC indiquée :

    host ws021 {
           fixed-address           192.0.0.21;
           hardware ethernet       00:0a:5e:51:78:f7;
           next-server             achat-ltsp;
           option root-path        "achat-ltsp:/opt/ltsp/i386";
           filename                "/lts/2.6.16.1-ltsp-2/pxelinux.0";
    }

    4 - TFTP Configuration

    Le serveur TFTP (Serveur FTP limité) permet de fournir aux terminaux le noyaux linux ou le bootloader qui sera utilisé pour le démarrage.

    ATTENTION : Sur Débian, il existe trois serveurs «  tftp  » (tftpd, tftpd-hpa et atftpd) Le premier fonctionne uniquement avec la norme Etherboot et les deux autres avec les normes Etherboot et PXE (Ils supportent l’option tsize). Il est donc conseillé de ne pas utiliser le premier :

    # aptitude install tftpd-hpa

    Ensuite, j’ai dû activer le serveur «  tftpd  » en modifiant manuellement la ligne ci-dessous dans le fichier « /etc/inetd.conf  » :

    tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot

    Dans mon cas, j’ai modifié la fin de la ligne en remplaçant « /var/lib/tftpboot » par « /tftpboot  »

    Ensuite, il faut relancer «  inetd  » pour prendre en compte les modifications :

    # /etc/init.d/openbsd-inetd reload

    Remarque 1  : Après l’installation et la configuration de « tftpd  », il faut relancer le menu « Configure LTSP » pour que le programme «  ltspadmin  » refasse les checking.

    Remarque 2 : Pour avoir plus de logs sur l’utilisation du serveur «  tftpd  » lors du démarrage du terminal, il faut ajouter l’option « -v » avant « -s /tftpboot » dans « /etc/inetd.conf ».

    5 - Portmapper Configuration

    Pour valider ce menu, j’ai dû installer le paquet suivant  :

    # aptitude install portmap

    A la question « Portmap doit-il se limiter à l’adresse de bouclage 127.0.0.1 ? », il faut répondre « Non »

    Remarque : Lors de ma dernière installation d’un serveur LTSP, ce paquet était déjà installé

    6 - NFS Configuration

    Pour valider ce menu, j’ai dû installer le paquet suivant  :

    # aptitude install nfs-kernel-server

    Ensuite, le menu « 10 - Create /etc/exports entries » de « ltspadmin  » permet d’ajouter dans le fichier de configuration de NFS (/etc/exports) les lignes nécessaires au fonctionnement de NFS.

    Pour information, voici le contenu du fichier de configuration de NFS « /etc/exports » :

    /opt/ltsp               192.0.0.0/255.255.255.0(ro,no_root_squash,sync)
    /var/opt/ltsp/swapfiles 192.0.0.0/255.255.255.0 rw,no_root_squash,async)

    Remarque : Le chemin de cette dernière entrée n’existe pas, mais cela ne semble pas gêner le fonctionnement du système.

    Une fois le fichier de configuration de NFS correct, il est possible de lancer le démon :

    # /etc/init.d/nfs-kernel-server restart

    7 - XDMCP configuration

    Ce menu permet de configurer KDM, GDM ou XDM pour qu’il autorise les clients légers à accéder au serveur X. Par défaut, le serveur X n’autorise pas les accès distants.

    A la question « Do you want to disable the graphique login », j’ai répondu « n », car je souhaite avoir un accès graphique sur le serveur.

    Suite à cette validation, le fichier « /etc/kde3/kdm/kdmrc », et la section «  Xdmcp  » doit contenir au moins ces deux lignes :

    [Xdmcp]
    Enable=true
    Willing=/etc/kde3/kdm/Xwilling

    Ensuite il faut recharger la configuration de KDM en saisissant la commande suivante :

    # /etc/init.d/kdm reload

    Pour finir, il faut que la résolution des noms soit opérationnelle. Le plus simple pour cela est d’utiliser le menu « 9 - Create /etc/hosts.allow entries » de « ltspadmim  »

    Ensuite pour vérifier qu’il est possible de se connecter au serveur X à distance, il faut depuis un autre poste ayant un serveur X correctement configuré, saisir la commande suivante :

    $ Xnest :1 -query NomDuServeur

    Remarque : Installer le paquet «  xnest  », ci la commande ci-dessus n’est pas disponible.

    Pour faire un test en plein écran, il faut saisir la commande suivante sous root :

    # X :1 -query NomDuServeur

    Remarque : Pour quitter ce nouvel écran, il faut faire « CTRL + ALT + F7 » et arrêter la commande »

    Si ça ne fonctionne pas, il ne faut pas hésiter à regarder les logs sur le serveur :

    # tail -f /var/log/syslog

    8 - Create /etc/hosts entries

    Je dispose d’un serveur DNS Bind, mais j’ai préféré ajouter les entrées des clients LTSP, dans le fichier /etc/hosts du serveur LTSP. Cela me paraissant plus simple à gérer.

    Donc, j’ai répondu « y » a la question « Do you want to add entries to /etc/hosts » et celui-ci a créé 255 entrées nommées de ws000 à ws254 pour les adresses IP de 192.168.0.0 à 192.168.0.254.

    Remarque1  : Mais cela ne semble pas fonctionner correctement car je n’arrive pas à configurer un terminal par son nom. Je le configure par son adresse IP ou son adresse Mac. Je pense que ce problème est lié au fait que mon serveur DHCP n’est pas le même que mon serveur LTSP.

    9 - Create /etc/hosts.allow entries

    Ce fichier permet d’autoriser les postes du réseau à accéder au serveur LTSP. J’ai donc répondu « y ».

    10 - Create the /etc/exports file

    J’ai déjà utilisé ce menu au chapitre « 6 - NFS Configuration » donc, je ne l’ai pas utilisé une nouvelle fois.

    11 - Create lts.conf file

    Le fichier « /opt/ltsp/i386/etc/lts.conf » donne la configuration par défaut des clients. J’ai donc répondu « y ».

    Configuration des terminaux

    Toute la configuration des terminaux est faite sur le serveur dans le fichier « /opt/ltsp/i386/etc/lts.conf » Par défaut, voici son contenu :

    [Default]
           SERVER             = 192.0.0.5
           XSERVER            = auto
           X_MOUSE_PROTOCOL   = "PS/2"
           X_MOUSE_DEVICE     = "/dev/psaux"
           X_MOUSE_RESOLUTION = 400
           X_MOUSE_BUTTONS    = 3
           USE_XFS            = N

    La section [Default] est valable pour tous les terminaux.

    Remarque  : Vérifier que l’adresse IP de SERVER correspond bien à celle du serveur LTSP.

    Pour activer la molette de la souris, j’ai modifié la ligne suivante :

    X_MOUSE_PROTOCOL   = "ImPS/2"

    Pour avoir un clavier Français Azerty, j’ai ajouté ces deux lignes :

    XKbModel    = "pc105"
    XkbLayout   = "fr"

    Pour faire fonctionner en mode 800x600 un terminal spécifique qui ne supportait pas le 1024x768, j’ai ajouté la section suivante en me basant sur l’adresse MAC du terminal :

    [00:A0:CC:66:75:51]
           XSERVER            = XF86_SVGA

    J’aurais pu utiliser aussi l’adresse IP, mais celle-ci est susceptible de changer :

    [192.0.0.191]
           XSERVER            = XF86_SVGA

    Normalement il est possible d’utiliser le nom du terminal, mais dans mon cas cela ne fonctionne pas :

    [ws191]
           XSERVER            = XF86_SVGA

    Pour mettre un taux de rafraîchissement à 60Hz pour un terminal avec écran plat, j’ai ajouté la section suivante en me basant sur l’adresse MAC du terminal :

    [00:0a:5e:51:78:f7]
           X_VERTREFRESH      = "60"

    Pour mettre une résolution de 1280x1024 avec un taux de rafraîchissement à 60Hz sur un terminal spécifique, j’ai ajouté cette section :

    [00:0a:5e:51:78:f7]
           X_VERTREFRESH      = "60"
           X_MODE_0           = 1280x1024

    Pour faire fonctionner une souris USB sur un terminal spécifique, j’ai ajouté cette section :

    [00:14:c2:05:93:dd]
           X_MOUSE_DEVICE     = "/dev/input/mouse0"

    Après chaque modification de ce fichier, il est possible de faire « CTRL+ALT+Backspace » sur le terminal pour prendre en compte les modifications sans devoir le redémarrer complètement.

    Pour les autres options disponibles, je conseille la lecture du chapitre « Paramètres du fichier lts.conf » de la documentation officielle :

  •  http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-fr.html#AEN1294

    Remarque  : Pour connaître l’adresse IP ou l’adresse MAC de la carte réseau d’un nouveau terminal, il faut regarder les logs au début du démarrage du terminal ou les logs dans le fichier «  syslog  » du serveur DHCP.

    Démarrage des terminaux avec la norme Etherboot

    Création d’une disquette pour démarrer (booter) un terminal

    Pour créer une disquette, il faut se rendre sur le site ci-dessous :

  •  www.rom-o-matic.net

    Sur la première page, il faut sélectionner la version de la norme « Etherboot » à utiliser. Je conseille d’utiliser la dernière version stable, mais il ne faut pas hésiter à essayer une autre version en cas de problème de boot.

    Sur le deuxième écran il faut sélectionner le driver correspondant à la carte réseau du terminal. Pour trouver plus facilement le bon driver, il faut utiliser la page spéciale en cliquant sur le lien « here ». Si vous ne connaissez pas le type de votre carte réseau, il est possible de booter sur un live-cd comme la Knoppix et de faire un «  lspci  » pour connaître le type de la carte.

    Pour finir, il faut sélectionner le type de ROM par défaut « Floppy bootable ROM (.zdsk) ». et cliquer sur le bouton « Get Rom »

    Ensuite pour enregistrer l’image sur une disquette depuis un poste Linux, il faut saisir la commande suivante :

    # cat NomDuFichier.zdsk > /dev/fd0

    Pour un poste Windows, il faut utiliser l’utilitaire « rawrite » disponible à cette adresse :

  •  http://www.minix-vmd.org/pub/Minix-vmd/dosutil/

    Il faut renommer l’image téléchargée en « boot.img » et sous Dos, il faut lancer la commande suivante pour créer la disquette :

    # rawrite2 -f boot.img -d A

    Création d’un CD-ROM pour démarrer (booter) un terminal

    La procédure est la même que pour une disquette, sauf qu’il faut utiliser le type de ROM « .liso » et non pas « .iso » et encore moins « .zdsk ».

    Ensuite, il faut graver cette image comme une image iso et non pas comme un simple fichier.

    Remarque1  : Avec le logiciel de gravure « Prassi Primo CD » sous Windows, j’ai dû renommer le fichier « .liso » en « .iso » pour qu’il veuille bien me graver l’image. Avec K3B sous Linux, ce n’est pas nécessaire.

    Remarque2  : Avec le même PC et la même carte Ethernet, le boot en utilisant le driver générique « Etherboot-pci-all » fonctionne avec la disquette mais pas avec le cd-rom. Pour arriver à booter depuis le cd-rom, j’ai dû utiliser le driver spécifique de la carte réseau. Avec le driver générique, j’avais le message d’erreur suivant :

    Could not find Kernel image : etherboo.t-p

    Démarrage des terminaux avec la norme PXE

    Avec cette norme, il n’y a que le bios de la carte mère à configurer pour indiquer qu’il faut booter via la carte réseau.

    Par exemple sur un portable DELL Latitude, il faut modifier la séquence de boot pour mettre la ligne « Onboard NIC » en premier

    Connexion et installation d’une imprimante sur un terminal

    Configuration du terminal

    Sur un terminal, il est possible de connecter jusqu’à 3 imprimantes simultanément en utilisant les ports parallèles, séries ou USB.

    Pour ajouter une imprimante, il faut ajouter ces lignes dans la configuration du terminal du fichier « /etc/lts.conf » :

    [192.168.0.100]
    PRINTER_0_DEVICE = /dev/lp0
    PRINTER_0_TYPE   = P

    La première ligne indique comment est connecté l’imprimante sur le terminal :

  •  Port parallèle : /dev/lp0
  •  Port série : /dev/ttyS0
  •  Port USB : /dev/usb/lp0

    La deuxième ligne indique qu’il faut démarrer un serveur d’impression en local qui écoutera sur le port tcp 9100. Le paramètre « P » indique qu’il s’agit d’une imprimante parallèle. Pour une imprimante série ou USB, il faut utiliser le paramètre « S »

    ATTENTION : Après avoir ajouté ces lignes, il faut redémarrer le terminal, car le serveur d’impression est lancé pendant la phase de boot de celui-ci.

    Pour la deuxième imprimante connectée qui écoutera sur le port tcp 9101, il faut utiliser les paramètres « PRINTER_1_DEVICE » et « PRINTER_1_TYPE ».

    Pour la troisième imprimante connectée qui écoutera sur le port tcp 9102, il faut utiliser les paramètres « PRINTER_2_DEVICE » et « PRINTER_2_TYPE ».

    Remarque : Pour connaître les autres paramètres concernant l’impression, il faut consulter la documentation officielle.

    La commande suivante permet de vérifier que le terminal est bien en écoute sur le port 9100 :

    # nmap 192.168.0.100 | grep 9100
    9100/tcp open  jetdirect

    Configuration du serveur

    Sur le serveur LTSP, il faut créer une nouvelle imprimante (avec Kprinter ou CUPS) de type réseau en indiquant l’adresse IP du terminal et le port 9100 ou 9101 ou 9102.

    Résolution des problèmes au démarrage :

    Sur ce point, je conseille vivement la lecture du chapitre « Diagnostic et mise au point » de la documentation officielle :

  •  http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-fr.html#AEN874

    Mais voici un bref résumé :

    Type de problème Résolution
    L’ordinateur ne boot pas et l’adresse MAC et le type de la carte réseau ne s’affichent pas. Essayer avec un autre driver ou une autre version du driver Etherboot.Essayer avec le driver spécifique à la carte et non pas le driver all-pciProblème de lecteur de disquettes ou de CD-ROM.Carte réseau non reconnue -> Essayer avec une autre carte réseau.
    Reboot automatique après le chargement de la ROM Essayer avec un autre driver ou une autre version du driver Etherboot.
    Le message suivant apparaît « could not find kernel image » Si le système LTSP fonctionne avec d’autres terminaux, essayer avec un autre driver ou une autre version du driver Etherboot.
    L’affichage reste bloqué sur la recherche du serveur DHCP Problème dans la configuration du serveur DHCP.Essayer avec un autre driver ou une autre version du driver Etherboot.
    Les messages de démarrage du noyau ne s’affichent pas. Problème dans la configuration de TFTP.
    Le noyau démarre, mais affiche un kernel panic. Problème de configuration de NFS
    Le serveur X démarre mais seulement avec une croix comme curseur sur un fond gris Problème de configuration de XDMCPVérifier l’adresse IP du fichier « ltsp.conf »

    Problèmes rencontrés

    Boot impossible depuis un CD-ROM

    Étant donné que certains de mes ordinateurs ne disposent pas de lecteurs de disquettes, mais uniquement d’un lecteur de CD-ROM, j’ai essayé de graver des images ISO en provenance du site www.rom-o-matic.net, mais sans succès.

    En bootant sur le cd-rom, la carte réseau n’était pas détectée, l’adresse mac n’était pas affichée et le démarrage restait bloqué sur l’écran :

    Avec l’aide de la liste [Bourginux], j’ai finis par trouver qu’il fallait utiliser le format «  .liso  » et non pas le format «  .iso  » :

  •  http://www.coagul.org/article.php3 ?id_article=151

    Problème de Configuration de DHCP

    J’ai eu du mal à faire fonctionner LTSP, car mon serveur DHCP n’est pas le même que le serveur LTSP et j’ai dû ajouter cette ligne pour l’indiquer :

    next-server MonServeurLTSP

    Problème avec la carte réseau Digitale 21143 PC

    Cette carte réseau fonctionne correctement sous Linux et est reconnue avec un «  lspci  » comme une « dec 21142/43 », mais après avoir essayé plusieurs drivers Etherboot de www.rom-o-matic.net, je n’ai pas réussi à la faire booter sur le réseau. Voici les drivers testés :

  •  Etherboot 5.3.9 : Etherboot-pci-all -> Driver impossible à télécharger
  •  Etherboot 5.3.8 : Tulip / ds21142
  •  Etherboot 5.3.7 : Tulip / ds21142
  •  Etherboot 5.3.7 : Etherboot-pci-all
  •  Etherboot 5.2.6 : Tulip / ds21142
  •  Etherboot 5.2.2 : Driver non trouvé avec cette version d’Etherboot

    Pour tous ces drivers, le démarrage restait bloqué sur le message suivant :

    .TX Timeout !

    Problème de configuration du serveur DHCP

    Lors du boot d’un poste client juste après la détection de la carte réseau et l’affichage de l’adresse MAC, le démarrage du client est resté bloqué sur ce message :

    Searching for Server (DHCP)
    F?.F?.F?

    Cela signifie que le serveur DHCP a bien été détecté, mais qu’il est mal configuré pour les clients qui boot sur le réseau.

    Problème avec la configuration de TFTP

    En utilisant le paquet « tftpd », j’ai eu le message suivant lors du boot avec la norme PXE :

    TFTP server does not support the tsize option
    Boot failed

    Pour régler ce problème, il faut remplacer le paquet «  tftpd  » par le paquet « tftpd-hpa », car celui-ci supporte l’option «  tsize  »

    Problème avec la carte réseau D-LINK DFE 530 TX

    Après le boot du noyau trouvé dans tftp et juste avant le montage de la partition NFS, le démarrage restait bloqué sur le message suivant :

    crc error <6> Freeing initrd memory
    Freeing unused Kernel memory : 88k freed

    Ou aléatoirement sur le message suivant

    Kernel panic : No init found

    Normalement ce message apparaît quand le système de fichiers dans le partage NFS est vide mais ce n’était pas mon cas.

    A la place du driver « D-LINK 530 TX », j’ai fait un essai avec le driver générique « Etherboot 5.3.7 : Etherboot-pci-all » et le boot s’est passé correctement.

    D’une manière générale, ce driver générique a fonctionné pour toutes mes cartes réseaux et je le conseille donc vivement.

    Problème de carte graphique

    Sur de vieux PC (Pentium 166), la carte graphique ne supporte pas le mode 1024x768, et le serveur X refusait de démarrer en mettant le message suivant :

    Fatal server error
    no screen found

    J’ai dû dans le fichier « lts.conf » remplacer la ligne « XSERVER=auto » par la ligne « XSERVER=XF86_SVGA » pour démarrer le serveur X en 800x600.

    Le boot ne fonctionne pas toujours du premier coup en PXE

    Lors du démarrage des terminaux bootant en PXE, il arrive très régulièrement (pour ne pas dire toujours) que le boot ne fonctionne pas du premier coup.

    Je fais donc CTRL+ALT+SUPPR 1 ou 2 fois pour arriver à faire booter le terminal.

    Problèmes suite au changement de configuration réseau du serveur LTSP

    Après avoir changé l’adresse IP et la classe d’adresses de mon serveur LRSP, j’ai du effectuer plusieurs réglages pour le faire fonctionner :

  •  Mettre la nouvelle adresse IP du serveur LTSP dans le fichier « /opt/ltsp/i386/etc/lts.conf »
  •  Revoir les entrées de « /etc/hosts » en utilisant éventuellement «  ltspadmin  »
  •  Revoir les entrées de « /etc/hosts.allow » en utilisant éventuellement «  ltspadmin  »
  •  Revoir les entrées de « vim /etc/exports » en utilisant éventuellement «  ltspadmin  »

    Remarque  : Pour ce dernier point, j’ai du corriger le fichier manuellement, car «  ltspadmin  » indiquait un chemin erroné.

    Problème carte réseau terminal HP t5000 avec le noyau 2.6.17.8 de LTSP

    Lors du chargement du noyau 2.6.17.8 via PXE sur un terminal HP t5000, j’ai obtenu le message suivant :

    ERROR! dhcpd failed!
    Kernel panic – not syncing: Attempted to kill init!

    Pour régler ce problème, j’ai utilisé le noyau précédent « 2.6.16.1 »

    Défaut d’affichage du curseur avec terminal HP t5000 et LTSP 4.2

    Avec LTSP 4.2 et un terminal HP t5000, le curseur de la souris est affiché par moment avec un gros carré noir. Je n’ai pas ce problème avec d’autres terminaux ni avec ce terminal sous LTSP 4.1

    Ce problème est lié à Xorg qui ne détecte pas correctement la carte graphique et la mémoire du terminal. Pour contourner ce problème, il faut indiquer explicitement le type et la mémoire de la carte graphique. Voici un exemple de configuration complète d’un de mes terminaux :

    [00:17:a4:f4:7a:b2]
           XSERVER         = "via"
           X_VIDEORAM      = "16384"
           X_COLOR_DEPTH   = "24"
           X_MODE_0        = "1280x1024"
           X_HORZSYNC      = "60-70"
           X_VERTREFRESH   = "60-75"

    Problème avec la résolution 1280x1024

    Quelque soit le terminal utilisé et la version de LTSP, je n’ai jamais réussi à utiliser la résolution d’affichage « 1280x1024 ». Le maximum que j’ai pu atteindre est « 1280x960 ».

    Pour régler ce problème, il fallait simplement ajouter la ligne suivante au fichier « lts.conf » :

    X_HORZSYNC = "60-70"

    Problème de fonctionnement de TFTP

    Sur un nouveau serveur LTSP en voulant démarrer mon premier terminal via PXE, il est resté bloqué sur le message suivant :

    PXE-E32 TFTP OPEN TIMEOUT
    PXE-MOF exiting intel PXE POM
    error: non system disk or disk error

    Comme mon serveur TFTP était bien opérationnel et que le chemin vers le noyau était correcte, j’ai cherché et j’ai fini par trouvé que le problème venait de la configuration de DHCP et de la résolution des noms. Pour régler ce problème, j’ai remplacé dans la configuration du serveur DHCP le nom du serveur par son adresse IP sur les lignes « next-server » et « option root-path ».

    Autres sources d’informations en cas de problèmes

    Ce document contient les problèmes rencontrés par le laboratoire de CIL-CETRIL durant sa progression dans les méandres du boot PXE :

  •  http://www.cetril.org/IMG/pdf/Journal_des_erreurs_ltsp.pdf

    Historique des modifications

    Version Date Commentaire
    0.1 23/02/05 Création par Tony GALMICHE
    0.6 12/07/06 Mise à jour suite à installation troisième serveur LTSP
    0.7 11/12/06 Mise à jour suite à l’installation d’un terminal HP 5000 sous LTSP 4.2
    0.83 03/04/07 Correction du problème du chapitre « Défaut d’affichage du curseur avec terminal HP t5000 et LTSP 4.2 »
    0.9 03/04/07 Ajout chapitre « Installation d’une imprimante sur un terminal »
    1.0 31/03/08 Mise à jour suite à l’installation d’un nouveau serveur
  • Commentaires

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Merci pour ton intéret Tony.

    Je suis d’accord quand au fait qu’un affichage 3D sur un terminal requière qu’une grande quantité d’information transite sur le réseau, mais je n’ai pas l’impression que le lien à 100 Mbps sature, je referai des tests.

    Il y a peut être une différence pour le terminal entre l’affichage classique, tel que le bureau ou le navigateur, et une application 3D. Les données qui transitent ne sont peut être pas du même type, d’où la nécéssité d’installer les pilotes pour activer l’accélération graphique.
    Si le principe était le même, à savoir une déportation de l’affichage sur le terminal, pourquoi est-il alors nécéssaire d’activer l’accdélération graphique sur le terminal ?

    Pour info, si les librairies OpenGL ne sont pas présentes sur le serveur (dans /usr/lib/), une application utilisant OpenGL ne se lancera pas sur le client léger, çe qui paraît logique, puisque l’application est exécutée sur le serveur.

    Autre info, lorsque le jeux est lancé, l’utilisation du processeur sur le serveur (P3 550Mhz) est proche des 100%, et l’utilisation du processeur sur le client léger (Barton 2600+) est d’environ 25%, accaparés par Xorg.

    Des tests sont donc à effectuer avec un processeur moins puissant et éventuellement une carte graphique moins puissante (j’ai testé avec une GeForce 4 MX 440) sur le lient leger. Il faudrait pour cela que j’arrive à contruire mon pilote pour pouvoir utiliser une carte graphique nVidia plus ancienne (ou alors il faut que trouve une version précompilé des pilotes Legacy GPU version).

    Ce serai effectivement interessant de pouvoir faire tourner des jeux ou autre application en 3D sur des terminaux dont la configuration est plustôt pauvre. L’activité du processeur sur le terminal est tout de même non négligeable ce qui laisse à penser qu’il faut tout de même une certaine puissance pour ce genre d’application.

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Merci beaucoup pour cette réponse. Je suis surpris d’apprendre qu’il est possible de jouer à Tux Racer sur un terminal. Je ferai un test dés que possible car pour la maison, ça m’intéresse.
    Concernant les performances, à mon avis, la limitation se situe au niveau du réseau, car le volume d’information transmis par la carte graphique avec accélération 3D dépasse les limites d’un réseau à 100Mbps. Il faudrait donc vérifier que le réseau est bien à 100Mbps et non pas à 10Mbps. L’idéal serait de pouvoir faire un test avec un réseau à 1000Mbps.

    A bientôt. Tony

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Voici des nouvelles de l’accélération graphique, le meilleur moyen de savoir si ça fonctionne est de tester, chose que j’ai faite.

    J’ai utilisé les drivers nvidia précompilés disponible ici (voir mes liens précédent). A noter que ceux-ci ne sont valables que pour les GPU GeForce 3 et suppérieur.
    Pour les GeForce 2 et antérieur il faut utiliser la Legacy GPU version (voir le site de NVidia) et construire son propre pilote comme expliqué dans la partie Create the driver yourself. J’ai essayé cette méthode mais je n’y suis pas arrivée, une fois les pilotes installés, j’ai le message du genre "Invalid module format" sur le client léger. Peut être une erreur dans les options de configuration du noyau, il y en a tellement...

    Bref, toujours est-il que ça marche !! Par exemple, sans les pilotes installés pas moyen de lancer une application OpenGL tel que Planet Penguin Racer (un classique). Après l’installation, le logo NVvida s’affiche au démarrage du client léger et je peux utiliser l’ex Tux Racer.

    C’est toujours le serveur qui prend en charge le jeux mais l’accéléartion graphique à besoin d’être active sur le client pour que ça fonctionne. C’est quand même un peu flou pour moi tout ça. Par exemple, que faut-il faire pour augmenter les performances ? Prendre un serveur plus musclé (je pense), avoir une carte graphique plus puissante sur le client léger (je ne sais pas), avoir une carte graphique plus puissante sur le serveur ? (je ne pense pas)

    Je précise que sur le serveur j’ai une carte ATI et que ses pilotes propriétaires ne sont pas installés, il semble donc que la carte graphique sur le serveur n’ai pas d’influence.

    Reste maintenant à trouver une méthode pour les autres cartes accélératrices.

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Après lecture rapide des liens que tu proposes, le but est seulement d’utiliser le driver propriétaire nVidia au lieu du simple vesa utilisé par Défaut. Le seul intérêt à mon avis est de pouvoir monter dans les résolutions (160x1280), mais en aucun cas l’accélération 3D ne sera opérationnel (à mon avis).

    A bientôt. Tony

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Concernant le montage de l’arborescence, ce que je cherche ferai justement partie des détails. Il me semble que les scripts /opt/ltsp/i386/etc/rc.sysinit et /opt/ltsp/i386/etc/rc.early_sysinit contribuent au montage de ces dossiers, mais pas de tous, et je n’en n’ai pas encore bien compris le fonctionnement.

    Pour l’accélération graphique, je ne sais effectivement pas trop comment ça fonctionne et si c’est vraiment possible.

    Cependant, ces quelques liens ci-dessous, spécifiques aux cartes nVidia me laissent croire qu’il y a une possibilité (ou alors il s’agit juste d’installer les pilotes nVidia propriétaires), mais je peux me tromper.

    - un lien qui date un peu

    - un peu plus récent, pour la version 4.1

    - d’actualité, pour la version (fraichement sortie) 4.2 update 2

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Bonjour. Le montage se fait effectivement via NFS, mais je n’ai jamais trop cherché à rentrer dans le détail.

    Concernant l’accélération 3D, cela n’est pas possible avec des terminaux. Et même si cela était possible, je pense que cela saturerait très rapidement le réseau.

    A bientôt.

    Tony

    Installation de Linux Terminal Server (LTSP 4.2) sur une Debian

    Bonjour, bon article qui s’enrichit peu à peu au fil des révisions.

    Ce que l’article ne dit pas et que j’aimerais savoir, c’est comment l’arorescence de LTSP située sur le serveur dans /opt/ltsp/i386/ se retrouve sur le client légé.

    Il me semble que pour certains dossiers il s’agit d’un montage NFS, j’ai remarqué cela car en copiant un programme dans /opt/ltsp/i386/bin/ il devient immédiatement accéssible sur le client légé, mais qu’en est-il des autres dossier ?

    Lorsque je copie un module dans /opt/ltsp/i386/lib/modules/2.6.17.3-ltsp-1/kernel/drivers/video/ (à tout hasard pour activer l’accélération graphique, mais ce n’est qu’un exemple), il n’est pas accéssible depuis le client légé même après un redémarrage, ce qui j’imagine, recharge l’arborescence du client légé.

    Si quelqu’un a des éléments de réponse...
    Merci d’avance.

    > Installation de Linux Terminal Server (LTSP 4.1) sur une Debia

    Merci pour ta relecture et n’hésite pas à me signaler les problèmes quand tu ferras tes essais.

    > Installation de Linux Terminal Server (LTSP 4.1) sur une Debia

    Salut Tony,

    Comme promis je lis cet article. Je compte bien le tester donc pour l’instant mes remarques ne concernent que la forme.

  •  les signes doubles du genre : sont précédés et suivis d’un espace ( cf http://www.interpc.fr/mapage/billaud/ponctua.htm#doubles)
  •  dans le titre au début il manque le l de terminal
    En tout cas merci pour ce document qui représente vraiment un gros travail.
  • > Installation de Linux Terminal Server (LTSP 4.1) sur une Debia

    Bonsoir Piou,

    Avant de mettre un article en ligne, je fais toujours l’installation au moins deux fois. Dans ce cas, je l’ai fais sur deux ordinateurs complètement différents et je suis arrivé au même résultat.

  •  C’est rassurant :-)
    Mais il vrai que l’idéal serait que quelqu’un d’autre fasse ce test, mais cela demande pas mal de temps.

    Autrement, j’avais déjà essayé d’installer LTSP 3.0 il y a un an, mais j’avais abandonné.

    Mais merci déjà d’avoir lu l’article :-)