Accueil > Linux / Logiciels Libres > GNU/Linux > Carpeia : Multimédia en voiture

Carpeia : Multimédia en voiture

samedi 19 février 2005, par Yann

Documents
Fichier PDF de l’article
Le but de ce projet est de réaliser un lecteur multimédia embarqué pour la voiture.

Carpeia : Multimédia en voiture

Y. Morère

Février 2005

Résumé

Le but de ce projet est de réaliser un lecteur multimédia embarqué pour la voiture. Il est basé sur une distribution Linux multimédia (GeexBox) dans sa version 0.98.5 et un matériel de type PC (carte Epia VIA) sans disque dur. Le démarrage du système d'exploitation sera assuré par une carte Compact Flash directement branchée sur le port IDE via un adaptateur. Il doit permettre de lire différents types de fichiers audio et vidéo ainsi que les DVD. Ce document présente les différents matériels utilisés ainsi que la mise en uvre pour la réalisation.

Table des matières

1  Introduction / Cahier des charges
2  Système d'exploitation
3  Médium de boot
4  Configuration et installation GeexBox
    4.1  Configuration de la langue
    4.2  Configuration de Mplayer
    4.3  Configuration des autres options
    4.4  Compilation
    4.5  Installation sur la Compact Flash
5  Carte mère
6  Bo îtier
7  Lecteur Slim DVD
8  Télécommande
9  Alimentation
10  Tests de la distribution
11  Montage dans le bo îtier Morex 3677
12  Installation de Linux sur un disque externe en USB2
    12.1  Problème d'installation des distributions standards
    12.2  Solution mettre le noyau sur un autre média
13  Installation du Lecteur DVD/Graveur CD-RW

1  Introduction / Cahier des charges

Le projet doit aboutir à un lecteur multimédia embarquable dans un véhicule et facilement démontable afin de pouvoir être aussi utilisé comme lecteur de salon avec très peu de modification.
Il doit par conséquent être de petite taille et consommer peu d'énergie. Il doit être facile d'utilisation par l'intermédiaire d'une télécommande.
Par ailleurs les mises à jours des "codecs logiciels" doit être simple et ne doit pas être un facteur limitant. Notre lecteur doit pouvoir lire un maximum de format de fichier (audio comme video).
Notre projet ne doit pas être basé sur un produit propriétaire et sera donc basé sur des outils libres.
Il est important afin de limiter la consommation en énergie d'éviter d'utiliser un disque dur pour démarrer le système d'exploitation. On utilisera un support de type flash disque pour booter.
L'affichage pourra être assurer par un écran plat 14" standard oubien une télévision.

2  Système d'exploitation

La première partie du travail consiste à installer le système d'exploitation multimédia sur un support de type flash disque.
Il faut d'une part choisir la distribution Linux adaptée et d'autre part le support physique adapté. les sites suivants nous fournissent pas mal d'indications : ou encore le site http://www.freevix.org/
freevix - media orientated linux distribution
news|download|docs|forum|mailinglist This is a list of the hardware I
use in my system- freevix as supplied should work just fine for anyone
using this stuff, and compiling your own kernel should make freevix work
on whatever hardware you like, probably...!

    * VIA EPIA-ME6000/EPIA-800 mainboards
    * 256MB RAM
    * Casetronic Mini-ITX-2699R (small black ITX case)
    * ACSControl ACS-CF-IDEtoCFA (IDE to Compact Flash adapter)
    * Sandisk 64MB compact flash memory card (~ 3 years old now)
    * RCA Systemlink 8AV R/C
    * Serial IRMAN compat IR reciever

No hard disk? Nope. I originally used the IDE-CF adapter and booted my
media box from that, but I then got around to booting over the network
with PXE, and since it was so much faster, I use that exclusively now.

Notre choix s'est porté vers la distribution GeeXBoX http://www.geexbox.org qui est composée d'un noyau Linux 2.6 et du lecteur multimédia mplayer http://www.mplayerhq.hu/homepage/design7/news.html réputé pour lire un grand nombre de format audio et video.
Il s'agit en même temps d'une distribution "live" qui boote sur un cd et que l'on peut installer sur un autre média, mais aussi d'une distribution que l'on peut configurer, adapter, compiler et installer directement à partir de ses sources. C'est cette solution que nous choisirons, afin d'éviter de graver un cd à chaque fois que l'on veut modifier notre distribution.
De plus elle est de très petite taille, car elle n'a besoin que de 16 Mo pour s'installer.
Elle intègre aussi un support natif des télécommandes aux caractéristiques LIRC, telle l'ATI Remote Wonder.
Par ailleurs, elle contient des utilitaires qui facilitent grandement l'installation sur des supports de stockage.
L'autre grand intérêt de cette distribution est qu'elle charge tout en ram disque, et donc il n'y a lecture sur le média de démarrage que lors du chargement du noyau et de l'application. Ceci est un plus pour l'utilisation des flash disque qui sont réputés lents en écriture, avec un nombre limité d'écritures.
La mise en œuvre est décrite plus loin dans ce document.
Le matériel utilisé dans ce projet peut être trouvé sur les sites suivants :

3  Médium de boot

On sait déjà que le média de boot sera de type flash disque? Encore faut il déterminer quel type nous allons utiliser.
Nous avons laisser de coté les "disk on chip" trop cher, les clé USB, les cartes Smart Média, au profit de la carte compact flash qui est certe déjà ancienne et un peu dépassée, mais qui possède l'agréable avantage de posséder une connectique native IDE comme son cousin le microdrive.
On pourra donc directement utiliser la carte compact flash comme un disque dur IDE standard, ce qui va faciliter la mise en uvre sous linux.
Il suffit pour cela d'utiliser un adaptateur Compact Flash IDE pour connecter une carte mémoire Compact Flash sur un connecteur IDE de disque dur.
Par contre ce type de matériel peu cher est assez difficile à trouver en France. Je n'ai trouvé qu'une seule société que le commercialise par internet : http://boutique.ryxeo.com/product_info.php?products_id=1 au prix de 20 environ.
local/cache-vignettes/L366xH198/compact_flash_ide-34d23.jpg?1682564146
Cet adaptateur Compact Flash IDE (CF IDE) vous permet de connecter une carte mémoire 
Compact Flash sur un connecteur IDE de disque dur.
    * Faible consommation électrique (moins de 0.5 Watts);
    * Démarrage ultra rapide (pas de lancement des têtes de lectures comme 
sur un disque dur);
    * Accès rapide en lecture (attention les compacts flash sont réputées pour
 ne pas être très rapides en écriture);
    * Taux de transferts plus rapides que les Disk On Chip;
    * Peu sensible aux chocs et vibration (en comparaison avec les disques durs);
    * Aucun pilote ou logiciel spécifique nécessaire, la compact flash se comporte 
exactement comme un disque dur;
    * Aucun bruit (nuisances sonores = 0);
    * Taille de 5,08 cm sur 10,16 cm, soit la taille d'une base de 
disque dur IDE classique 3"1/2;
    * Connexion sur un port IDE classique 40 broches (44 broches c'est pour 
les disques de portables avec alimentation intégrée);
    * Alimentation électrique via un connecteur disque dur;
    * Cavalier de sélection Maître/Esclave;

ATTENTION: cet adaptateur Compact Flash IDE (CF IDE) ne permet pas de faire du hotswap. 
Pour des adaptateurs Hot-Swap c'est dans un autre ordre de prix. Si vous voulez du 
hot-swap pour développer par exemple sur vos compact flash, nous vous conseillons plutôt d'utiliser
 un adaptateur USB Compact Flash ou pcmcia/pccard Compact Flash ...

Voici l'adaptateur en vrac dans le PC
local/cache-vignettes/L672xH504/adaptateurCF2-019c3.jpg?1682564146
et à la suite d'un montage plus propre :
local/cache-vignettes/L563xH750/adaptateurCF-60309.jpg?1682564146

4  Configuration et installation GeexBox

Avant toutes il faut préciser que si, comme moi, vous désirez recompiler complètement votre geexbox, il vous sera nécessaire d'installer un noyau 2.6. En effet la distribution a besoin du système de fichier sysfs ou /sys qui se trouve à partir du noyau 2.6 ("D'ailleur ça n'est normalement pas nécéssaire pour la compilation complète de geexbox ! C'est uniquement utilisé par l'installator, donc uniquement pour faire l'installation directement depuis la distrib linux." précision d'Aurelien Jacobs). Ensuite, j'avais commencé de tester cela sur une mandrake 10.1, et malheureusement les outils comme fdisk et sfdisk se revelent incapables de reconnaitre ma carte compact flash et de la partitionner correctement.
Toute la suite est donc réalisé sur une distribution Debian Sarge avec un noyau 2.6.8-1.
On commence donc par récupérer l'archive complète de la distribution que l'on va décompresser. Il faut donc télécharger les sources de la GeeXBoX à l'adresse http://www.geexbox.org/fr/downloads.html. l'adresse directe vers le paquet est la suivante http://www.geexbox.org/releases/0.98.5/geexbox-0.98.5-full.tar.
Un petit tar xf geexbox-0.98.5-full.tar nous décompresse le tout dans un répertoire geexbox-0.98.5.

4.1  Configuration de la langue

Par défaut la GeexBoX est configurée dans la langue de Shakespeare, il faut donc modifier certain fichier afin de la franciser.
Tout se trouve dans le répertoire config. Il vous faut éditer le fichier config/lang.conf et mettre
DEFAULT_LANGUAGE=fr

Si vous désirez une autre langue, il faut vérifier qu'elle est disponible.
La langue des menus se configure dans une autre fichier config/options il faut le modifier de la manière suivante :
# Menu language (bg/br/ca/cs/de/en/es/et/fi/fr/gr/he/hu/it/nl/no/pl/ro/ru/sk/sr/sv)
LANG=fr

Pour résumer, les fichiers de configuration de la GeeXboX sont les suivants :
  • ./config/options : options principales de compilation et du graveur
  • ./packages/linux/linux.conf : il s'agit du fichier de configurations du noyau Linux, utilisé pour construire la GeeXboX. Il peut être édité afin de répondre au mieux à vos besoins.
  • ./packages/MPlayer/menu_lang.conf : modifiez ce fichier pour éditer les options du menu OSD.
  • ./packages/MPlayer/mplayer.conf : ce fichier contient les options de lancement de MPlayer.

4.2  Configuration de Mplayer

La GeeXboX est principalement basée sur l'utilisation de MPlayer. Comme ce lecteur est l'un des lecteurs multimédia les plus performant, il accepte de nombreuses options de configuration et de lancement. Dans la GeeXboX, 2 fichiers sont utilisés pour gérer les options de MPlayer :
./packages/MPlayer/menu_lang.conf
./packages/MPlayer/mplayer.conf

Le fichier menu_lang.conf est utilisé pour générer le menu OSD. Vous pouvez le modifier si vous décider d'ajouter ou supprimer des options au menu actuel, ou encore pour le traduire dans votre langue favorite. Le fichier mplayer.conf est directement lié au mode de lancement de MPlayer. La configuration proposée par défaut contient les lignes suivantes :
vo=vesa:vidix,vesa # Pilote de sortie Vidéo (Utilise le mode VidiX 
si disponible, le mode VESA sinon)
ao=alsa # Pilote de sortie Audio
alang=en,fr # Piste audio par défaut pour les DVD : passe 
à la suivante, si la précédente n'est pas disponible et ainsid e suite ...
mixer-channel=Master # Périphérique contrôlé par les contrôles internes de volume
framedrop=yes # Lorsqu'il est activé, MPlayer peut 'sauter' le décodage 
de certaines images si la vidéo apparaît trop lentement
vsync=yes # Active ou non la synchronisation verticale de l'image
fs=yes # Active le mode Plein-Ecran (nécessite davantage de puissance CPU)
zoom=yes #Active le Zoom - modifie le rapport largeur/hauteur (nécessite davantage 
de puissance CPU)
menu=yes # Affiche le Menu OSD
double=yes # Utilise un double tampon pour l'affichage des images
fixed-vo=yes # Utilise un rapport d'image de taille fixe
nocolorkey=yes # Désactive la couleur clé
cache=1500 # Taille du Cache (en ko)
idx=yes # Permet de reconstruire l'entête du fichier si elle est endommagée
lircconf=/etc/lirc # Emplacement du fichier de configuration de LIRC
subfont-text-scale=3 # Taille des fontes sur l'OSD
screenw=800 # Largeur de l'écran
screeh=600 # Hauteur de l'écran

Davantage de documentation concernant MPlayer et ses fichiers de configuration peut être trouvée sur le site officiel de Documentation de MPlayer http://www.mplayerhq.hu/DOCS/HTML/fr/index.html.
Pour optimiser votre distribution GeexBox, je vous recommande le site suivant : http://www.swisslinux.org/wiki/index.php/Compilation_et_optimisations_0.98.5. Vous pourrez ainsi configurer mplayer pour qu'il soit plus rapide. Compiler la distribution pour une architecture et un processeur précis.

4.3  Configuration des autres options

D'autres configurations sont disponibles dans ce fichier et les fichiers du répertoire config. On y trouve le support des cartes TV, de la sortie vidéo de votre carte graphique, du support de la décompression matérielle, des télécommandes LIRC, du son, etc...

4.4  Compilation

Nous allons générer d'une traite, l'image ISO de la distribution, l'installateur et le générateur rapide d'image ISO par la commande 
make && make installator && make generator

Une fois que tout est compilé vous avez plusieurs fichiers générés à la racine de geexbox :
AUTHORS    geexbox-0.98.5-fr.iso              packages
build      geexbox-generator-0.98.5.tar.gz    README
ChangeLog  geexbox-installator-0.98.5         scripts
config     geexbox-installator-0.98.5.tar.gz  sources
COPYING    generator                          VERSION
debian     installator
DOCS       Makefile

Notammentgeexbox-0.98.5-fr.isol'imageisodevotredistribibution qu'il ne reste plus qu'a graver, geexbox-installator-0.98.5.tar.gz le paquet qui va nous servir à installer la geexbox générée sur notre compact flash et geexbox-generator-0.98.5.tar.gzlepaquetquipermetde générer rapidement des images ISO sans tout recompiler.

4.5  Installation sur la Compact Flash

On va commencer par décompresser l'installateur généré par notre compilation.
# tar xzf geexbox-installator-0.98.5.tar.gz
# cd geexbox-installator-0.98.5
# ls
AUTHORS  COPYING  disk  DOCS  installator.sh  VERSION
# 

Il ne reste plus qu'a lancer installator.sh afin de commencer l'installation.
Pour ma part n'ayant pas de disque IDE dans la machine (à part la CF) je suis obligé de lancer modprobe ide-disk afin de détecter la CF
# fdisk /dev/hda

Commande (m pour l'aide): p

Disque /dev/hda: 15 Mo, 15990784 octets
4 têtes, 32 secteurs/piste, 244 cylindres
Unités = cylindres de 128 * 512 = 65536 octets

Périphérique Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         244       15600   83  Linux

Commande (m pour l'aide): q
#

L'installation est quasiment graphique grâce à la librairie ncurse
local/cache-vignettes/L664xH463/installator-b1007.jpg?1682564146
local/cache-vignettes/L664xH463/installator1-875a2.jpg?1682564146
local/cache-vignettes/L664xH463/installator2-8a2da.jpg?1682564146
local/cache-vignettes/L664xH463/installator3-de963.jpg?1682564146
local/cache-vignettes/L664xH463/installator4-39ff3.jpg?1682564146
local/cache-vignettes/L664xH463/installator5-b5ea4.jpg?1682564146
local/cache-vignettes/L664xH463/installator6-cf345.jpg?1682564146
local/cache-vignettes/L664xH463/installator7-95c3c.jpg?1682564146
local/cache-vignettes/L664xH463/installator8-77fdc.jpg?1682564146
Ensuite il est possbile d'installer d'autres codecs dans le répertoire GEEXBOX/codecs
# mount /dev/hda1 /mnt/
# cd /mnt/
# ls
boot  GEEXBOX  initrd.gz  lost+found  vmlinuz
#
# cd GEEXBOX/
# ls
bin.tar.bz2  codecs  etc  sbin  usr
# cd codecs/
# cp atrc.so.6.0 cook.so.6.0 sipr.so.6.0 drv3.so.6.0 drv4.so.6.0 /mnt/GEEXBOX/codecs/
# cp wma9dmod.dll wmv9dmod.dll /mnt/GEEXBOX/codecs/
# df
Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
/dev/sda3              5763648   2690252   2780612  50% /
tmpfs                   128392         0    128392   0% /dev/shm
/dev/sda1                62193     18925     40057  33% /boot
/dev/sda4             11566784   6034252   4944956  55% /home
/dev/hda1                15103     12705      1618  89% /mnt
#

Votre geexbox est prête à démarrer sur le premier disque dur de votre nappe IDE qui se trouve être la CF.
Par contre si vous avez installé votre CF en esclave sur la première nappe ou sur la 2ème nappe IDE (le cas le plus fréquent vu que vous devez avoir un disque IDE en maitre), votre GeexBoX ne bootera pas si vous l'installez dans un autre PC, en effet elle sera configurée pou démarrer de l'endroit ou vous l'avez installée dans vote PC hôte (ici hdb ou hdc ou encore hdd)
En clair, le probleme est que lorsque vous installez la CF elle est en hdb ou hdc et lorsque vous la testez elle se retrouve en hda. Du coup le noyau ne retrouve pas sa partition "root".
Il faut donc modifier la configuration de grub sur la CF
en root
# mount -t auto /dev/hdb1 /mnt   (pour monter la partition de la cf dans
mnt)
# cd /mnt/boot/grub
# vim menu.lst
normalement vous devez avoir un truc du genre 
title           GeexBox
root            (hd1,0)
kernel          /boot/vmlinuz root=/dev/hdb1 ro
initrd          /boot/initrd.img
savedefault
boot

il faut modifier en 
title           GeexBox
root            (hd0,0) (premier disque dur lors du test)
kernel          /boot/vmlinuz root=/dev/hda1 ro (premier disque dur lors
du test et c'est pour cela que ça plante, le noyau ne trouve pas sa
racine)
initrd          /boot/initrd.img
savedefault
boot

ensuite sauver le fichier 
umount /mnt pour démonter la partition
et ensuite vous pouver tester

5  Carte mère

La carte mère choisie est une VIA EPIA Nehemiah M10000 LVDS 1Ghz http://www.mini-itx.com/store/?c=2\#p1620. Le test complet de cette carte mère basée sur un processeur nehemiah est à l'adresse suivante http://www.mini-itx.com/reviews/nehemiah/. Ce produit est aussi dispobible sur http://www.itx-france.com/ 
local/cache-vignettes/L500xH550/epia-m2-f1350.jpg?1682564146
local/cache-vignettes/L640xH480/epiam1L-96761.jpg?1682564147
local/cache-vignettes/L640xH480/epiam2L-f4efb.jpg?1682564147

6  Boîtier

Le boîtier choisi est de marque Morex Boîtier mini-ITX Cubid 3677. Un test de ce boîtier est réalisé à cette adresse http://hi-techreviews.com/modules.php?name=News&file=article&sid=635
local/cache-vignettes/L156xH306/3677_150-e01dc.jpg?1682564147
local/cache-vignettes/L640xH480/test_3677-e63a6.jpg?1682564147
local/cache-vignettes/L640xH480/test2_3677-b2bd7.jpg?1682564147
local/cache-vignettes/L640xH480/test3_3677-92ea5.jpg?1682564147

7  Lecteur Slim DVD

Le choix s'est porté sur le Panasonic CW8123 Slotload Slimline Combo CDRW/DVD. Son système Slotload permet de ne pas avoir de tiroir qui sort, ce qui est très pratique. C'est un lecteur Combo, qui permet de graver les CD-R en 24X et les CD-RW en 16X. Il permet de lire les DVD en 8X.
local/cache-vignettes/L200xH150/cw-8122-aca15.jpg?1682564147

8  Télécommande

Afin d'éviter d'avoir un clavier branché sur la machine pour faire la séléction des médias lus (ce qui n'est pas du tout pratique pour la voiture), une télécommande radio, permet de controler la distribution geexbox. En effet cette dernière possède un support natif des télécommandes LIRC.
C'est l'ATI Remote Wonder Wireless Remote qui a été choisie. Elle permet de contrôler toutes les fonctions d'un lecteur multimédia et même plus. De plus comme la transmission est radio, il n'est pas nécessaire d'avoir le recepteur à vue de la télécommande.
Cette télécommande st disponible sur http://www.clust.com/pages/fiche.php?ref=inb715&cat=c_info&origine=mprix et http://www.mini-itx.com/store/?c=14\#p1501
local/cache-vignettes/L599xH709/DW_10628-2e30c.jpg?1682564147
local/cache-vignettes/L400xH500/ATI_Remote_COUT-f22a2.jpg?1682564147

9  Alimentation

Afin d'avoir le moins de chose à brancher et rebrancher, j'ai choisi d'utiliser une convertisseur 12V/220V dans la voiture. Ceci permet de sortie le lecteur de la voiture et de l'utiliser directement à la maison, comme lecteur multimédia ou machine d'appoint en lui ajoutant un disque dur externe sur port USB.
L'alimentation choisie délivre 150W ce qui devrait être suffisant pour le boitier et l'écran.
http://www.electronicloisirs.fr/index.html
local/cache-vignettes/L537xH483/pi150bn-58d2c.jpg?1682564147

10  Tests de la distribution

Les tests ont été fait sur une EPIA 6000 et une EPIA 10000 LVDS.
Le projet n'est pas encore terminé, j'attends le boîtier Morex ainsi que le lecteur Slim DVD/CD-RW.
local/cache-vignettes/L672xH504/epia-m-6000-d1e59.jpg?1682564147
local/cache-vignettes/L562xH750/montage-complet-c6cec.jpg?1682564147
local/cache-vignettes/L672xH504/montage-sans-hdd-68ff9.jpg?1682564147
local/cache-vignettes/L672xH504/boot-14cd6.jpg?1682564147
local/cache-vignettes/L672xH504/menu-33a5f.jpg?1682564147
local/cache-vignettes/L672xH504/film-08b1d.jpg?1682564147

11  Montage dans le boîtier Morex 3677

Le boitier Morex 3677 est arrivé. Il est beau et bien fini. Il faut maintenant monter tout le petit monde dans la petite boîte.
local/cache-vignettes/L568xH426/3677_1-244d9.jpg?1682564147
Le boitier s'ouvre par les trois vis à l'arrière. La capot coulisse et laisse voir l'intérieur.
On commence par enlever le plateau supérieure retenue par 4 vis (très petites) qui recevra par la suite le disque dur 2"5 et la lecteur DVD/CD au format slim.
local/cache-vignettes/L568xH426/3677_2-baebe.jpg?1682564147
Afin d'installer correctement la carte EPIA 10000, il faut momentanément enlever l'alimentation du boitier par les deux vis qui la retiennent. Sinon vous risquez d'endommager la boîter et la carte mère.
local/cache-vignettes/L568xH426/3677_3-33b71.jpg?1682564147
images/3677_4.jpg
Le contenu de la boîte de l'EPIA 10000 LVDS et du boitier Morex.
local/cache-vignettes/L568xH426/3677_5-617c3.jpg?1682564147
local/cache-vignettes/L568xH426/3677_6-0465a.jpg?1682564147
On passe au montage de la carte mère dans le boitier. Il faut connecter le câble d'alimentation, le ventilateur du boitier sur l'une des prise de la carte mère et le câble des deux USB de la façade (avec détrompeur). Passons à la petite nappe qui permet de câbler le bouton power, reset, et les leds du boitier (tout est expliquer dans le petit manuel de mise en route rapide de la carte EPIA). Tous les fils sont prévus à la bonne longueur.
Il faut aussi faire attention à bien ajuster le fond de caisse (backplane) sur la carte mère et dans le boitier. Dans la cas contraire il est impossible de visser la carte mère sur les vis prévues à cet effet.
local/cache-vignettes/L568xH426/3677_7-c6aa7.jpg?1682564147
C'est à partir de ce moment que tout se complique pour moi. Il faut que je trouve une place pour la petite carte qui embarque la compact flash sur laquelle est installée la GeexBox. En effet rien n'est prévu à cet effet.
Après plusieurs essais (1 heure environ ;-)), je place cette petite carte dans un ßachet à bulles" pour l'isolation electrique (celui dans laquel je l'ai reçue) et place la carte juste derrière la façade au dessus de l'alimentation. Elle est ensuite connectée sur la première interface IDE par l'intermédaire d'une nappe très courte (10cm pas plus, sinon vous n'avez pas la place pour enrouler la nappe).
Avant de replacer le plateau qui reçoit le disque dur et le futur lecteur DVD, il faut passer la seconde nappe IDE. Il faut alors passer par dessus la barette de RAM puis dans le trou du plateau qui doit être prévu à cet effet. C'est là que l'on se rend compte qu'il vaut mieux acheter des barettes low profile (faible hauteur), car la mienne ne l'est pas et il y a tout juste la place pour passer la nappe entre le plateau et la barette.
local/cache-vignettes/L568xH426/3677_8-dc1eb.jpg?1682564147
On aperçoit ici à droite sur la photo (couleur rose/mauve), la carte de la compact flash. On peut aussi se rendre compte de la taille de ce boitier.
local/cache-vignettes/L568xH426/3677_9-c5640.jpg?1682564147
Voilà, il ne reste qu'à refermer ce joli boîtier et mettre en route.
local/cache-vignettes/L568xH426/3677_10-a7d61.jpg?1682564147

12  Installation de Linux sur un disque externe en USB2

Pourquoi installer linux sur cette DivXBox, me direz vous? Et bien quand elle ne sert pas de DivXBox, elle peut très bien servir de machine bureautique et developpement. C'est pour cela que j'ai décidé de lui adjoindre un disque dur IDE dans un boitier USB2 (pour la vitesse de transfert) qui va recevoir une distribution Debain Sarge.

12.1  Problème d'installation des distributions standards

Dans un premier temps j'ai essayé d'installer de manière stantard une debian Sarge sur le disque USB2. L'installation ne pose pas de problème particulier, jusqu'au reboot. Le bootloader est installer lui aussi sur le disque USB2 (en effet la carte mère permet de booter un disque USB2). Mais GRUB se révèle incapable de booter sur le périphérique USB2. Il se termine avec une erreur 18.
J'essaie donc d'installer LILO à la place. C'est un peu mieux, LILO se lance mais est très très lent. ON dirait de la lecture au ralenti sur disquette. Puis lors du boot, il s'arrête car il ne trouve pas /dev/console lors du pivot_root. Ce n'est pas viable.
pivot_root: file not found.
kernel panic: attempted to kill init!

12.2  Solution mettre le noyau sur un autre média

Je décide donc de placer la noyau sur un autre média. Mais il faudra alors modifier l'initrd.img du noyau afin qu'il prenne en compte les périphérique USB, ce qui n'est pas le cas des noyaux et initrd debian.
L'installation se fait normalement sur le disque USB2 jusqu'a ce que l'on reboot.
Tout est expliqué à l'adresse suivante : http://lists.debian.org/debian-boot/2004/05/msg03728.html
Le but du jeu est de refaire un initrd.img qui prenne en compte les pilotes de périphériques USB2, et de remplacer l'existant avant de rebooter.
Il suffit d'ouvrir une console (ALT-F2) pour effectuer les manipulations suivantes :
# mount /target (monte le volume target d'installation 
		de debian qui contient l'arborescence /)
# mount /target/proc (idem pour /proc)
# chroot /target (change le répertoire racine)
# nano /etc/mkinitrd/modules 
	(modifier le fichier pour qu'il contienne les modules :
	   usb-uhci
	   ehci-hcd
	   usb-storage
	   sd_mod
	   ide-disk
	)
# run mkinitrd -o /boot/initrd-2.x.xx-x-xxx (refait le fichier initrd
				modifier les xx suivant la version de votre noyau)

Il est aussi possible de modifier le fichier /etc/mkinitrd/mkinitrd.conf afin de diminuer le delay de démarrage (détection usb) qui est par défaut 10s. Pour ma part je l'ai fixé à 3s et cela fonctionne très bien.
DELAY=3

Ensuite en ce qui me concerne je monte la partition de la CF qui contient la distribution GeexBox, afin d'y déposer le noyau et l'initrd ainsi modifié. Puis je modifie le menu de GRUB afin de pouvoir booter sur la disque USB2.
# mount -t ext3 /dev/hda1 /mnt
# cp /boot/vmlinuz-2.6.8-2-686 /mnt/boot
# cp /boot/initrd.img-2.6.8-2-686 /mnt/boot
# nano /mnt/boot/grub/menu.lst

je réalise la modification suivante :
title           Debian GNU/Linux CF, kernel 2.6.8-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8-2-686 root=/dev/sda1 ro
initrd          /boot/initrd.img-2.6.8-2-686
boot

Et oui, avec l'USB, le disque dur IDE, prend des allure de disque SCSI :-), d'ou le sda1.
au final, j'ai le fichier menu.lst suivant :
default  0
timeout  5
color cyan/blue white/blue
splashimage=(hd0,0)/boot/grub/grub-splash.xpm.gz

title	GeeXboX
root	(hd0,0)
kernel	/vmlinuz root=/dev/ram0 rw init=linuxrc boot=hda1 splash=silent vga=0x315 video=vesafb:ywrap,mtrr
initrd  /initrd.gz
boot

title	GeeXboX (debug)
root	(hd0,0)
kernel	/vmlinuz root=/dev/ram0 rw init=linuxrc boot=hda1 debugging
initrd  /initrd.gz
boot

title           Debian GNU/Linux CF, kernel 2.6.8-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8-2-686 root=/dev/sda1 ro
initrd          /boot/initrd.img-2.6.8-2-686
boot

title           Debian GNU/Linux HDD, kernel 2.6.8-2-686
root            (hd1,0)
kernel          /vmlinuz-2.6.8-2-686 root=/dev/sda1 ro
initrd          /initrd.img-2.6.8-2-686
boot


On peut ensuite démonter tous les volumes
# umount /mnt
# exit (on sort de chroot)
# umount /target/proc
# umount /target
# sync (synchronise les écritures disques)
# reboot

Normalement, si l'on boote sur la CF le menu de Grub doit nous proposer de booter sur le noyau qui va nous permettre de continuer l'installation sur le disque USB2.
Et voici pour finir le résultat des commande uname et more /proc/cpuinfo
yann@geexbox:~$ uname -a
Linux geexbox 2.6.8-2-686 #1 Mon Jan 24 03:58:38 EST 2005 i686 GNU/Linux
yann@geexbox:~$ more /proc/cpuinfo 
processor       : 0
vendor_id       : CentaurHauls
cpu family      : 6
model           : 9
model name      : VIA Nehemiah
stepping        : 8
cpu MHz         : 999.961
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr sep mtrr pge cmov pat mmx fxsr sse rng 
rng_en ace ace_en
bogomips        : 1982.46

yann@geexbox:~$ 

13  Installation du Lecteur DVD/Graveur CD-RW

Après de nombreuses recherche sur le net pour trouver des lecteurs dvd/cd-rw slim (je voulais au départ un système slot-in, mais ces lecteurs sont finalement beaucoup trop cher), je suis tombé sur un revendeur parisien http://www.laptopservice.fr/test/index.php ou son magasin ebay http://stores.ebay.fr/LAPTOP-SERVICE_Lecteur-CD-DVD-CDRW_W0QQcolZ2QQdirZQ2d1QQftidZ2QQtZkm qui proposait un Combo lecteur slim DVD/CDRW SN-M242 pour portable pour 60. J'ai donc sauté sur l'affaire.
local/cache-vignettes/L400xH300/dvd-cdrw-5e391.jpg?1682564147
Bien sur il ne faut pas oublier l'adaptateur IDE vers format Slim.
local/cache-vignettes/L200xH150/slimlinecd2ide-d298a.jpg?1682564147
Le montage n'a pas posé de problème particulier. Comme le lecteur DVD slim ne permet pas de selectionner le mode Maître/Esclave, j'ai du configurer mon disque dur en esclave.
local/cache-vignettes/L568xH426/PICT0070-30607.jpg?1682564147
local/cache-vignettes/L568xH426/PICT0074-7c5c3.jpg?1682564147
local/cache-vignettes/L568xH426/PICT0075-c382e.jpg?1682564147
local/cache-vignettes/L568xH426/PICT0076-a5705.jpg?1682564147
local/cache-vignettes/L568xH426/PICT0077-478af.jpg?1682564147
local/cache-vignettes/L568xH426/PICT0078-f73cf.jpg?1682564147
local/cache-vignettes/L426xH568/PICT0083-9330a.jpg?1682564147
local/cache-vignettes/L426xH568/PICT0084-3baab.jpg?1682564147
Il reste plus qu'à mettre tout ce petit monde dans la voiture.
C'en est fini de cet article, toutes remarques et corrections sont les bienvenues à l'adresse morere@univ-metz.fr