OpenELEC sur Raspberry Pi, un media center de rêve ?

closeCet article a été publié il y a 9 ans 7 mois 15 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

OpenELEC est une distribution dédiée à la transformation d’une machine en media center. Elle se base pour ça sur du noyau Linux, et l’excellent XBMC (qui maintenant va s’appeler Kodi). J’avais déjà testé, sur mon Raspberry Pi, et avec beaucoup de déception, RaspBMC, un autre projet basé dessus, mais la lecture réseau était tout simplement inutilisable, ce qui est vital pour moi. C’était l’année dernière. Entre temps, mon home cinéma a rendu l’âme, il me fallait donc une solution de repli. Le Pi a donc repris du service. Et la chanson est bien différente désormais.

Le Raspberry Pi est une machine étonnante

En effet, pour 35€ dans son modèle B, vous disposez d’un micro-ordinateur complet, proposant une prise HDMI, deux ports USB, un port Ethernet (mais relié en interne en USB, j’y reviendrais), d’un CPU ARMv6 à 700MHz de 512Mo de RAM, et surtout du VideoCore 4, une partie graphique étant capable de faire tourner Quake 3 et de décoder des films en 1080p. Oui, tout ça avec une consommation de 3W pour 35€.

Cette bestiole s’est retrouvée au centre d’un nombre assez varié de projets, et il pourra servir à presque tout, jusqu’au contrôle vocal de votre four à micro-ondes (oui oui), ou encore de caméra « embarquée » sur un casque avec GPS intégré. J’ai personnellement testé une Raspbian en mode desktop pour surfer depuis mon salon, en mode serveur pour faire du backup rapide des documents importants, et un jour, il servira de centrale de gestion Domoticz (quand j’aurais le contrôleur RFX qui va avec). Histoire de pouvoir avancer un peu plus sur le projet Domohouse, si j’arrive à pondre du code qui marche.

openelec-raspberry

Et dans le cas qui nous occupe, c’est le rôle de media center que je vous propose de découvrir. J’avais déjà testé un autre projet pour le Pi, RaspBMC. Le point commun avec OpenELEC, c’est l’utilisation de XBMC, une solution logicielle de centre multimédia (histoire de le dire au moins une fois en français). Mais à l’époque, jeunesse des différents projets aidant, le résultat n’avait pas été très concluant. La faute principalement à la faiblesse de l’interface réseau et des caractéristiques techniques du Pi elles-mêmes (qui restent d’actualité, j’en reparle après). En effet, le Pi ne dispose que de 512Mo de RAM, et la carte réseau, à la norme Fast Ethernet, soit 100Mbps, est en réalité raccordée au reste par un port USB, ce qui bride un peu les performances réelles. Seulement, pour pouvoir mettre en mémoire tampon suffisamment de données pour afficher un film en full HD par le réseau, il faut du débit, et une bonne gestion de la mémoire, sans parler de la légèreté de l’interface pour libérer les ressources nécessaire à la coordination de tout ça. Seulement voilà, ce n’était clairement pas le cas, et même des films pourtant pas en haute définition pouvaient saccader. J’avais donc laissé tomber.

OpenELEC, une distribution de choix pour un mediacenter Pi

Attention : ceci n’est pas un test exhaustif, juste un ressenti par rapport à ce que je comptais tester, et ce que j’ai rapidement pu découvrir en parcourant certains menus.

Fast forward, 2014. La prise en charge du Pi a largement été améliorée par le noyau. La version ARM d’XBMC aussi a évolué dans tous les coins. Avec la mort de mon home cinéma dûe à la foudre, il me fallait une solution d’urgence pour pouvoir lire mes contenus, une fois la télé remplacée. J’ai donc décidé de ressortir le Pi, ma carte micro-SD (et son adaptateur, inutile sur le modèle B+ qui est sorti récemment), et de retenter l’aventure, avec OpenELEC, que j’étais curieux de tester aussi à l’époque, ce que je n’ai pas fait évidemment, comme beaucoup de choses pour lesquelles le temps manque toujours.

OpenELEC n’est pas juste destinée au Pi, mais propose une image dédiée, à copier sur SD. J’ai tenté deux installations, la version 4.1.2 instable (et c’est peu de le dire, en fait il redémarre en boucle), et la version 4.0.7 stable. Une fois l’image récupérée, l’installation sur carte SD est diablement compliquée, du moins sous Linux :

où /dev/sdb correspond au chemin de votre carte sd (un petit dmesg quand la carte est insérée vous renseignera sur le chemin)

Oui je sais, j’aime bien l’ironie et le sarcasme. Les windowsiens peuvent utiliser Win32 Disk Imager pour parvenir au même résultat. Pour les macs, je crois que dd est aussi disponible, sinon, démerdez-vous 😀

Bref, une fois l’image installée sur la carte, on la « fourre » dans le Pi, on raccorde la prise HDMI, la prise Ethernet, et enfin, le chargeur microUSB. J’ai utilisé celui de mon téléphone pour l’occasion, mais si la situation se prolonge, je vais devoir trouver un autre moyen.

La faiblesse du Pi est présente…

Tout comme lors de mon premier essai, le Pi montre vite quelques limites de puissance. Rien que le démarrage est assez lent, plus d’une minute. Il est fréquent de voir des ralentissements, lags, voire même des blocages lors de scan de dossiers (j’ai eu le cas sur la musique). Ces blocages sont aussi présents lors de l’installation des extensions. Cela est en partie dû à la qualité et la rapidité de la carte SD que vous utilisez pour y stocker l’image. Mais les lags même de souris sont fréquents, même en cours de lecture. Je l’ai évoqué plus haut, l’interface Ethernet, qui permet pourtant en théorie une lecture fluide même sur mes fichiers les plus lourds (un exemple avec Gladiator, 27.3Gio au compteur), en tout cas avec mon home cinéma, n’atteint pas le plein débit, et la mémoire vive est limitée. Chose étrange, alors qu’il faudrait en théorie privilégier la lecture en DLNA qui est plus léger que le SMB pour la vidéo, j’ai finalement dû passer par celui-ci pour avoir une lecture pratiquement fluide tout du long. Bref, on y est presque, mais ce n’est pas encore tout à fait ça. Le film avait tendance à se mettre en pause plus ou moins régulièrement, et j’ai même eu droit à un retour à la liste de films pour une des coupures. Pourtant…

Je vous conseille ces conférences !

Je vous conseille ces conférences !

…Mais sa puissance aussi !

Ce léger souci de réseau, qui n’en était pas petit mais un gros un l’année dernière, n’est plus présent que pour les films les plus lourds (à priori supérieurs à 15/17Go), et malgré ça, la lecture est parfaitement fluide ! Pas de ralentissement, en dehors du curseur de la souris déjà évoqué, pas de saute d’image ou de son. Bluffant. Quand elle arrive à tourner fluide, l’interface est agréable à utiliser, les effets de transitions ne font pas du tout kikoolol et donnent une véritable impression de bonne finition. Au final, à part peut-être une dizaine de fichiers, la totalité de ma bibliothèque est lisible sur ma télé, et contrairement à mon home cinéma, les sous-titres des MKV sont bien affichés. Un gros confort appréciable pour certains films qui présentent de longs passages en langue étrangère non doublés, de préférence ceux qu’on a pas l’habitude d’entendre (non, je n’ai pas fait russe première langue, désolé).

S’il met parfois un peu de temps pour scanner les dossiers, tout est parfaitement lisible, même certains formats un peu bâtards (du genre, certains vieux fichiers créés avec du logiciel fourni avec une carte TV par exemple, quand les éditeurs se permettaient tout et surtout n’importe quoi). On a peine à croire qu’un appareil aussi peu cher, et qui consomme aussi peu (comptez moins de 3W en fonctionnement), puisse tenir aussi bien le pavé.

XBMC y est pour beaucoup

XBMC signifiait à l’origine Xbox Media Center. La première Xbox n’était en effet qu’un PC déguisé avec un Pentium 3 à bord, sortie en novembre 2001 aux USA et en 2002 chez nous. Le projet a démarré la même année, et est maintenant chapeauté par une fondation, et a largement débordé de la machine de Microsoft pour s’exécuter sur d’autres systèmes. Je vous laisse lire la page anglophone de Wikipedia pour vous convaincre de la solidité du bousin.

openelec-xbmclogo

XBMC est donc mature, et ça se voit. Si certaines versions ont été plus critiquées que d’autres, force est de constater que la qualité du logiciel et de ses fonctionnalités est là. Non seulement l’interface est fluide dans l’ensemble, même sur un Pi, ce qui est un exploit en soi, mais les modules présentent une grande cohérence, ce qui fait qu’une fois que vous avez appris à ajouter une source, par exemple dans le module Vidéos, vous saurez faire de même pour la musique, pour la météo, pour la photo, etc. Le système d’extensions permet d’ajouter une quantité de fonctionnalités et ou services web qu’il m’est impossible de lister ici. Et leur installation est simplissime.

Oui, on est au mois d'Août pourtant...

Oui, on est au mois d’Août pourtant…

Le thème présenté avec OpenELEC est particulièrement agréable, un peu sombre, ce qui n’est pas pour me déplaire, car au moins ce n’est pas agressif. Le réglage des différentes options est simple, même si je trouve que l’interface est encore trop pensée pour une souris, malgré la présence de claviers virtuels contextuels. Vous n’êtes pas obligés de travailler avec des sources média externes, il est possible de stocker des fichiers directement sur le Pi, en activant le partage SMB dans la configuration. Attention à la taille dudit stockage quand même, les cartes SD sont sacrément plus petites que des disques dur externes (celle que j’ai utilisé fait… 2Go, retranchez la taille initiale de l’image, qui fait 164Mo). Pour en revenir vite fait au thème, s’il ne vous plaît pas, vous pouvez le changer aussi !

Un thème s’installe aussi simplement que les extensions. Celles-ci sont nombreuses, et notamment permettent, pour la vidéo (mon principal usage), d’ajouter le support de la plupart des plate-formes web, dont Youtube, Dailymotion, Vimeo… De quoi presque me tenter de me passer de youtube-dl. Presque. Ma connexion Free me rappelle rapidement que je ne suis pas loin d’être un oublié du numérique.

On ne fait pas que de la vidéo avec XBMC, mais aussi de la musique !

On ne fait pas que de la vidéo avec XBMC, mais aussi de la musique !

Par défaut, XMBC propose un serveur web, qui permet de visionner la bibliothèque de contenus, et aussi d’utiliser une télécommande ! En cherchant un peu, j’ai découvert qu’il existait une application officielle sous Android qui permet de se substituer à cette interface pour le contrôler à distance, en renseignant notamment l’adresse IP du Pi. J’indiquerais dans la partie technique en quoi ça fonctionne bien mais souffre de défauts, car les réglages sont très, très cachés.

En parlant de télécommande, sachez que si votre téléviseur supporte le HDMI-CEC (Anynet+ chez Samsung, Bravia Link/Bravia Sync chez Sony, EasyLink chez Philips, EZ-Sync, bref, un million de noms pour la même norme),  alors la télécommande de la télé pourra être utilisée pour contrôler XMBC. Cool non ?

Il est également possible d’activer un serveur SSH, le login root est permis, et le mot de passe par défaut est OpenELEC. Mais comme on verra juste après, vous allez tomber sur quelques surprises.

Quelques mots sur la technique

Je ne peux pas parler du Pi, d’OpenELEC, et donc de Linux, sans parler un peu pilosité. Si sous Raspbian vous devez modifier config.txt pour régler différents détails, tel l’overscan, ici, pas besoin. XBMC propose directement un menu pour corriger l’image, et la faire rentrer correctement dans votre écran. En effet, suivant la télévision, il est possible que l’image déborde un peu, ou soit plus petite que prévu. Par cette méthode vous pourrez alors recadrer correctement l’image, dans mon cas il fallait la réduire. Contrairement sur PC où il est fréquent dès lors d’avoir des soucis avec la lisibilité du texte, ce n’es pas le cas ici, ça reste net.

De toute manière, il faudra bricoler un peu pour pouvoir modifier le fameux config.txt, qui sert aussi à régler la fréquence du Pi. Il se trouve dans /flash, mais par souci de stabilité je pense (et aussi parce qu’il est en squashfs), toute la base du système est montée dans une partition en lecture seule. Il faudra donc monter cette partition en lecture/écriture sur une autre machine pour y accéder, ou directement le Pi si vous êtes joueurs, ou avec une barbe de plus de 3 ans.

En reparlant système de fichiers, pas de panique, au premier démarrage, il redimensionne la partition de données pour couvrir tout l’espace de la carte SD sur laquelle vous l’avez installé. Il redémarre ensuite pour enfin vous présenter à XBMC.

OpenELEC est construit « from scratch ». Il n’est donc pas basé sur une autre distribution. La liste des processus est là pour en témoigner. Le noyau Linux avec les modules nécessaires à l’utilisation du Pi, systemd, et XBMC; Si le serveur Web est intégré directement dans XMBC (logique pour le remote control), Samba, SSH, lircd sont là pour gérer respectivement les partages réseau, le SSH, et les télécommandes. Busybox est embarqué pour fournir quelques commandes du quotidien, mais ne comptez pas sur les pages de manuel. Je vous laisse taper busybox –list pour voir la liste des commandes disponibles.

Revenons maintenant au réseau. Non pas qu’il y aie grand chose à faire sur ses performances, et un overclock ne changera pas grand chose à l’affaire. Mais comme je l’ai mentionné pour la télécommande, il faut indiquer l’adresse du Pi dans l’application Android (il en existe aussi sur Windows Phone, et probablement pour iBidule), ou le navigateur. Sauf que dans XBMC, il n’est apparemment pas possible de fixer cette adresse, qui est donc par défaut configurée via DHCP. Seul petit souci, laissez le Pi éteint 24h, et au prochain démarrage, il changera probablement d’adresse, et il faudra la retrouver et la ré-entrer dans vos applications ou votre navigateur pour y accéder de nouveau.

Seulement, la configuration réseau est très cachée (d’où le « apparemment »). Par défaut, si jamais vous cliquez directement sur « Système » dans le menu principal, vous n’aurez accès à aucun réglage réseau. En fait, quand on survole « Système », il y a un encart « OpenELEC » dans les onglets qui apparaissent en dessous. Là seulement, vous pourrez accéder au menu « Connexions » qui permet de configurer une IP fixe. Pas très accessible, même si évidemment la plupart du temps vous n’aurez probablement pas à utiliser ces menus. C’est par ce biais que vous pourrez activer le support IPv6 soit dit en passant, évidemment inutile si vous possédez une Livebox.

Autre solution un peu moins élégante d’un point de vue configuration, et surtout qui n’est pas possible sur tous les matériels : réserver une adresse IP sur le serveur DHCP via l’adresse MAC du Pi. Il faut regarder dans la section DHCP de votre routeur/votre bidulebox si vous avez la possibilité de réserver une adresse IP pour une adresse MAC donnée. Pour obtenir cette adresse MAC, par SSH, vous pouvez taper ça :

C’est la première ligne, qui contient HWaddr, qui vous sera utile. Dans mon cas, l’adresse MAC est donc B8:27:EB:6F:94:DF. Elle aura la même forme pour vous. Il est possible aussi de consulter la table des clients DHCP de votre routeur :

openelec-dhcpcl

Il suffit ensuite de fixer l’adresse dans la section réservation du routeur en question :

openelec-dhcpres

Pour revenir aux sous-menus qu’il faut vraiment ne pas oublier de scruter, il y a un onglet « Informations système » qui permet de recenser quantité d’informations plus ou moins techniques, aussi bien sur le matériel que le logiciel. Entre autre, dans la section « Réseau », l’adresse MAC est aussi présente. C’est dans l’onglet « Informations système » que l’on constate pourquoi la souris peut « lagger » : la conso CPU, déjà à 30% « sans rien faire », monte à 100% dès qu’on touche à la souris.

Conclusion

Il faut quand même s’arrêter un peu, et vous laisser expérimenter par vous-même. J’ai beau avoir évoqué les points négatifs en premier, ça n’enlève rien à la qualité d’OpenELEC, qui est une très, très bonne solution de media center pour le Raspberry Pi. Comme j’ai mentionné, malgré certaines lenteurs dans l’interface, la lecture de contenus ne souffre d’aucun problème à part de rares cas extrêmes, qui poussent la petite bête un peu trop loin dans ses retranchements. Les extensions vous permettront de profiter de quantité de services webs audio, vidéo, la météo est aussi présente.

Si les fonctionnalités sont à mettre au crédit d’XBMC, les gars d’OpenELEC ont réussi le tour de force de proposer une plateforme logicielle la plus légère possible, tout en se basant sur un noyau très récent (j’utilise le 3.14.15 sur mon laptop, OpenELEC 4.0.7 utilise le 3.14.11), qui apporte donc une meilleure prise en charge à la fois de l’archtecture ARM de manière générale et plus précisément du BCM2835, le SoC Broadcom du Raspberry Pi (System-on-Chip, qui regroupe donc CPU, GPU, RAM, un port USB, et la carte son). L’essentiel est là, rien n’est vraiment laissé au hasard. Le seul reproche qu’on pourrait faire, c’est la conception « live » qui embarque le système de base dans un squashfs en lecture seule, qui ralentit probablement un peu le démarrage du système, qui est long. Ce qui est aussi dépendant de la carte mémoire utilisée. Avec une consommation « en pointe » de seulement 3.5W, le laisser allumé pourrait s’avérer plus pratique si son utilisation est fréquente.

UPDATE : Depuis la sortie de l’article, la version 4.2.1 est sortie. Au programme, mises à jours notamment d’XBMC en 13.2 et du noyau qui passe en 3.16. À la clé, une sacrée augmentation de la fluidité de l’interface, même si des lenteurs existent toujours, notamment lors de l’utilisation de plugins (celui de Youtube en tête). Ceux qui ont déjà installé n’ont qu’à redémarrer le Pi qui se mettra à jour tout seul. Et c’est plus que conseillé.

Ce Raspberry Pi est surprenant à plus d’un titre : en relisant ses spécifications, j’ai découvert que le port HDMI était à la norme 1.4. Et dans les menus d’XBMC, il est possible d’activer le stéréoscopique, c’est à dire la 3D. Oui, vous lisez bien : ce bidule à 35€ qui ne ressemble à rien et n’est même pas refroidi par défaut (la puce est à poil, imaginez avec vos laptops et tours qui ventilent à mort), est capable de lire de la 3D en full HD, et en plus, à en croire cet article, aussi par le réseau ! (il faut pas pousser trop je pense, mais c’est là; et ça fonctionne). Si le CPU ne saurait le destiner à une utilisation desktop un tant soit peu exigeante (comme la mienne), il parvient malgré tout, grâce à OpenELEC, à gagner ses galons de mediacenter complet et flexible. Une solution à tester plus que sérieusement, et qui peut même être adoptée, adjointe à un stockage externe, disque dur USB (pas auto-alimenté par contre, un transfo dédié) ou une(des) source(s) réseau.

5 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Tom23
Tom23
16/08/2014 11:13

Pour le contrôle depuis une machine android, il y a aussi Yatse qui fonctionne très bien. Je le préfère à l’appli officielle (qui n’est pas mauvaise pour autant).

Seboss666
16/08/2014 19:38
Répondre à  Tom23

Il m’arrive, quand je suis déjà devant le PC, d’ouvrir directement un onglet. L’appli officielle me suffit amplement.

Par contre, je commence à jouer avec les extensions (Youtube, radio), le pauvre Pi est vraiment à la peine par moment. Une fois en lecture ça va, mais pour atteindre une radio ou une vidéo Youtube, faut être patient 🙂

Seboss666
12/10/2014 11:34
Répondre à  Tom23

Comme j’ai pété mon smartphone, j’en ai profité pour tester Yatse sur la bête de secours et en effet, ça a l’air bien mieux fini ! Un des gros avantages que je lui trouve en terme d’usabilité, elle trouve le Pi tout seul, là où tu dois entrer l’IP manuellement dans l’appli officielle. Et j’aime bien le design, ainsi que les panneaux multiples qui permettent de moduler les infos affichées à l’écran du smartphone. Du coup, j’en profiterais pour l’installer aussi sur tablette. On rêverait d’une appli pour Linux/Windows qui aurait la même classe, parce que la télécommande de l’interface… Lire la suite »

Gadje
Gadje
01/04/2015 10:25

Kodi fonctionne à merveille avec la RPI2, dans mon cas, associée à 2 NAS. Concernant le pb d’@ IP stipulé ci-dessus, j’utilise pour ma part Berryboot et l’ai configuré de façon à ce que ce soit lui qui attribue une @ IP au RPI2. De ce fait, peu importe le système sur lequel je démarre, l’@ IP est toujours la même. Tout ça est piloté à l’aide d’un clavier sans fil « Microsoft All in One ».

Adrien
Adrien
23/12/2016 20:47

bonjour,
Pour simple information, librelec est l’equivalent de openelec mais est plus souvent mis a jour.
Je suis passé à Librelec après avoir utilisé deux ans Openelec (qui est très bien) et je n’ai pas eu un seul plantage (genre airplay ou kodi remote) depuis maintenant 3 mois malgré mes petits bidouillages