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