Tout d’abord, bonjour et bonne année à tous !
Le père noël, ce fieffé geek, a eu l’excellente idée de m’offrir cette année un Raspberry Pi. Le moment que j’attendais pour me décider à remplacer mon insatisfaisant Mediacenter Neufbox était donc venu.
Pour inaugurer cette nouvelle section, je vous donc détailler comment transformer votre Raspberry Pi en une machine qui servira à la fois :
- de boitier Mediacenter pour regarder tous vos DivX sur la TV,
- de serveur de partage de fichiers en réseau,
- de seedbox, pour télécharger/partager de façon autonome des torrents sur internet.
[EDIT]
Depuis le 1er août 2014, XBMC porte maintenant le nom de Kodi.
{/EDIT]
Table des matières
Mais c’est quoi cette framboise ?
Le Raspberry Pi est une sorte de mini-ordinateur (de la taille d’une carte de crédit), doté d’une configuration et d’une connectique minimales mais suffisantes. Cette structure lui confère donc un attrait de taille : son prix ! Il est vendu nu à 25$, ce à quoi il faut quand même rajouter une alimentation micro-USB et une carte SD pour y mettre l’OS.
Compte-tenu de sa config minimaliste, un OS a été spécialement conçu pour lui : Raspbian. Comme son nom l’indique, c’est un dérivé de Debian.
Applications
La très grande force du Raspberry tient de la présence native de ports GPIO. Ces ports permettent en gros de brancher tout et n’importe quoi directement sur le Raspberry. L’application la plus courante d’utilisation de ces ports est la domotique domestique. Manuel Dorme (alias Korben) nous donne ici une liste impressionnante (et pourtant non exhaustive) des différentes applications.
Installation de Kodi
L’utilisation la plus habituelle, et la plus simple à mettre en œuvre, est d’utiliser le Raspberry comme Mediacenter.
Câblage
Pour cette phase, rien de bien tuant, il nous faut :
-
- l’alimentation via micro-USB
- un câble HDMI à relier à la TV
- un disque externe pour le stockage des vidéos
- Le câble Ethernet pour la liaison avec le routeur
Notre petit défi va être de réaliser toute l’installation sans jamais brancher de périphérique de saisie sur le Raspberry (ni clavier ni souris). Ceci demandera donc une machine déjà connectée au réseau (ordinateur ou smartphone).
A propos du disque externe
Si vous avez l’intention de brancher un disque autoalimenté, alors faites attention à l’ampérage nécessaire par USB. Il se peut en effet que l’intensité délivrée par le port USB du Raspberry soit insuffisante pour le disque (140 mA max). Vous pouvez alors recourir à la solution économique du double USB (si vous avez une alimentation USB disponible à proximité), ou alors utiliser un hub USB alimenté.
Quant au format de fichiers, l’expérience montre que vous avez tout intérêt à formater votre disque en ext4 !
Choix de la distribution de Kodi
Le soft le plus courant pour le Mediacenter est Kodi. Il avait été développé initialement pour la Xbox (sous le nom de XBMC) avant de se populariser et de gagner d’autres supports et OS.
Afin de gagner en performances et en convivialité, il existe trois principales distributions « tout en un » de Raspbian et de Kodi : OpenELEC, Raspbmc et XBian.
La première est réputée comme étant le meilleur compromis stabilité/performances, mais souffre d’une structure assez « rigide » : par défaut, il est impossible d’ajouter ou de supprimer des paquets à cette distro. Raspbmc est paraît-il la solution la plus complète nativement, malheureusement à l’heure où j’écris ces lignes, seul un courageux travaille à son développement (Bravo à Sam Nazarko).
Mon choix s’est finalement porté sur XBian. XBian se veut être la version la plus à jour de Kodi, ce qui a pour conséquence une stabilité légèrement moindre que celles des autres distros précédemment citées. Mais contrairement à OpenELEC, XBian ressemble plus aux distros classiques de Linux (telles que Debian), incluant même le gestionnaire de paquets apt-get !
Installation de XBian sur la carte SD
Cette fois encore, aucune difficulté de ce côté grâce aux utilitaires d’installation fournis sur le site de XBian. Une fois fait, il suffit de mettre la carte SD dans le slot, d’alimenter le Raspberry, et voilà !
Adresse IP du Raspberry
Pour la suite, vous aurez besoin de connaître l’adresse IP du Raspberry. Pour ce faire, vous pouvez au choix ouvrir l’interface d’administration de votre Box pour y trouver l’IP, ou vous connecter en SSH au Raspberry puis aller dans le menu « Network ».
Personnellement, j’ai l’habitude d’attribuer une IP fixe à toutes les machines de mon réseau. Et si votre Box vous le permet, je vous conseille d’attribuer un DNS de votre choix (par exemple « xbian ») au Raspberry, ce qui vous évitera par la suite d’avoir à retenir son adresse IP.
Configuration de l’accès à distance
Si vous avez de la chance, votre TV est compatible CEC, c’est à dire que vous pouvez utiliser la télécommande de votre TV pour contrôler les menus de Kodi, les signaux reçus par la TV étant transmis grâce au câble HDMI au Raspberry. Dans ce cas vous en avez fini avec la partie Mediacenter.
Si vous n’avez pas cette chance, rassurez-vous, tout n’est pas perdu. On va donc configurer Kodi pour autoriser le contrôle via le réseau. Depuis une autre machine, on va donc se connecter en SSH au Raspberry (utiliser par exemple Putty sous Windows, JuiceSSH sour Android) :
ssh xbian@xbian |
Le mot de passe est : raspberry
L’utilitaire de configuration de XBian se lance par défaut. Dans celui-ci, rendez-vous dans la section Settings → Kodi settings pour activer le « web server ». Maintenant vous pouvez contrôler Kodi depuis votre ordinateur en vous rendant à l’adresse suivante :
Notez que le nom de domaine « xbian » ne fonctionne ici que parce que je l’ai défini ainsi comme DNS. Remplacer par l’adresse IP du Raspberry sinon.
Sympa me direz-vous, mais c’est pas très intéressant d’utiliser un ordinateur pour contrôler le Mediacenter… Soit. Bien entendu vous pouvez utiliser votre smartphone pour accéder à cette adresse, mais dans ce cas vous avez tout intérêt à installer l’application Kodi Remote (ici pour Android, ou là pour iPhone). Personnellement, ça m’a permis de recycler mon vieux Galaxy S en une télécommande dédiée Kodi…
Comme promis donc, on a réussi à configurer Kodi et son contrôle sans avoir à brancher de périphérique sur le Raspberry.
Bonus : s’affranchir des login/mdp lors des futures connexions SSH
Fainéant que nous sommes, il faut bien dire que c’est un peu pénible d’avoir à rentrer le nom d’utilisateur et le mot de passe lors de la connexion SSH. On va donc mettre en place une connexion par clés publique/privée.
Commencez par générer les clés sur la machine locale (pas le Raspberry, l’autre…) :
ssh-keygen -t rsa |
Enregistrez le tout où bon vous semble (vous pouvez laisser par défaut). Il vous est alors demandé de donner une « phrase de passe ». Le but étant de simplifier la connexion, on ne va pas utiliser de passphrase, donc tapez juste Entrée.
Il reste maintenant à transmettre la clé publique au serveur (XBian) :
ssh-copy-id -i ~/.ssh/id_dsa.pub xbian@xbian |
puis de rentrer le mot de passe de l’utilisateur (xbian) sur la machine distante (xbian) : raspberry
Et voilà, maintenant vous pouvez vous connecter à xbian@xbian sans avoir à taper le mot de passe. Mais on va aller encore plus loin en créant un alias. Éditez-donc le fichier ./ssh/config
pour y ajouter les lignes suivantes :
Host xbian
HostName xbian
Port 22
User xbian |
Et voilà, maintenant, pour vous connecter en tant que xbian sur la machine xbian, il vous suffit de lancer la commande suivante :
ssh xbian |
Autre alternative
Frustré de ne pas pouvoir utiliser votre télécommande infra-rouge ? Vous n’avez qu’à installer un récepteur IR sur la framboise !
Partage de fichiers via Samba
Afin de pouvoir accéder facilement (i.e. sans avoir à passer par SSH) aux fichiers du Mediacenter, et ce sous quelqu’OS que ce soit, on va mettre en place un partage de fichiers sous Samba (SMB). On supposera donc que l’on veut partager tout le disque externe branché en USB.
Samba est installé par défaut sous Xbian (ainsi que sous OpenELEC), reste donc à configurer les dossiers partagés. Éditez le fichier /etc/samba/smb.conf
:
sudo nano /etc/samba/smb.conf |
Et ajoutez-y les lignes suivantes :
[Raspberry] comment = Video sur Raspberry Pi path = /media/Video browseable = yes public = yes writeable = yes printable = no |
Vous pouvez vérifier que le fichier de configuration est valide :
testparm -s |
Si oui, alors il ne reste plus qu’à relancer Samba :
sudo service samba restart |
Enfin, histoire d’être tranquille sur les droits d’accès au disque :
sudo chmod -R 777 /media/Video |
Dès lors, tout le disque externe (appelé ici « Video ») sera accessible en écriture sous le nom « Raspberry » dans l’explorateur Windows.
Personnellement, je profite de serveur Samba pour synchroniser automatiquement les photos de mon smartphone Android avec un dossier de partage (expliqué ici), comme ça, même plus besoin d’allumer mon PC !
Télécharger des torrents directement depuis le Raspberry
Installation du service Transmission
On va maintenant transformer notre Raspberry en ce qui s’appelle une seedbox : on va faire tourner en tâche de fond (un service ou « daemon ») le logiciel de torrents Transmission sur le Raspberry.
Grâce à cela, il vous suffira par la suite d’allumer le Raspberry pour que vos téléchargement en cours se relancent. On commence donc par installer transmission-daemon :
ssh xbian sudo apt-get install transmission-daemon |
Configuration de Transmission
Le but est de pouvoir contrôler Transmission depuis n’importe-quelle machine du réseau (par exemple pour ajouter des torrents) sans avoir à passer par SSH. De plus, afin d’avoir un truc à peu près propre, on va séparer les fichiers en cours de téléchargement des fichiers complets. Dans mon cas, je veux qu’ils soient dans un dossier sur le disque « Video » :
mkdir /media/Video/Torrents cd /media/Video/Torrents mkdir Downloading Complets |
Modifiez (en super-user) le fichier de configuration du daemon :
sudo nano /etc/transmission-daemon/settings.json |
Il nous faut donc modifier les valeurs suivantes (elles sont rangées par ordre alphabétique) :
"download-dir": "/media/Video/Torrents/Complets", "incomplete-dir": "/media/Video/Torrents/Downloading", "incomplete-dir-enabled": true, "rpc-authentication-required": false, "rpc-enabled": true, "rpc-whitelist-enabled": false, |
Ces paramètres serviront, dans l’ordre, à :
-
- définir le dossier des téléchargement terminés
-
- définir le dossier des téléchargement en cours
-
- activer l’utilisation de dossiers distincts pour les torrents
-
- ne pas avoir à s’identifier pour accéder à Transmission
-
- autoriser le contrôle à distance
- avoir accès depuis n’importe-quelle machine
En prime, je vous conseille vivement les lignes suivantes :
"blocklist-enabled": true, "blocklist-url": " http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz", "encryption": 2, |
Ainsi vous éviterez les mauvais pairs (ceux de la liste noire), et vous forcerez le chiffrage des connexions, ce qui aura (entre autres) pour effet de rendre Hadopi encore moins compétente…
Reste plus qu’à relancer Transmission :
sudo invoke-rc.d transmission-daemon reload |
Accéder à la liste des téléchargements en cours
Maintenant que l’on a autorisé l’accès extérieur, vous pouvez vos rendre à l’adresse suivante pour consulter les téléchargements en cours :
(même remarque que précédemment quant au nom de domaine)
Ajouter des torrents à télécharger
Il est possible de faire ça en ligne de commande grâce au paquet transmission-remote, mais le plus intuitif est de le faire depuis son interface graphique. Si la machine cliente est sous Linux :
sudo apt-get install transmission-remote-gui |
Ce programme a aussi été porté sous Windows (voir ici) et même sous Android !
Grâce à Transmission Remote, on peut donc lancer un téléchargement depuis son PC ou son smartphone Android, puis se barrer et laisser le Raspberry faire le boulot !
Conclusion
Pour à peine plus de 30€, on a réussi à installer un Mediacenter surpuissant sur sa TV, qui télécharge de façon autonome des torrents et qui permet d’accéder aux fichiers du disque depuis n’importe quel machine du réseau.
Pour aller plus loin
Kodi dispose de (très) nombreux add-on, ce qui laisse à l’utilisateur un très large choix d’utilisation.
En ce qui concerne Transmission, sachez que le fichier de configuration permet beaucoup de fonctionnalités (telles que la programmation horaire, par jour de la semaine etc.). Vous trouverez la liste complète des différents paramètres ici.
Il est possible que la charge CPU due à Transmission impacte un peu le FPS des films en HD. Pour automatiquement stopper les téléchargements lors de la lecture d’une vidéo, puis les relancer ensuite, je vous conseille la lecture de ce billet.
Bons films !