Outils pour utilisateurs

Outils du site


lire_des_dvds_commerciaux_sous_raspbmc

Raspberrypi : Lire des dvds commerciaux sous Raspbmc

Raspbmc est une distribution pour le Raspberry pi, un ordinateur qui fonctionne avec 5 volts et qui coûte 35 € sans les taxes. Il s'agit d'une base Debian, version ARM, sur laquelle on fait tourner une version patchée de Xbmc. Par défaut, pour des raisons notamment légales, la lecture de DVDs commerciaux est désactivée. Il faut donc compiler Xbmc avec les options qui vont bien, et installer quelques librairies liées à la lecture de DVD.

Mise en place de l'environnement de compilation

Pour compiler Xbmc, on ne vas pas s'amuser à compiler tout ça sur le Rpi directement, car la puissance du CPU prolongerait cette opération de façon conséquente. On va plutôt passer par un cross-compiler ; on compile pour une famille de CPU depuis un système dont le processeur ne fais pas partie (i.e : compilation d'exécutable 32 bits depuis une architecture 64 bits, ou vers une architecture ARM, etc.). De plus, Sam Nazarko nous facilite le travail, puisqu'une image est disponible en ligne, qui contient un système complet. On est certain de cette façon de disposer de toutes les librairies nécessaires et du bon réglages des variables d’environnement et autres détails.

Téléchargement de l'image

On va donc commencer par télécharger cette image de 363 Mo prévue pour une exécution dans un environnement i386, en lançant cette commande depuis un système 32 bits.

wget http://download.raspbmc.com/downloads/source/filesystem/buildfs-bcm_rootfs-raspbmc-i386_cross_r2-hardfp.tar.gz

On décompresse ensuite l'image dans un dossier cross_builder:

mkdir cross_builder
tar -xzf buildfs-bcm_rootfs-raspbmc* -C cross_builder/

Source : http://www.raspbmc.com/wiki/technical/build-filesystem/

Chroot dans l'environnement de compilation

Le 'chroot' va nous permettre d'utiliser le contenu d'un dossier comme s'il s'agissait de l'installation complète d'un système d'exploitation. Une fois chrooté, ce sera donc comme si vous étiez dans un système distinct du vôtre.

Dans les manipulations qui suivent, il peut être nécessaire d'exécuter les commande en tant que root en préfixant toutes les lignes avec 'sudo'.

On règle dans un premier temps le réseau en copiant deux fichiers de configuration :

cp /etc/network/interfaces cross_builder/etc/network/interfaces
cp /etc/resolv.conf cross_builder/etc/resolv.conf

Puis on monte le dossier spécial /proc de l'invité :

sudo mount proc -t proc cross_builder/proc

Préparation des sources et compilation

On télécharge les sources de Xbmc en utilisant le client Git :

# Si on a pas le client git d'installé :
# apt-get install git
git clone https://github.com/xbmc/xbmc

Un dossier 'xbmc' devrait avoir été créé. On y entre :

cd xbmc

On patche le tout avec un script élaboré par notre cher Samy :

wget http://svn.stmlabs.com/svn/raspbmc/patches/XBMC-hardfp/patch_xbmc.sh
sh patch_xbmc.sh

Modification de la configuration : enable-libdvdcss

Le but de toute cette manipulation est de modifier une option de compilation qui se trouve dans le fichier xbmc/tools/rbp/depends/xbmc/Makefile. Il ne faut pas oublier cette étape, sinon vous vous retrouverez avec un build classique de Raspbmc !

On va donc éditer le fichier xbmc/tools/rbp/depends/xbmc/Makefile pour remplacer à la ligne 12 l'option '–disable-dvdcss' par '–enable-dvdcss' :

nano -c xbmc/tools/rbp/depends/xbmc/Makefile

Validez vos modifications avec le raccourci clavier 'Ctrl + o', puis quittez 'nano' avec le raccourci 'Ctrl + x'

Nos sources sont maintenant prêtes à être compilées !

On lance les scripts automatisés suivants

sh xbmc/tools/rbp/setup-sdk.sh
make -C xbmc/tools/rbp/depends/xbmc

Une fois que toutes les opérations sont terminées, on lance la compilation depuis la racine des sources xbmc :

cd xbmc
make -j'X'

Si on a un processeur à plusieurs coeurs, on remplace 'X' ci-dessus par le nombre de processeurs.

Source : http://www.raspbmc.com/wiki/technical/building-xbmc/

Packaging de la version compilée de Xbmc

Une fois la compilation terminée, il reste à créer un paquet du binaire, puis à le déployer sur notre Rpi :

On télécharge un petit script Kifétou© :

wget http://svn.stmlabs.com/svn/raspbmc/patches/nightly_scripts/create_tarball.sh

Puis on lance les commandes suivantes :

make install
sh create_tarball.sh

Après tout ça, on doit avoir une belle archive TAR dans le dossier /opt, du nom de xbmc-rbp*.tar.gz.

Source : http://www.raspbmc.com/wiki/technical/building-xbmc/

Licence Mpeg2

Pour lire des DVDs, il vous faudra dans tous les cas une licence Mpeg2. Pour l'activer, il faut un numéro de série qui sera rattaché à celui de votre Rpi. Pour en obtenir un, il vous faudra vous affranchir de 3 euros environ, puis entrer le numéro de série via l'add-on Raspbmc settings

Plus d'informations : http://www.raspberrypi.org/archives/1839 - en Anglais
Achat de la licence : http://www.raspberrypi.com/

Faire cette manipulation avant d'installer notre version compilée permet de ne pas avoir à repasser par l'add-on plus tard.

Problème avec l'add-on "Raspbmc settings"

Si le lancement d' l'add-on pose un soucis plus tard, il faut modifier le fichier /opt/xbmc-bcm/xbmc-bin/share/xbmc/addons/script.raspbmc.settings/default.py, et commenter les lignes 61 à 64 en ajoutant le sign '#' devant :

#        if os.path.isfile(UPGRADE_PATH):
#            os.remove(UPGRADE_PATH)
#        if not os.path.isdir(UPGRADE_PATH):
#            os.makedirs(UPGRADE_PATH)

Installation de la version toute fraîche

On s'arrange pour transférer l'archive crée plus tôt sur le Rpi, par SSH ou FTP par exemple, puis on se logue en SSH. Puis on effectue les opération suivantes

Il faut que les mises à jour automatique soient désactivées via l'add-on “Raspbmc settings” ! Si ce n'est pas le cas, l'installateur se lancera au redémarrage du Rpi et écrasera votre version avec la plus récente disponible sur le serveur.

# on stoppe xbmc
sudo initctl stop xbmc
# on backup l'installation existante
cp /opt/xbmc-bcm /opt/xbmc-bcm_bak
# on décompresse l'archive dans '/opt'
sudo tar -xzf xbmc-rbp*.tar.gz -C /opt
# on relance xbmc
sudo initctl start xbmc

Installation des librairies DVD

On installe les librairies suivantes sur le Rpi:

sudo apt-get install libdvdread4 libdvdnav4

On installe enfin la fameuse librairie de décodage des DVD commerciaux :

wget http://www.deb-multimedia.org/pool/main/libd/libdvdcss/libdvdcss2_1.2.12-dmo2_armhf.deb
sudo dpkg -i libdvdcss2_1.2.12-dmo2_armhf.deb

Téléchargement du build

Le build fait 140 Mo et je ne pense pas pouvoir le mettre à disposition via mon serveur, dont la bande-passante est limitée. Si quelqu'un peut héberger le fichier sur un serveur, je serais heureux de lui fournir le fichier !

Une fois cette version installée, il vous faudra suivre les indications concernant les librairies DVD ci-dessus !

Page de téléchargement des builds

2013/11/05