Aller à la recherche

Des Logiciels Libres

Pour parler de Logiciels Libres en milieu professionnel... ou pas!

vendredi, septembre 14 2012 17:49

Compiler OpenElec pour Raspberry Pi

Les pré-requis pour la compilation

Pour récuperer les sources il faut un client git:

yum install git

Il faut ensuite les paquets classiques pour compiler:

yum install gcc-c++ flex bison gawk gperf autoconf automake m4 \
cvs libtool texinfo gettext libxslt expat zlib-devel ncurses-devel zip

La commande pour récupérer les sources est la suivante:

git clone git://github.com/OpenELEC/OpenELEC.tv.git

Avant de compiler il faut se placer dans la repertoire des sources:

cd OpenELEC.tv

Pour mettre à jour de temps en temps les sources, il suffira de faire un git pull.

La compilation

Les sources d'OpenElec peuvent couvrir plusieurs projets, celui qui nous interesse ici est le projet "RPi". L'architecture pour la compilation sera "arm". La commande pour la compilation (spécifique à OpenElec) est la suivante:

PROJECT=RPi ARCH=arm make

La compilation peut être assez longue. Si tout ce passe bien, la compilation se termine par la création de l'image système au format SquashFS. Ce qui nous intéresse maintenant se découpe en 3 parties:

  • Une partie qui gère le boot
  • le kernel
  • le système incluant xbmc

Ces 3 parties vont être copiées dans la partition "System" qui peut être vu comme une partition /boot en gros.

Préparation de la carte SD

Pour fonctionner, il faut une carte SD partitionnée (avec fdisk par exemple) comme suit:

  • une partition vfat de 128Mo, flaguée bootable
  • une partition ext4 utilisant le reste de la carte SD

La partition en vfat de 128Mo devra être labelisée en tant que "System", l'autre partition en ext4 en tant que "Storage".

Pour formater en vfat avec le label "System":

mkfs.vfat -n System /dev/<carte SD partition 1>

Pour formater en ext4 avec le label "Storage":

mkfs.ext4 -L Storage /dev/<carte SD partition 2>

L'installation sur la carte SD

Le bootloader

La première partie à copier sur la carte SD gère le boot, elle se décompose en 3 fichiers:

  • arm128_start.elf
  • bootcode.bin
  • loader.bin

Ces 3 fichiers sont à copiés sur la carte SD dans la partition System, par exemple montée dans /media/System. Le arm128_start.elf est à renommer en start.elf. Les commandes de copies sont les suivantes:

cp build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*/arm128_start.elf /media/System/start.elf
cp build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*/bootcode.bin /media/System/
cp build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*/loader.bin /media/System/

Le répertoire bcm2835-bootloader-* contient dans son nom un numero de release qui varie en fonction des sources récupérées, d'où le "*". Si un "make clean" est exécuté avant chaque compilation, il n'y aura qu'un seul répertoire bcm2835-bootloader-<release>, dans le cas contraire, et si les sources concernant le bootloader ont été mises à jours, il pourrait y en avoir plusieurs.

Le kernel

Le kernel sous format de fichier image, se trouve dans le répertoire target. Son nom de fichier contient un numero de release et peut donc varier en fonction des sources utilisées. Il est à copier sur la carte SD dans la partition System, en le renommant en kernel.img. La commande est la suivante:

cp target/OpenELEC-RPi.arm-devel-*.kernel /media/System/kernel.img

Le système

Le système est dans un fichier image au format SquashFS. Cette image est créée en fin de compilation et se trouve dans le repertoire target. Son nom de fichier contient lui aussi un numéro de release, qui peut donc varier en fonction des sources utilisées. Cette image du système est à copier sur la carte SD, toujours dans la partition System, renommée en SYSTEM. La commande est donc la suivante:

cp target/OpenELEC-RPi.arm-devel-*.system /media/System/SYSTEM

Conclusion

Rien de bien compliqué en soit, grâce au fichier configurant le projet "RPi" et à l'excellent travail de l'équipe OpenElec. Il ne reste plus qu'à démonter la carte SD et l'insérer dans le Raspberry Pi.

Ce billet est en gros une traduction allegée de la documentation issue du wiki officiel consultable ici.

samedi, septembre 8 2012 11:50

OpenElec/XBMC pour Raspberry Pi

Pour ceux que ça intéresse, je compile régulièrement depuis peu la version d'OpenElec avec XBMC 12 alpha (frodo) pour Raspberry Pi. Les fichiers sont disponibles à cette adresse.

splah-rpi

Pour se servir de ces fichiers, il faut:

  • 1 raspberry pi
  • 1 carte SD (512Mo minimum)

Après voir récupéré une des archives et l'avoir décompressée, voici la procédure à suivre:

Sur la carte SD, creer 2 partitions:

  • la 1ere de 128Mo en fat32 flag bootable, label System (mkfs.vfat -n System /dev/SDCARDp1)
  • la 2e du reste de la carte en ext4, label Storage (mkfs.ext4 -L Storage /dev/SDCARDp2)

Copier les fichiers presents dans le repertoire System dans la racine de la partition vfat de 128Mo. Au final cette partition doit contenir:

  • bootcode.bin
  • cmdline.txt
  • kernel.img
  • loader.bin
  • start.elf
  • SYSTEM

Le premier boot peut être plus long vu que certains fichiers vont être créés sur la partition Storage.

Normalement je teste tout ça avant d'uploader, avoir une version très à jour permet de tester pas mal de chose, comme le support CEC, le nouveau moteur Audio d'XBMC etc. Même si tout ceci est en version alpha, cela reste très utilisable.

Je ferais un autre billet sur la compilation de tout ça, car ce n'est pas bien compliqué au final.