Après avoir fait une Squeezebox pour moins de 40€, nous allons voir aujourd’hui comment réaliser un PC Media Center pour moins de 40€, là encore à base de Raspberry Pi.
Pour rappel, le Raspberry est un tout petit ordinateur coutant un peu moins de 40€:
Pour ceux qui ne connaissent pas, le Raspberry Pi, c’est ca:
Système :
- Broadcom BCM2835 SoC (System on Chip)
- Processeur ARM1176JZF-S cadencé à 700MHz
- Circuit graphique Broadcom VideoCore IV
- Mémoire vive 512 MB
- Espace de stockage : sur cartes SD/MMC/SDIO
Connectique :
- 2 ports USB 2.0
- Video : Composite (PAL et NTSC), HDMI ou Raw LCD (DSI)
- Audio : Jack 3.5mm ou Audio sur HDMI
- Ethernet : RJ45 10/100
Périphériques (broches au pas de 2.54mm):
- 8 x GPIO
- UART
- Bus I2C
- Bus SPI
- Sorties d’alimentation +3.3V et +5V
- Masse
Alimentation : 5V – 700 mA via MicroUSB ou header GPIO
Dimensions : 85,60mm x 56mm x 21mm
Poids : 45g
Au vue de sa taille, on pourrait douter de ses capacités, pourtant son processeur graphique sait parfaitement décoder des vidéos en H264 1080 (vidéos haute définition). Nous n’aurons donc pas de problème pour décoder la vidéo HD. Pour le reste, en revanche, le processeur n’étant pas très puissant, il faudra trouver un système assez léger.
Il ne reste donc plus qu’à trouver un système léger, mais sympa, à installer dessus: bonne nouvelle, XBMC, qui n’est plus à présenter dans le monde des logiciels media center, a déjà été décliné en plusieurs versions sur le Raspberry PI. Nous avons RaspBMC, XBian, et enfin Openelec. Après les avoir toutes testées, j’ai opté pour Openelec, pour sa facilité d’installation et surtout son interface fluide, les deux autres distributions étant à mon avis un peu plus lourdes.
I. Installation
Pour le moment, OpenElec ne propose pas officiellement d’image toute faite pour Raspberry. Heureusement, un autre développeur s’en charge et les met à disposition, ce qui évitera de devoir construire soit même son image: http://openelec.thestateofme.com
Il met à jour quasiment chaque jour avec la dernière image. Il suffit donc de télécharger la dernière image, un fichier rxxx.img.zip
Une fois téléchargée et décompressée, il ne reste plus qu’à copier cette image sur une carte SD de 2Go minimum, à l’aide de l’utilitaire Win32 Disk Imager. L’utilisation est très simple, on sélectionne le fichier img précédemment téléchargé, et on indique l'emplacement de la carte SD:
Après quelques minutes votre carte est prête !
Tant que la carte est dans le pc, nous allons aller y modifier un petit fichier de configuration. Il s’agit du fichier config.txt qui se trouve à la racine de la carte:
Si vous disposez de la dernière version de la Raspberry Pi B, avec 512Mo de mémoire, commentez la ligne gpu_mem=128 en mettant un # devant, et ajustez les deux lignes du dessous de facon à avoir cela:
La Raspberry peut également être overclockée. C’est autorisé par le fabricant, sans perte de garantie. Le petit processeur de 700Mhz peut donc théoriquement être boosté sans problème à 1Ghz. Plusieurs niveaux d’overclock sont possibles, pour ma part j’ai choisi le mode médium, qui est un bon compromis puissance / niveau de chauffe / stabilité. En mode « turbo », j’ai en effet rencontré de grosses instabilités sur OpenElec, le système redémarrant parfois sans raison apparente (ca venait peut être aussi de mon alimentation, mais je n’en avais qu’une sous la main). Les différentes valeurs sont données dans le tableau présent dans le fichier config.txt, il suffit de renseigner avec les valeurs qu’on souhaite. Chez moi:
Enfin, il faut savoir que la Raspberry sait décoder matériellement du H264. Mais elle sait également le faire pour du MPEG2 ou du VC-1. Seulement, ces derniers demandent des royalties. Pour ne pas gonfler le prix du Raspberry pour les utilisateurs n’ayant pas besoin de ces codecs, Raspberry n’a pas intégré ces licences. Dans le cadre d’un media center, ils sont fortement conseillés, tout au moins le MPEG2, utilisé pour la lecture de DVD. Le VC-1, lui, peut être utilisé par certains Blu Rays. On peut acheter les licences sur le store du Raspberry ici, pour moins de 3€. Une fois qu’on a récupéré la licence, on renseigne son numéro dans le fichier de configuration à cet endroit, en décommentant la ligne adéquate, bien sûr:
Une autre amélioration que nous pouvons faire, qui est d’ailleurs indiquée dans le wiki d’OpenElec: utiliser une clé Usb pour le stockage.
Si vous ne connaissez pas XBMC, il faut savoir que celui ci scanne vos films et recherche jaquettes, fanarts, et résumés sur internet. Ainsi on a une navigation très sympa, par jaquettes, avec affichage d’un fond d’écran en rapport avec le film, etc… Durant mes tests, je me suis apercu que cette partie était un peu lente: les jaquettes et les fonds d’écran mettaient quelques secondes à s’afficher, bien que ma carte SD soit une classe 6. On peut donc utiliser à la place une clé Usb, et là je dois dire que c’est le jour et la nuit, l’affichage des images étant quasi instantané.
Il va falloir une clé Usb (4Go est déjà très bien) qu’on va formater en EXT4. Pour cela, il va falloir posséder un PC avec Linux pour pouvoir formater sa clé Usb… Pas de panique, vous avez un Raspberry ! Vous pouvez donc tout à fait installer le système Raspbian sur une autre SD et démarrer le Raspberry avec cette carte, vous aurez alors un pc sous linux, avec une interface graphique ;-) Là, il n’y a plus qu’à lancer une fenêtre terminal.
Faites fdisk -l pour lister les disques du système, votre clé Usb devrait être identifiée par /dev/sda1.
Faites umount /dev/sda1 pour la démonter, sinon vous ne pourrez pas la formater.
Puis enfin mkfs.ext4 /dev/sda1 (si vous avez un message d’erreur il faut peut être être en root, donc utiliser la commande sudo mkfs.ext4 /dev/sda1).
Après quelques secondes de formatage, vous voilà avec une clé Usb formatée en EXT4 !
Pour que l’ensemble reste un peu « joli », optez pour une clé Usb micro. J’ai par exemple celle ci, en 16Go, qui dépasse à peine du Raspberry:
Il n’y a plus qu’à insérer la carte SD OpenElec dans le Raspberry, connecter la clé Usb, et relier le tout au réseau ethernet, à un écran (ici ma TV Samsung, en HDMI), et un clavier, au moins pour la configuration initiale.
Démarrez le Raspberry. Ensuite, il faudra s’y connecter à distance en SSH, via un logiciel comme Putty, par exemple, pour terminer notre optimisation. L’utilisateur par défaut est root et le mot de passe openelec.
Une fois connecté, lancez la commande
mount -o rw,remount /flash
pour monter la clé Usb
Puis modifiez le fichier /flash/cmdline.txt pour définir cette clé Usb comme stockage par défaut. Vous devriez avoir cela dans le fichier:
boot=/dev/mmcblk0p1 disk=/dev/sda1 ssh quiet
Voilà, c’est fini ! Un peu laborieux peut être pour la dernière partie, mais avec cela vous aurez un système rapide ! Pour ma part j’avais d’abord essayé avec la carte SD uniquement, puis je suis passé à la clé Usb: j’ai dû refaire toute ma configuration d’OpenElec ensuite, car tout était stocké sur la partition stockage de la SD. Je vous ai donc fait prendre un raccourci directement ;-)
Il n’y a plus qu’à redémarrer le Raspberry pour qu’il tienne compte des nouveaux paramètres.
II. Configuration
La première fois, l’interface va mettre deux bonnes minutes avant de s’afficher à l’écran. Le système finit de s’installer et de se configurer, il faut le laisser faire.
Allons directement dans le menu Settings, tout à droite, pour configurer le système. Puis dans le sous menu Apparence, Région, pour régler la langue, la région, et le fuseau horaire en français:
L’interface va instantanément passer en francais et l’heure va se régler toute seule.
Tant que nous sommes dans le menu Apparence, désactivons l’affichage des flux RSS dans le thème:
Cette fonction fait défiler des informations en bas de l’écran, mais c’est un peu gourmand en ressources. En le désactivant on gagnera en fluidité sur notre Raspberry, c’est la dernière petite touche pour optimiser tout ca ;-). Ici on peut également changer le thème de l’interface. Après avoir testé les interfaces proposées, Confluence reste la plus fluide. Certaines, comme Aeon Flux, mettent parfois jusqu’à 30s avant d’afficher la page de menu. A réserver à de grosses configurations, donc , mais pas pour notre Raspberry :p Il existe toutefois quelques thèmes sympas à installer depuis un fichier zip, que des utilisateurs de Raspberry ont validé. Vous pouvez jeter un oeil ici: http://forum.xbmc.org/showthread.php?tid=151960
On continue dans les paramètres, en se rendant dans les services. Dans « Serveur Web », autorisez le contrôle de XBMC en HTTP, nous y reviendrons plus loin:
Dans « Télécommande », autorisez le contrôle local et distant:
Enfin, dans Airplay, activez l’option si vous avez un iPhone ou un iPad: vous pourrez alors lancer votre musique ou vidéo sur votre TV comme avec une AppleTV, mais gratuite ;-)
C’est tout pour le paramètrage « pur ». Les autres options concernent l’affichage, la facon de lire les média, etc… Par défaut les options sont très bien, je vous laisse jeter un oeil par vous même si vous voulez personnaliser un peu.
Il n’y a plus qu’à ajouter ses médias. Tous mes films sont stockés sur mon serveur Windows Home Server 2001. Il faut simplement respecter une certaine structure:
- chaque film dans son propre répertoire, portant le nom du film, et si possible l’année entre parenthèse, ce qui aide XBMC à trouver les bonnes informations.
- les séries dans des répertoires séparés, les saisons dans des sous répertoires séparés, et chaque épisode nommé de cette facon SxEx.Titre . Si nous avons l’épisode 7 de la saison 2, par exemple, nous aurons « S2E7.Titre de l’épisode »
On se rend donc dans XBMC, dans la partie Vidéo, Fichiers, et on choisi « Ajouter une source vidéo »:
De nombreuses sources sont disponibles. Ici je sélectionne le partage Windows:
XBMC me trouve automatiquement les pc disponibles:
J’ajoute le répertoire Vidéo qui m’intéresse sur mon serveur WHS2011, ici par exemple Comédies:
J’indique qu’il s’agit d’un répertoire de films. Pour les séries, on indiquera bien sûr qu’il s’agit de séries.
Pensez à cocher « chaque film dans un dossier séparé »:
Puis allez dans « Paramètres » et réglez la langue préférée en « fr » si vous voulez avoir vos synopsis en francais:
Validez par ok, XBMC nous demande s’il doit scanner les fichiers maintenant, répondez oui. En haut de l’écran, vous devriez voir XBMC travailler et analyser tous les fichiers.
Quand il aura fini, vous devriez avoir vos films avec une belle présentation de cette forme:
On peut ainsi ajouter sa musique et ses photos, c’est exactement le même principe.
XBMC propose également de nombreuses extensions. On en trouve pour regarder la TV via un tuner réseau, des émissions de replay, des émulateurs de jeux, etc…
Un exemple en installant par exemple l’extension M6 Replay:
Après avoir vu sa présentation, on peut l’installer:
On accède alors aux émissions disponibles en Replay, pour M6, W9, ou 6Ter:
On peut alors consulter le détail et lancer la lecture si on souhaite regarder l’émission.
Il y a ainsi de nombreuses extensions pour ajouter divers services à XBMC.
III. Utilisation
L’utilisation de XBMC sur le Raspberry est vraiment très simple. Déjà, notons la rapidité de démarrage, qui prend moins d’une minute (sauf la première fois). Ok, j’avais essayé Openelec sur mon ancien PC Home Cinéma, le démarrage se faisait en 5s chrono. Mais pour notre Raspberry, ce n’est pas si mal ;-)
La plupart des TV étant aujourd’hui équipées de ports Usb, on peut également imaginer brancher l’alimentation du Raspberry directement sur le port Usb de la TV. Ainsi le Raspberry s’allume et s’éteint en même temps que la TV. Avec sa toute petite taille, il est facile de le cacher derrière la TV. Bon, perso je préfère éviter: le Raspberry reste tout de même un PC, une extinction comme ca en coupant l’alimentation n’est jamais conseillée. L’allumage et l’extinction du Raspberry est toujours la petite question qui revient. Ils ont tellement épuré ce pc qu’ils n’ont pas prévu de bouton de mise en marche :/ Au pire, on peut se permettre de le laisser tourner tout le temps avec ses 3.5w de consommation seulement…
1. TV
Première grande surprise dans mon cas: le Raspberry branché en HDMI sur ma TV Samsung est compatible CEC, c’est à dire qu’il peut être piloté par la télécommande de ma TV :D En fait la TV capte les ordres infrarouge et les retransmet au Raspberry via le HDMI. Difficile de faire plus WAF comme solution :D Si votre TV n’est pas compatible, vous pourrez utiliser une télécommande IR à brancher sur l’un de sports Usb. OpenElec est compatible avec de nombreux modèles.
Dans mon cas, je n’ai que l’alimentation, la prise réseau, et le cable HDMI. Pas besoin de clavier ni de souris, puisqu’une fois XBMC configuré, tout se fait à la télécommande. Le Raspberry se fait totalement oublier: avec la télécommande de la TV, on change de source pour sélectionner XBMC, et on continue de naviguer avec la même télécommande à travers ses films, sa musique et ses photos. Petite démonstration en vidéo:
La présentation des films et des séries peut être personnalisée facilement en choisissant le type de présentation.
C’est propre, clair, agréable à utiliser. Avec les quelques optimisations (clé Usb, overclock du Raspberry, etc…) l’interface est fluide.
Les formats reconnus sont nombreux. La plupart de mes films sont des fichiers MKV H264 en 1080p, ils passent sans problème, sans aucune saccade. Certains fichiers MKV font tout de même 40Go et tout passe par le réseau, un bel exploit !
Actuellement la version d’OpenElec sur Raspberry ne sait pas bien lire encore les ISOS DVD. En revanche, elle lit très bien les fichiers VIDEO_TS d’une structure DVD (à condition d’avoir pris la licence MPEG2, sinon vous n’aurez que le son).
On aurait presque pu lire aussi les ISOS Blu Ray. XBMC lance le film principal, l’image est superbe, avec le son, etc… Par contre nous avons là un problème de cache que je n’ai pas pu résoudre: au bout de 2-3 min, la lecture s’arrête pour mettre la suite en cache, puis la lecture reprend :/ Ce serait presque possible, donc, mais pour le moment difficile de regarder un film dans ces conditions. A voir si une optimisation est possible, mais j’ai peur qu’on soit limité ici par la petite mémoire du PC :(
Pour la navigation, comme je le disais, XBMC est compatible CEC. Au pire si la télécommande de votre TV n’est pas reconnue, de nombreuses télécommandes IR Usb sont disponibles à pas cher. Mais on peut aussi opter pour le contrôle via un smartphone ou une tablette.
2. Tablette / Smartphone
XBMC est un logiciel très utilisé à travers le monde, et de nombreux développeurs ont créé leur application. Il y en a une par exemple que j’aime tout particulièrement: Constellation sur iPad. Comme nous avons autorisé plus haut le contrôle de XBMC par des équipements extérieurs, l’application Constellation peut s’y connecter facilement et en prendre le contrôle total. On peut donc naviguer à travers ses films sur l’iPad:
Voir le synopsys, les acteurs, et même regarder la bande annonce directement avec Youtube.
Si on veut regarder le film, il n’y a qu’à appuyer sur le bouton lecture: le film est lu automatiquement sur la TV.
On a alors la possibilité de piloter le volume, le chapitre, sous titres, etc…
Petit détail sympa: il est possible d’ajouter des touches de raccourci personnalisées. Ca peut être des commandes internes à XBMC, mais également des requêtes HTTP. On peut donc tout à fait créer un raccourci pour piloter sa box domotique et éteindre la lumière, descendre l’écran du vidéo projecteur, etc… Comme ca tout est regroupé sur sa télécommande Home Cinéma ;-)
Si le film ou la musique que vous souhaitez regarder est stocké sur votre iPhone ou iPad, vous pouvez utiliser Airplay pour lancer sa lecture directement sur la TV en passant par XBMC, comme vous le feriez avec une AppleTV. Que demander de plus ?
3. Interface Web
Enfin, XBMC est également pilotable via une interface web, en tapant simplement l’adresse IP du Raspberry dans un navigateur internet. On accède alors à ses films, musiques, photos…
Cela est rendu possible grâce à une API intégrée à XBMC, qui peut être utilisée pour piloter XBMC depuis sa box domotique par exemple… Nous verrons des exemples plus tard ;-)
IV. Conclusion
Nous avons là un média center polyvalent, puissant (capable de lire de la HD 1080 tout de même !), agréable à utiliser, et vraiment peu gourmand en énergie. Ah, et j’ai failli oublier: et vraiment bon marché, un Raspberry Pi coutant un peu moins de 40€. Plutôt que d’avoir une architecture lourde, un pc gourmand en énergie, bruyant, etc… connecté à la TV, le Raspberry, allié à XBMC, s’avère donc être une excellente solution ! Personnellement je l’ai adopté: ma TV Samsung est capable d’origine de lire les fichiers sur le réseau, mais sa présentation en dossiers facon windows est bien triste, et elle a du mal à lire certains formats (certains MKV, et ne parlons pas des dossiers DVD…). Sans compter que XBMC est capable de faire bien d’autres choses, que je vous présenterai dans de prochains articles la semaine prochaine… Profitez donc du week end pour vous installer XBMC ;-)
13 réactions
MERCI POUR CE SUPER TUTO
Tout marche du tonnerre
Au cas ou pour les noob comme moi =) je rajouterai:
« Puis modifiez le fichier
/flash/cmdline.txt pour définir cette clé Usb comme stockage par défaut.
Vous devriez avoir cela dans le fichier:
boot=/dev/mmcblk0p1 disk=/dev/sda1 ssh quiet »
Pour cela il faut accéder à la clé USB avec cd /flash et taper vi cmdline.txt
modifier le fichier puis appuyer sur échap et taper :wq pour enregistrer et quitter!
Voila c’est pas sorcier pour ceux qui ont l’habitude mais ne connaissant rien en SSH ou en code tout court j’ai mis 10 minutes à trouver ^^
Mon système de fichier est monté en lecture seule, je n’arrives donc pas à modifier cmdline.txt ni à remonter le système de fichier en lecture/écriture.
Avez-vous plus d’informations?
Bonjour,
je suis en dual-boot avec mon Rpi via berryboot. J’ai donc Raspbian et Openelec dessus. Je voulais utiliser l’astuce de la clef usb pour le stockage en ext4 mais je n’arrive pas a me connecter en SSH depuis mon pc grâce à Putty. il me met : » network error connection refused »
Que faire?
Cordialement
Bonjour,
Je possede une cle wifi netgear n150 avec la puce RTL8188CUS.
je suis sur openelec.
Comment faire fonctionner cette cle ?
car j’ai vu un script d’installation pour pour d’autre systeme.
merci
bonjour,
quel taux de rafraichissement choisir: 24 50 ou 60 HZ
merci pour votre réponse.
J’ai investi dans le raspberry pour xbmc…
Tout d abord y a quelques infos curcial que tu sautes dans ce « tuto »
et je suis vraiment décu, ca lag pas mal, c est vraiment pas fluide, pourtant carte sdhc classe10 + clé usb…
3sec pour rentrer dans une serie, 2-3sec qd je change d episode pour que le résumé s affiche
Bonjour à tous
S’avez vous ou je pourais trouvé une image openelec/xbmc pour un raspberry Pi b+ ?
Merci d’avance
bonsoir ou bonjour
Je viens de terminer l’étape 2. Openelec est bien demarré.Je vois l ‘écran ou l on doit configurer le langage et le clavier. Mais le clavier n est pas actif et idem pour la souris. Pourtant les 2 fonctionnent bien avec la version de base de raspbian. Je suis vraiment novice alors si quelqu’un peut m aider merci
Merci à Cedric pour cet article ! J’ai récemment fait l’acquisition d’un rasp B+, installer openelec avec berryboot, tout se lance très bien etc… MAIS je n’arrive pas à lire mes fichiers en réseau sur le PI ! Je m’explique, le Pi est parfaitement connecté en wifi, mais impossible de trouver le dossier créer sur mon bureau… Comment faites vous pour partager les films ? Merci beaucoup, Alex
Pareil pour moi, si quelqu’un a une solution !
Salut je suis moi aussi intéressé par ce système et j ai vu plus haut que certains fichiers avoisinent les 40go donc tu as un ddr branché dessus je suppose par port usb? Ou existe-t-il un autre moyen
merci encore
serge
Bonjour,
je cherche une solution pour relier mon videoprojecteur non wifi à ma bbox et un lecteur blu-ray wifi. Ce mediacenter serait-il une solution en le reliant par le port hdmi du VP ? Y a-t-il un moyen plus simple ?
Merci de votre aide.
ou je pourais trouvé une image openelec
[url=https://kodi.software/]Kodi[/url] [url=https://nox.uno/]nox[/url]