Hewlett-Packard t5510 et Linux

Slitaz sur un Hewlett-Packard t5510 sans écran
ou
Linux dans 32Mo sur une carte mini-ITX Fanless

Description du matériel : HP t5510

Processor                            Transmeta Crusoe 800 MHz
Flash                                     32 MB Disk-On-Module (DOM)
Memory                               128 MB DDR SDRAM
(NOTE: 16 MB of system RAM is reserved for processor usage.)
Graphics                              ATI Radeon 7000M with 16 MB discrete video RAM
Operating System            Microsoft® Windows® CE. NET v4.20
Browser                               Microsoft® Internet Explorer 6.0 for Windows CE .NET
PCI                                        1 slot available with optional expansion module sold separately

le t5510 est une « thin client » produit par Hewlett-Packard, c’est à dire un ordinateur de bureau qui est censé ne faire tourner que le minimum nécessaire sur ses propres ressources, toutes les tâches gourmandes étant traitées sur un serveur central.

les « thin clients » n’ont donc généralement pas de disque dur, le stockage des données est aussi réalisé sur le serveur central. En résumé, cette machine ne contient que des outils pour se connecter ou afficher ce qui est traité. Voilà la raison pour laquelle le HP t5510 n’embarque que 32Mo de Mémoire morte (DOM).

A l’Intérieur

Cette machine n’est composée que d’une seule carte au format mini-ITX, (environ 17×17 cm) alimentée sous 12V. Ce qui est aussi très intéressant est qu’elle ne comprend aucune pièce mobile (mémoire morte de type flash et pas de ventilateur) on dit d’une telle machine qu’elle est « solidstate »

Utilisations

J’ai pour projet d’utiliser ce client comme ordinateur de bord sur une automobile pour des application de monitoring. sa tension d’alimentation ainsi que son caractère solidstate en fait une machine bien adaptée à cette tâche.

L’autre utilisation possible est  une utilisation en tant que serveur de lecture de musique et radio en ligne, de partage de fichier, de mail, etc. Il pourra fonctionner 24h/24 dans un petit appartement ou une chambre  et se faire totalement oublier (absence totale de bruit, faible consommation, faible encombrement).

Vous remarquerez que ces application ne nécessitent jamais de moniteur – d’ailleurs, je n’en ai pas, je n’ai que des ordinateurs portables sous la mains.

Le but de ce tutoriel va donc être  d’installer un système d’exploitation pleinement fonctionnel en lieu et place du Windows CE.NET présent sur cette machine.

sources :
idée d’utiliser QEMU :

http://www.pendrivelinux.com/portable-qemu-persistent-ubuntu-linux/

plus d’info QEMU :

http://www.h7.dion.ne.jp/~qemu-win/HowToFloppyCdrom-en.html

slitaz:

http://www.slitaz.org/

Préliminaires : Modifions Slitaz dans une Machine Virtuelle QEMU

pour les modifications de cette distribution, nous allons la démarrer dans une machine virtuelle, sur notre PC

Ingrédients 😉

– un PC sous windows (fonctionne aussi sous Linux, en adaptant)

– qemu,

– une clé usb et

– l’iso de slitaz « justX »

C’est parti !

Créez un répertoire « Slitaz »

récupérez QKUB.exe et décompressez-le dans le répertoire « Slitaz » :

http://pendrivelinux.com/downloads/QKUB.exe
(edit : il semblerais que le lien ne fonctionne qu’à partir du site pendrivelinux.com ; lorsque vous arrivez sur le site, retapez « /downloads/QKUB.exe à la fin de l’URL et ça fonctionnera ! )

récupérez slitaz justX et placez le dans le répertoire « Slitaz »

http://mirror.slitaz.org/iso/2.0/flavors/slitaz-2.0-justX.iso

Modifiez la dernière ligne de Slitaz\Launchubuntu.bat de la façon suivante

.\qemu\qemu -L .\qemu -kernel-kqemu -std-vga -localtime -soundhw all -m 256 -cdrom slitaz-2.0-justX.iso -hda \\.\PhysicalDrive1 -boot d

explications :

-m 256  ->  256 Mo de Mémoire vive alloué à l’émulateur

-cdrom slitaz-2.0-justX.iso  ->  l’iso du liveCD reconnu comme un cdrom

-hda \\.\PhysicalDrive1  ->  !!à modifier suivant votre config!! le « Disque1 » de mon PC (voir dans le gestionnaire de disque Windows) c’est a dire ma clé USB. une erreur de disque pourrait être désastreuse pour votre PC.

-boot d  ->  on boot sur le cdrom dans un premier temps (qui est l’iso de Slitaz)

enregistrez, lancez « Launchubuntu.bat »
(à la première utilisation, ça installe KQemu)

… deux fenêtre s’ouvre, dont une pour l’écran virtuel.

Au splash de slitaz taper « fr » puis <entée>
puis encore <entrée>

… ca charge

à la fenêtre de dialogue « tazx », choisissez votre resolution.

… ça charge nickel jusqu’à la fin

vous voilà avec un bureau Linux dans une fenêtre.

lancez un terminal dans slitaz

passer root :

# su root
<root>

juste pour vérifier que vous avez donné accès au bon disque, vérifier que les valeurs données par la commande suivante ne sont pas aberrantes.

# fdisl -l

formatez la clé usb.

# tazusb format /dev/hda1

entrez un nom pour la clé usb si « TazUSB » ne vous convient pas

# tazusb gen-liveusb /dev/hda1
# exit
# poweroff

Linux s’éteint, Qemu se ferme

Notre clé USB est maintenat prête à booter. on pourrais la brancher sur le t5510,  seulement on a pas d’écran ni de clavier sur le t5510, pour répondre aux questions du démarrage et de plus pour installer slitaz sur un autre disque à partir de cette clé, il faut qu’elle contienne aussi le fichier iso de slitaz.

on va donc rebooter sur la clé usb avec Qemu:

Faite une copie de la LaunchUbuntu.bat renommez la p.ex. « launch_cléUSB.bat »
modifiez-en la dernière ligne de cette façon :

.\qemu\qemu -L .\qemu -kernel-kqemu -std-vga -localtime -soundhw all -m 512 -hda \\.\PhysicalDrive1 -boot c

[ on a retiré la directive cdrom et on demande de booter sur le disque dur (hda) ]

le redémarrage est similaire au lancement précédent de Slitaz, sauf que les données sont initialement lues sur la clé USB.

….vous voilà donc dans une machine virtuelle sous Slitaz-installé-sur-votre-clé-USB.

modification à faire pour utiliser sur un thin client HP t5510 headless (sans ecran/clavier/souris )  avec ce Slitaz:

Activation du serveur ssh

dans un terminal

# su root
# nano /etc/rcS.conf

dans la ligne RUN_DAEMONS= ajouter « dropbear » (sans les guillemets)

Ctrl-X / O / <entée>

pour sauver tout ça

# nano /etc/daemons.conf

dans la ligne DROPBEAR_OPTIONS= , retirer -w et -g pour permettre l’acces ssh à l’utilisateur root

ça y est le ssh devrait être actif au boot de cette façon

Profitons-en pour installer tout les logiciels nécéssaires puisque nous récupèrerons ce filesystem pour le Slitaz définitif.

ajout de logiciels : par exemple « mpg123 » pour passer de la musique

#  tazpkg get-install mpg123

faite « y » pour accepter d’installer les dépendances

vous pouvez faire encore quelques « tazpkg » pour installer ce que vous voulez.

Sauvegarde des modifications faites au système :

Vous devez maintenant régénérer l’archive contenant le système de  fichier compressé  « rootfs.gz »

# tazusb writefs gzip

répondre « yes » pour que la configuration de son/vidéo ne soit pas gardé (je rappelle qu’on est encore sur l’émulateur et non sur la machine cible.)

pour le t5510 – qui a une mémoire de 32Mo, faite attention à ce que le fichier  rootfs.gz  généré ne dépasse pas les 30Mo.

Ce fichier est placé automatiquement dans /

montez la clé USB pour pouvoir écrire dessus:

mount /dev/hda1 /media/usbdisk

si vous avez de la place sur votre clé usb :

# mv /media/usbdisk/boot/rootfs.gz /media/usbdisk/boot/previous.gz

pour sauvegarder l’ancien système de fichier compressé.

ensuite on le remplace par celui que l’on vient de compresser.

# mv /rootfs.gz /media/usbdisk/boot/rootfs.gz

Voilà, à ce point, si on redémarre ce système, le serveur ssh sera lancé automatiquement.

Paramètres de boot pour la configuration « headless »:

dernier problème : au départ quelques questions sont posées à l’utilisateur, or sans écran, clavier ni souris, celui-ci ne pourra pas s’en rendre compte et y répondre.

nous allons donc modifier le fichier /media/usbdisk/boot/extlinux/extlinux.conf  afin de ne laisser que le nécessaire. Ce fichier est un fichier de type syslinux.conf contenant des directive pour le lancement du noyau Linux.

# nano /media/usbdisk/boot/extlinux/extlinux.conf

On va ne laisser qu’une seule façon de démarrer, et on va définir ici le type d’affichage, le driver de son, la langue et le clavier. De cette façon, ces informations ne serons pas demandées au démarrage.

pour le t5510, les cheatcodes à mettre sont les suivant:

screen=text sound=via82xx lang=fr_FR kmap=fr-latin1

notez que le mode d’écran « text » n’est pas un mode graphique et que par conséquence le serveur X ne sera pas lancé. Vous pouvez remplacer « text » par « 1024x768x24 » par exemple pour du graphique en 1024 par 768 sous 24 bit

finalement, notre le fichier minimal contiendra  :

default slitaz

label slitaz
kernel /boot/bzImage
append initrd=/boot/rootfs.gz lang=fr_FR kmap=fr-latin1 screen=text sound=via82xx rw root=/dev/null vga=normal autologin

encore que quand il n’y a qu’un « label », default et timeout sont peut etre inutile ; vga=normal et autologin sont peut être inutile aussi à cause de screen=text
(je n’ai pas essayé en les retirant)

sauvez le fichier ( Ctrl-X / O / <entée> )

nous allons aussi mettre dans cette clé USB l’iso de slitaz pour que le systeme puisse s’installer sur un autre disque

(si vous êtes derrière un proxy faite d’abord :

# export http_proxy=http://<adresseproxy>:<portproxy>

en mettant vos propres parametres de proxy)

# cd /media/usbdisk
# wget http://mirror.slitaz.org/iso/2.0/flavors/slitaz-2.0-justX.iso

Je vous conseille maintenant de redémarrer la machine virtuelle pour vérifier que tout se passe bien.

Vérifications du fonctionnement :

rebootez pour essayer :

# reboot

si le système démarre entièrement sans aucune action de votre part , ça devrai fonctionner sur le t5510

se loguer (root/root), éteindre (# poweroff)

retirez la clé USB de votre PC

Les choses serieuses (et amusantes)  : premier boot de notre Slitaz sur le Thin Client

branchez la clé USB  sur votre t5510, allumer.

[(edit) la première fois, il se peut que vous ayez besoin d’entrer dans le bios pour choisir de booter aussi sur un disque USB, malheureusement cette opération va obligatoirement nécessiter un écran et un clavier ( je mettrais en ligne la combinaison de touche à faire pour activer ça quand on a pas d’écran mais juste un clavier) ]

le système devrai être joignable par ssh sur votre réseau dans moins de 2 min

Slitaz embarque un client dhcp. Faites en sorte que votre t5510 obtienne une adresse IP et faite en sorte de savoir quelle est cette adresse. En ce qui me concerne, j’ai seulement branché mon t5510 avec un câble réseau sur ma neuf-box, et dans un menu de celle-ci j’ai regardé quels était les clients dhcp connectés et leurs adresse IP.

A partir d’un ordinateur ayant un client ssh, connectez vous à votre t5510:

# ssh root@192.168.1.3

(dans le cas ou le t5510 a obtenu l’adresse 192.168.1.3)

loguer vous : user : root, mot de passe : root

vous voilà sur votre système embarqué. mission presque accomplie. En effet si le système fonctionne actuellement entièrement sur la mémoire vive, il a utilisé les données de la clé USB pour démarrer. Notre but est qu’il puisse démarrer ainsi en utilisant les données du Disk-On-Module. il faut donc recommencer la manipulation de la même façon. les seules différences seront que la cible de l’installation du système sera le disque hda1 au lieu du disque sda1 et que nous allons utiliser l’image iso stockée sur la clé usb à la place du cdrom pour générer le système.

Pour cela : formater la flash du t5510 (32Mo):

# tazusb format /dev/hda

(en effet maintenant, le Disk-On-Module est reconnu comme /dev/hda et la clé USB comme /dev/sda1 , vous pouvez verifier avec « # fdisk -l » )

monter la clé usb pour pouvoir y lire l’iso de Slitaz:

# mount /dev/sda1 /media/usbdisk/

puis générez le système sur hda1 à partir de l’image iso contenu sur la clé USB

# tazusb gen-iso2usb /media/usbdisk/slitaz-2.0-justX.iso /dev/hda1

à ce stade le système est installé sur le client, mais comme précédemment il faut résoudre les problèmes lié au fait qu’on a ni écran ni clavier ni souris.
Pour les modifications du filesystem et des options de boot, on ne va pas s’embêter, on va recopier simplement les fichiers générés et modifiés plus tôt.

(d’où la nécessité d’avoir un rootfs.gz de moins de ~30 Mo )

# mount /dev/hda1 /media/flash
# cp /media/usbdisk/boot/*    /media/flash/boot/

voilà, vous pouvez maintenant éteindre la machine

# poweroff

et retirer la clé USB


Le Moment de Vérité : un boot autonome

le DOM contient tout le nécessaire et a bien été règle par tazusb pour booter.

appuyer sur le bouton « Marche » et normalement dans moins de 2 min votre machine est joignable sur le réseau !!!


		
Publicités
  1. Merci, le tuto détaillé parait accessible (je veux pas m’avancer sans essayer ;). C’est remarquable de clarté 🙂

    Bon ce serait chouette si vous pouviez ajouter 2 ou 3 mots sur l’utilisation du Thin Client passé sous Slitaz Linux.

    kozaki

    • Matlo
    • 12 février 2010

    J’ai plus qu’à essayer tout ça pour mon webradio-réveil…

    • Matlo
    • 29 mai 2010

    Pour info ça ne passe pas avec slitaz 3.0 (la carte ethernet n’est pas reconnue automatiquement).

    Avec slitaz 2.0, je n’ai pas réussi à faire sortir du son en utilisant mpg123.

    J’ai testé slitaz base, il me semble qu’il y a tout ce qu’il faut (il y a bien un serveur ssh), mais le son ne marche pas non plus par défaut.

    • bytesnwires
    • 30 mai 2010

    tu as pensé à installer linux-sound ? 😛

    # tazpkg get-install linux-sound

    (merci Matlo)

    • Matlo
    • 30 mai 2010

    +

    # tazpkg get-install alsa-utils
    # soundconf

    • Matlo
    • 30 mai 2010

    Pour le pb de carte ethernet pas détectée, c’était celle de mon pc (rt8139) qui ne passait pas avec slitaz dans qemu.

    Du coup ca passe, il suffit de reporter l’install des paquets après le démarrage du thin client avec slitaz sur clé usb.

    Par contre, les étapes mentionnées pour activer l’audio sont bien nécessaires.

    tazusb format /dev/hda n’a pas marché, j’ai du faire le formatage à la main avec fdisk et mkfs.ext2.

    • Matlo
    • 30 mai 2010

    Et aussi:

    il faut refaire un tazusb writefs gzip après le premier démarrage du ssh, pour que les clefs d’authentification ne soient par regénérées après chaque démarrage !

    • Matlo
    • 30 mai 2010

    slitaz 3.0 base :

    root@slitaz:~# df
    Filesystem 1k-blocks Used Available Use% Mounted on
    rootfs 97364 29700 67664 31% /
    tmpfs 97364 29700 67664 31% /
    tmpfs 54088 0 54088 0% /dev/shm
    /dev/hda1 60525 15960 41440 28% /media/flash

    Conso cpu en lecture mp3 (webradio 192k) : < 10 %

    Mem: 38224K used, 69956K free, 0K shrd, 24K buff, 29116K cached

    • bytesnwires
    • 31 mai 2010

    bien ouéj !
    Bravo
    ça va nécessiter une nouvelle version du tuto.

    • Matlo
    • 31 mai 2010

    A ajouter aussi : réglage de l’heure + configuration du ntp.

    A venir : interfacer un lcd 128×64 et quelques boutons en usb, afficher l’heure, afficher l’artiste et le titre si lecture mp3 en cours, configurer le mode suspend avec wake up on usb, configurer crontab…

      • bytesnwires
      • 31 mai 2010

      j’ai une autre piste pour un webradio reveil:
      un telephone comme le nokia E65 a le wifi , peut lire des radio internet avec Nokia Internet Radio
      et lancer une appli à l’heure voulue en python :
      pyBuzik
      de plus, il fonctionne aussi très bien sans carte sim (ça désactive juste le gprs/gsm/3g)
      ça prend pas de place, il est possible de faire une base type « ipod station » pour avoir le son fort et en stéréo.
      et finalement, ça coute pas si cher (il y en a à 50€ sur Ebay)

      … mais bon, c’est déja presque du tout-fait, c’est moins drôle

        • Matlo
        • 31 mai 2010

        Ca reste quand même cher par rapport à ma solution (t5520 5 euros, bumble-b 10 euros, lcd gratos free day sparkfun).

    • Matlo
    • 3 juin 2010

    Wahoo le skin !

    Ma config cron :

    echo « 35 07 * * 1-5 mpg123 -@ http://www.rockone.fr/ecouter/ecouter-rock-one.m3u » >> /var/spool/cron/crontab/root

    Ca me met rock one tous les matin à 7h35 du lundi au vendredi.

    + refaire tazusb writefs gzip et la copie de rootfs.gz

    Par contre j’ai constaté qu’après reboot ma config de niveau sonore via alsamixer n’est pas sauvée 😦

  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :