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.

lundi, septembre 3 2012 08:47

Monter un PC de salon, le choix du matériel

L'objectif

L'objectif du PC de salon (ou HTPC pour faire court), c'est de pouvoir regarder ses films de vacances, des photos ou encore écouter de la musique, le tout confortablement installé dans son salon. Une interface logiciel visuellement agréable est souhaitable, ce qui correspond complètement à XBMC.

Présentation de XBMC

XBMC permet de gérer sa médiathèque en tout simplicité, les fichiers pouvant être stockés sur différents support, du disque interne/externe, au partage samba/NFS/aFS etc. Il gère en plus des profils utilisateurs ce qui est bien pratique. Les gros avantages de XBMC sont qu'il récupère certaines informations sur le net, vous avez donc ainsi un résumé du film, une note (imdb), la durée, la qualité etc et surtout il retient où vous vous êtes arrêté dans le film et coche quand ce dernier a été vu en entier. Extrêment pratique. Il est hautement personnalisable via des addons et autres thèmes directement installables depuis l'interface XBMC.

Les critères du choix du matériel

Revenons au matériel. Ce PC est donc forcément relié à une TV (ou vidéoprojecteur) et éventuellement à un kit Home Cinema pour le son. Le plus consommateur en ressource étant les films, qui sont de plus en plus souvent en HD maintenant. De ce constat simple, nous pouvons déjà établir quelques critères:

  • 1 connexion HDMI (incontournable) vers l'ampli ou la TV
  • Assez de ressources pour lire des video HD

Ces critères vont nous aider à choisir le bon matériel. En fait, c'est assez simple, et pas forcément coûteux vu qu'il n'est pas du tout nécessaire d'avoir le dernier i7 pour s'en sortir (au contraire). Pour affiner notre sélection, rajoutons qu'il faut que l'ensemble soit très silencieux et plutôt faiblement encombrant, installation dans un salon oblige. Pour être sûr du silence, le plus simple est d'opter pour un PC faible consommation. Qui dit faible consommation, dit faible dégagement thermique et donc peu ou pas de ventillation, parfait pour notre usage. Il vaut mieux aussi opter pour une alimentation externe si c'est possible, toujours dans l'idée d'éviter du bruit. Si nous complétons notre liste de critères, cela donne:

  • 1 connexion HDMI vers l'ampli ou la TV
  • Assez de ressources pour lire des video HD
  • Peu coûteux
  • Petit
  • Silencieux
  • Faible consommation électrique
  • Alimentation externe

Le choix est donc simple car avec ces critères, il ne reste plus grand chose. Il sera difficile de faire tenir un i7 ou autre machine de course la dedans. Heureusement, depuis quelques années maintenant, avec l'arrivée des netbooks, une gamme de PC de bureau, utilisant le même matériel, (dit nettop) convient parfaitement. Au niveau CPU, il s'agit d'Intel ATOM au minimum double-coeur tournant autour des 1.5Ghz. Largement suffisant pour lire des videos en qualité standard, de la musique et des photos. Il existe l'équivalent chez AMD (avec les NEO). En tout cas c'est bien cette catégorie de PC qui nous intéresse mais il reste la partie video HD à traiter.

Concernant la partie video HD, c'est sur ce point qu'il faut faire attention. XBMC supporte depuis assez longtemps l’accélération video. La première couche a avoir été supporté est VDPAU pour les cartes NVIDIA. Le support pour les cartes AMD est arrivé il y a quelques mois. Pour le reste c'est un peu le néant à part quelques projets exotiques (le Raspberry Pi par exemple). Je n'ai pas eu le temps de tester complètement avec une carte AMD/ATI, donc pour être sûr d'éviter les galères, il vaut mieux partir sur du NVIDIA. Mais attention, une carte à 30€ suffit du moment qu'elle prend en charge le décodage video.

Pour la mémoire, 1 ou 2Go sera largement suffisant. Ce qui nous donne la liste suivante:

  • 1 connexion HDMI vers l'ampli ou la TV
  • Assez de ressources pour lire des video HD
  • Peu coûteux
  • Petit
  • Silencieux
  • Faible consommation électrique
  • Alimentation externe
  • Carte graphique NVIDIA

Le matériel

Normalement avec cette liste, le budget devrait tourner autour des 200, 300€ max. J'avais pour ma part opter il y a un peu plus de 3 ans pour un PackardBell Imax Mini (équivalent d'un Acer Aspire Revo), comprenant un Intel Atom 230, un chipset ION, 2Go de RAM et 160Go de disque dur. Le tout à l'époque en promo à Carrefour pour 209€. Avec un câble HDMI à 4€ le budget total était de 213€. Dur à l'époque de faire moins. Je parlerais surement dans un futur article de la solution Raspberry Pi pour faire un mediacenter à 30€. Aujourd'hui, j'hésiterais surement avec différentes marques mais en restant sur le même type de matériel (ATOM + chipset NVIDIA ION), comme Asus, Zotax, ou même Shuttle qui propose un modèle complètement passif!

Pour le système d'exploitation, la dernière Fedora 17 est parfaite pour cet usage, forcément. L'installation des pilotes NVIDIA et d'XBMC se faisant depuis les dépôts RPMFUSION. Le fait de disposer d'un vrai PC avec un vrai OS permet de pouvoir utiliser la TV comme écran, pour par exemple surfer, lire ses mails etc. Le tout étant aussi bien plus souple qu'une solution matériel type divx box.