réalisation d`un thin-client

Transcription

réalisation d`un thin-client
Virtual Desktop Infrastructure
RÉALISATION D'UN THIN-CLIENT
SCHAUB LIONEL - 2012
http://www.tdeig.ch
Page 1 sur 9
Virtual Desktop Infrastructure
TABLE DES MATIERES
1.
2.
3.
4.
AVANT-PROPOS ........................................................................................................................... 3
1.1.
OBJECTIF ................................................................................................................................ 3
1.2.
DÉFINITIONS ......................................................................................................................... 3
1.3.
HARDWARE DU THIN-CLIENT ............................................................................................ 3
1.4.
VERSION ET OUTILS UTILISÉS ........................................................................................... 3
1.5.
EXECUTIVE SUMMARY ........................................................................................................ 4
INSTALLER MICROCORELINUX ................................................................................................. 4
2.1.
BOOTER SUR COREPLUS ..................................................................................................... 4
2.2.
INSTALLER MICROCORELINUX .......................................................................................... 4
MODIFIER L'IMAGE DU MICROCORELINUX GRÂCE À UN LIVECD/USB .......................... 5
3.1.
BOOTER SUR UN LIVE CD/USB .......................................................................................... 5
3.2.
MONTER LE DISQUE SUR LEQUEL MICROCORELINUX EST INSTALLÉ ....................... 5
3.3.
UTILISATION DU SCRIPT BASH POUR PRÉPARER LA NOUVELLE IMAGE .................. 5
3.4.
MODIFICATION DU DÉPÔT (FACULTATIF) ..................................................................... 5
3.5.
AJOUT DE SPICE DANS LE MENU CONTEXTUEL DU BUREAU (FACULTATIF) ........... 6
3.6.
LANCER SPICE AU DÉMARRAGE DE LA SESSION GRAPHIQUE (FACULTATIF) ......... 6
3.7.
MODIFIER LE FOND D'ÉCRAN (FACULTATIF) ................................................................. 6
3.8.
CRÉATION DE LA NOUVELLE IMAGE ................................................................................ 6
ANNEXES ....................................................................................................................................... 7
4.1.
CRÉER UN DÉPÔT POUR TINYCORELINUX .............................. Erreur ! Signet non défini.
4.2.
OPTIONS DE BOOT DU THIN-CLIENT ............................................................................... 7
4.3.
UTILISER LE THIN-CLIENT EN PXE .................................................................................... 7
4.4.
PROBLÈME DE LA CARTE GRAPHIQUE DU THIN-CLIENT ............................................. 7
4.5.
CRÉER UN LIVEUSB DEPUIS UN LIVECD .......................................................................... 8
4.6.
HELP DE LA COMMANDE HSETROOT ............................................................................... 8
4.7.
SCRIPT BASH MODIF-IMAGE.BASH .................................................................................. 8
4.8.
SCRIPT BASH GET-SPICE-RPM.BASH ................................................................................ 8
Page 2 sur 9
Virtual Desktop Infrastructure
1. AVANT-PROPOS
1.1. OBJECTIF
Le but de ce document est de décrire les étapes nécessaires à la réalisation du Thin-Client et plus
particulièrement les étapes concernant la réalisation de l'OS minimal.
Ce document permet de créer un Thin-Client avec un client Spice.
1.2. DÉFINITIONS
microCoreLinux: distribution Linux minimale (en mode CLI) qui tient sur 8Mo
tinyCoreLinux: comme microCoreLinux mais contient une interface graphique (GUI) et tient sur 12Mo
CorePlus: LiveCD contenant plusieurs versions et variantes de *CoreLinux
1.3. HARDWARE DU THIN-CLIENT
Boitier:
Compucase 8K01BS-SA 12u avec alimentation 120 W
70 CHF
Carte Mère: Intel D2500 HN avec processeur Intel Atom D2500 (2 * 1.86 GHz)
75 CHF
RAM:
20 CHF
2 Go RAM DDR3-8500 SODIMM Corsaire value select
Disque dur: Disque dur Samsung Spinpoint u7e 320 Go (facultatif)
60 CHF
Clef USB:
10 CHF
Clef USB 8 Go Kingston Data Traveler Micro (facultatif)
Lecteur CD: Lecteur/Graveur CD/DVD Sony Optiarc-ad-7740H (facultatif)
Prix entre 165,- CHF et 275,- CHF
1.4. VERSION ET OUTILS UTILISÉS
CD CorePlus : v4.4
Distribution utilisée pour modifier l'image: Ubuntu 11.04 LTS
Page 3 sur 9
40 CHF
Virtual Desktop Infrastructure
1.5. EXECUTIVE SUMMARY
Cette méthode consiste à modifier le root file system (rootfs) d'une distribution microCoreLinux. Le rootfs est
décompressé et chargé en RAM au démarrage.
Tout d'abord il faut installer une distribution microCoreLinux grâce au CD CorePlus qui permet de booter sur
une version live (liveCD/USB) de tinyCoreLinux. Cette version de tinyCoreLinux permet d'installer
microCoreLinux grâce à une application en mode GUI.
Puis, il faut booter sur un liveCD/USB d'une distribution Linux classique (par exemple Ubuntu) et monter le
périphérique de stockage sur lequel est installé microCoreLinux. Il est ensuite possible d'extraire l'image du
rootfs.
Les éléments (paquets tcz de tinyCoreLinux) nécessaires à l'ajout d'un environnement graphique vont être
téléchargés et extraits dans le rootfs. Puis les éléments (paquets rpm pour Fedora 16 x86) nécessaires à l'ajout
du client Spice vont être téléchargés et extraits dans le rootfs.
Il ne reste plus qu'à configurer quelques détails (lancement automatique, etc.) puis il faut générer la nouvelle
image du rootfs et redémarrer la machine sans le liveCD/USB.
Pour installer ce système sur une autre machine il n'est pas nécessaire de répéter toutes les étapes ci-dessus.
Il suffit de copier le disque dur (ou la clef USB si il a été installé sur une clefUSB).
2. INSTALLER MICROCORELINUX
2.1. BOOTER SUR COREPLUS
Démarrer le thin-client puis presser F10 jusqu’à ce que le menu Boot apparaisse.
Sélectionner le média qui contient CorePlus.
Dans le menu suivant, sélectionner Boot Core Plus with X/GUI (TinyCore) + Installation Extension.
2.2. INSTALLER MICROCORELINUX
Une fois le système démarré, lancer TC_Install grâce à l'icône à droite du menu qui se trouve en bas de l'écran.
Sélectionner l'emplacement de core.gz:
Depuis un CD : /mnt/sr0/boot/core.gz
Depuis une clef USB : /mnt/sda1/boot/core.gz
Pour une installation sur un disque dur sélectionner Frugal et pour une installation sur une clef USB
sélectionner USB-HDD. Puis cliquer deux fois sur la flèche suivant.
Dans le champ texte, taper kmap=ch-fr noswap norestore
Cliquer sur la flèche suivant.
Sélectionner Core Only (Text Based Interface).
Cliquer sur la flèche suivant puis sur Proceed.
Une fois l'installation terminée, redémarrer grâce à l'icône à gauche du menu qui se trouve en bas de l'écran.
Vérifier que l'installation s'est effectuée correctement puis éteindre le PC.
Page 4 sur 9
Virtual Desktop Infrastructure
3. MODIFIER L'IMAGE DU MICROCORELINUX GRÂCE À UN LIVECD/USB
3.1. BOOTER SUR UN LIVE CD/USB
Tout d'abord il faut démarrer sur un live CD/USB d'Ubuntu.
Démarrer le thin-client puis presser F10 jusqu’à ce que le menu Boot apparaisse.
Sélectionner le média qui contient le live CD/USB d'Ubuntu.
Une fois Ubuntu chargé, sélectionner Essayer Ubuntu.
3.2. MONTER LE DISQUE SUR LEQUEL MICROCORELINUX EST INSTALLÉ
Une fois le bureau d'Ubuntu chargé, ouvrir un terminal : Applications -> Accessoires -> Terminal.
Se connecter en administrateur: sudo -s
Monter le disque contenant la distribution microCoreLinux:
mkdir /mnt/thinclientdisk
mount /dev/sda1 /mnt/thinclientdisk
3.3. UTILISATION DU SCRIPT BASH POUR PRÉPARER LA NOUVELLE IMAGE
Créer un répertoire de travail : mkdir workdir
Copier l'image du rootfs dans le répertoire de travail :
cp /mnt/thinclientdisk/boot/core.gz /home/ubuntu/workdir/
Copier le script Bash dans le répertoire de travail (cf annexe 4.8 SCRIPT BASH MODIF-IMAGE.BASH ).
Se déplacer dans le répertoire de travail : cd workdir
Exécuter le script Bash: bash modif-image.bash
Le script crée une sauvegarde du fichier core.gz original sous le nom core.bak.gz .
3.4. MODIFICATION DU DÉPÔT (FACULTATIF)
Pour utiliser le dépôt du labo, il faut modifier le fichier /opt/tcemirror
nano core/opt/tcemirror
Remplacer la ligne existante par : http://10.1.1.3/tinycorelinux/
Page 5 sur 9
Virtual Desktop Infrastructure
3.5. AJOUT DE SPICE DANS LE MENU CONTEXTUEL DU BUREAU (FACULTATIF)
Dans le répertoire /usr/local/share/applications/ créer le fichier tinycore-spice.desktop
nano core/usr/local/share/applications/tinycore-spice.desktop
Ajouter le contenu suivant:
[Desktop Entry]
Name=Spice
Exec=spicec
Type=Application
X-FullPathIcon=/usr/local/share/pixmaps/logo.png
Icon=logo
Categories=System;
3.6. LANCER SPICE AU DÉMARRAGE DE LA SESSION GRAPHIQUE (FACULTATIF)
Ajouter spicec & dans le fichier /etc/skel/.xsession :
echo "spicec &" >> core/etc/skel/.xsession
3.7. MODIFIER LE FOND D'ÉCRAN (FACULTATIF)
Pour modifier le fond d'écran, il faut modifier le fichier core/etc/skel/.setbackground .
Ce fichier exécute la commande hsetroot. C'est cette commande qui va créer le fond d'écran. Elle permet de
faire des dégradés, d'insérer des images et d'effectuer quelques effets (flou, inversions, luminosité, …).
Pour plus d'informations, voir le help de la commande dans l'annexe 4.7 Help de la commande hsetroot.
L'exemple ci-dessous crée un fond d'écran avec un dégradé de gris et le logo hepia au centre:
hsetroot –add "#C0C0C0" –add "#999999" –gradient 0 –center
/usr/local/share/pixmaps/hepia.png
L'exemple ci-dessous crée un fond d'écran blanc avec le logo hepia au centre:
hsetroot –solid "#C0C0C0" –add "#999999" –gradient 0 –center
/usr/local/share/pixmaps/hepia.png
Il ne faut pas oublier de placer l'image hepia.png dans le répertoire /usr/local/share/pixmaps/
Et de modifier ses droits: chmod 755 /usr/local/share/pixmaps/hepia.png
3.8. CRÉATION DE LA NOUVELLE IMAGE
Exécuter les commandes ci-dessous:
cd core
find . | cpio -o -H newc | gzip > ../core.gz
cd ..
Copier l'image sur le support de stockage où est installé microCoreLinux:
cp core.gz /mnt/thinclientdisk/boot
Page 6 sur 9
Virtual Desktop Infrastructure
4. ANNEXES
4.1. AMÉLIORATIONS POSSIBLES
Le CD CorePlus est utilisé pour formater le support de stockage et installer le bootloader et
microCoreLinux. Comme ce dernier tient sur deux fichiers, il serait possible d'ajouter un script qui
effectue le formatage, installe le bootloader et copie les deux fichiers.
4.2. CRÉER UN DÉPÔT POUR TINYCORELINUX
Sur la machine contenant les dépôts (G20 10.1.1.3) exécuter la commande suivante:
rsync -avrth --progress --exclude="/2.x" --exclude="/3.x" --exclude="/tcz"
--exclude="/tce" --exclude="/.htaccess" --exclude="archive"
--exclude="release_candidates" --exclude="src"
rsync://distro.ibiblio.org/tinycorelinux/ /var/www/html/tinycorelinux/
Le dépôt sera ensuite accessible à l'adresse http://10.1.1.3/tinycorelinux .
Pour créer un répertoire contenant les RPM du client Spice, exécuter le script Bash get-spice-rpm.bash
4.3. OPTIONS DE BOOT DU THIN-CLIENT
Actuellement le Thin-Client peut booter sur les éléments suivants:
1. Fedora 14
(disque dur)
[SAMSUNG HM321HI]
2. Thin-Client
(clef usb)
[Kingston DT Micro]
3. Thin-Client
(PXE)
[IBA GE Slot 0100 v1365]
F10 pour le menu de boot
F12 pour le boot PXE
Par défaut: boot sur la clef USB.
4.4. UTILISER LE THIN-CLIENT EN PXE
Pour utiliser l'OS du Thin-Client dans un environnement PXE, il faut copier les fichiers vmlinuz et
core.gz dans un répertoire du serveur TFTP puis ajouter les lignes suivantes dans le fichier de
configuration de pxelinux (pxelinux.cfg/default)
LABEL Thin-Client
kernel \thin-client\vmlinuz
append initrd=\thin-client\core.gz
4.5. PROBLÈME DE LA CARTE GRAPHIQUE DU THIN-CLIENT
La carte graphique intégrée au processeur Intel Atom D2500 n'est pas une carte Intel et n'est pas compatible
avec les driver de base de tinyCoreLinux (xvesa).
Page 7 sur 9
Virtual Desktop Infrastructure
C'est pourquoi dans ce document, une version sans interface graphique (microCoreLinux) est d'abord installée
et le système graphique Xorg est ajouté par la suite.
4.6. CRÉER UN LIVEUSB DEPUIS UN LIVECD
Télécharger le programme Unetbootin à l'adresse suivante : http://unetbootin.sourceforge.net/ .
Exécuter le logiciel et sélectionner DisqueImage.
Sélectionner le fichier ISO puis sélectionner la clef USB et cliquer sur OK.
4.7. HELP DE LA COMMANDE HSETROOT
hsetroot 1.0.2 - yet another wallpaper application
Syntaxis: hsetroot [command1 [arg1..]] [command2 [arg1..]]...
Gradients:
-add <color>
Add color to range using distance 1
-addd <color> <distance>
Add color to range using custom distance
-gradient <angle>
Render gradient using specified angle
-clear
Clear the color range
Solid:
-solid <color>
Render a solid using the specified color
Image files:
-center <image>
-tile <image>
-full <image>
-fill <image>
Render
Render
Render
Render
Manipulations:
-tint <color>
-blur <radius>
-sharpen <radius>
-contrast <amount>
-brightness <amount>
-gamma <amount>
-flipv
-fliph
-flipd
Tint the current image
Blur the current image
Sharpen the current image
Adjust contrast of current image
Adjust brightness of current image
Adjust gamma level of current image
Flip the current image vertically
Flip the current image horizontally
Flip the current image diagonally
Misc:
-alpha <amount>
-write <filename>
Adjust alpha level for colors and images
Write current image to file
an
an
an
an
image
image
image
image
centered on screen
tiled
maximum aspect
strechted
Colors are in the #rrbbgg or #rrggbbaa format.
Send bugreports to: [email protected]
4.8. SCRIPT BASH MODIF-IMAGE.BASH
Voir dans les fichiers annexes.
4.9. SCRIPT BASH GET-SPICE-RPM.BASH
cd /var/www/html/
mkdir spiceclient
cd spiceclient
Page 8 sur 9
Virtual Desktop Infrastructure
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/cegui06-0.6.2-8.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/celt051-0.5.1.3-3.fc15.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/pixman-0.22.2-1.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libcacard-0.1.2-1.fc15.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/nss-3.12.10-7.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/15/Everything/i3
86/os/Packages/nss-util-3.12.9-2.fc15.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/nspr-4.8.8-4.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/openssl-1.0.0e-1.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libXfixes-5.0-1.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/pcre-8.12-4.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/mesa-libGLU-7.11-8.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/mesa-libGL-7.11-8.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/krb5-libs-1.9.1-18.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libXdamage-1.1.3-2.fc15.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libXxf86vm-1.1.1-2.fc15.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libdrm-2.4.26-3.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/keyutils-libs-1.5.2-1.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libselinux-2.1.5-5.1.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/libjpeg-turbo-1.1.1-1.fc16.i686.rpm
wget
ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/releases/16/Everything/i3
86/os/Packages/spice-client-0.9.1-1.fc16.i686.rpm
Page 9 sur 9