Transformer un Raspberry Pi en tuner TNT : j’ai essayé !
S’il y a bien une chose dont je rêve depuis que je suis étudiant, c’est d’un Media Center dans mon salon.
Avec la sortie du Raspberry Pi, ce micro ordinateur d’une trentaine d’euros, le coût d’une telle installation peut même se comparer à un produit fini issus du commerce. Les quelques accessoires font à peu près doubler le prix : carte micro SD, alimentation micro USB, câble HDMI et bien évidemment un tuner TNT (norme DVB-T).
Mais si vous pensiez vous en tirer si facilement, c’était sans compter la plateforme sur laquelle repose le Raspberry Pi : l’architecture ARM. Fantastique monde de non-standardisation, absence de BIOS et surtout de très mauvais pilotes, en particulier celui de l’USB.
Je suis allé chercher mon matériel chez Farnell (http://fr.farnell.com/), vous y trouverez les accessoires. Tout est arrivé en quelques jours et le moins que je puisse dire c’est que ça en jette :
Maintenant que le décor a été planté, passons au vif du sujet. La problématique de ce projet est : « où trouver la source des chaînes de télévision ? ». À cela deux réponses :
- Ou bien dans une playlist, comme la Freebox V6 Revolution propose (incluant TF1 & M6 si elle est raccordé à l’antenne râteau)
- Ou bien via un Tuner TNT, libérant de la bande passante ADSL pour d’autres activités
Vous l’avez compris, la seconde option est la plus générique bien que non conventionnelle, vous allez comprendre pourquoi.
Trouver un tuner DVB-T ayant un driver compatible pour Raspberry n’est pas chose facile. La liste officielle est plutôt étriquée et propose des modèles si vieux qu’ils ne sont pour certain plus en vente, ou présentent parfois des incompatibilité avec le Pi alors même qu’il s’agit d’une page listant ceux qui sont censés marcher.
Première méthode, aller sur linuxtv.org. Je vous conseille de trier selon la colonne « Supported » (les « No » en haut, pour voir apparaître les tuners supportés par le noyau Linux récemment juste après). Les distributions récentes utilisent à ce jour le noyau 3.12 et j’ai remonté la liste jusqu’au tuners supportés par le 2.26. J’ai lu sur des forums que ceux qui étaient recommandés il y a des années n’étaient parfois plus supportés avec le temps. D’autre part, certaines références sont vendues avec des télécommandes « plates » low cost dont je ne voulais pas, au lieu d’une vraie télécommande de salon. J’ai enfin écarté les cartes à doubles tuners car leur consommation électrique requiers souvent un Hub alimenté.
J’ai ainsi isolé quatre modèles encore en vente répondant à ces critères et garantis d’être supportés sous Linux selon la liste :
- Avermedia A815U Tuner USB compact Noir, sans prise antenne
- Terratec Cinergy Hybrid Stick, qui ne propose pas les chaines HD
- KWorld UB499-2T PlusTV Dual DVB-T souvent acheté avec le Pi mais dont les frais de ports atteignent 20€ avec une télécommande plate
- Elgato EyeTV DTT Deluxe, satisfaisant mais cher (70€ !)
Je ne savais pas trop quoi choisir. On passe vite beaucoup de temps à faire des recherches et cela en devient exaspérant. J’ai ciblé des tutoriels de personnes ayant réussi à coupler un tuner DVB-T au Raspberry Pi, mais tous les résultats ont au moins 2 ans, donc peu fiables sur le support actuel.
J’ai choisi le quatrième modèle, qui présente l’avantage d’être livré avec un tas d’accessoires (cordons, connecteurs) et qui est si compact que je pouvais connecter sans soucis d’autres équipements à ses côtés.
De nombreuses pages assurent sa compatibilité avec Linux :
- cette page linuxtv.org
- le wiki d’Archlinux (même l’une des seules références)
- et linux-hardware-guide.com
J’ai reçu mon paquet une semaine après l’avoir commandé, il est arrivé comme prévu avec un tas de choses dedans. Mis à part les piles qui avaient coulées, le produit est d’excellente facture. Sans se tortiller on peut parler de haut de gamme.
Le Pi est connu et réputé pour son support très hasardeux des périphériques USB : le pilote est loin d’être stable et provoque des erreurs de toute sorte qui ne se produisent pas sur d’autres architectures.
J’étais parti pour vous faire un tutoriel sous Raspbmc, mais il s’est avéré que j’ai perdu une demi journée à me hérisser les poils dessus. J’ai cru que mon joujou n’était plus ou pas encore compatible Linux mais il s’est avéré que sous Ubuntu 14.04LTS la clé est reconnue. Cependant même sur mon PC portable et relié à la prise antenne, impossible de scanner la moindre chaîne. Je viens d’imprimer mes feuilles de retour de produit sur Amazon.
Je suis attiré par le logiciel XBMC depuis ses débuts, je trouve ce projet Open Source fantastique et aux finitions impeccables. J’ai lu avec étonnement que le projet allait être renommé Kodi dès la prochaine version, visiblement pour acquérir les droits incontestables d’une marque qui ne pose plus de risque juridique.
Trois « micrologiciels » dédiés à XBMC cohabitent : Raspbmc, Xbian et OpenElec. Ce dernier cache totalement l’accès au système Linux qui le propulse, ce qui le rend à mon sens difficilement utilisable car Raspberry Pi reste synonyme de cambouis. Raspbmc et Xbian se partagent quant à eux une base commune (la distribution Raspbian) et diffèrent par leur support matériel -Xbian n’ayant pas reconnu mon clavier USB sans fil- ainsi que par leur fréquence de mise à jour -Raspbmc se voulant plus stable-.
Ces trois systèmes sont livrés avec un « backend PVR » appelé TVHeadEnd, c’est à dire un serveur de streaming et d’enregistrement de flux de tuners TNT destiné à unifier la manière dont les chaînes de TV doivent être lues pour sortir dans VLC, XBMC et autres applications de smartphone. XBMC dispose d’un frontend TVHeadEnd qui affiche normalement les chaînes de la manière suivante :
On trouve sur Internet tout ce qu’il faut pour parvenir à ses fins.
Pour Raspbmc par exemple, une fois votre tuner reçu, il se configure en quelques étapes :
– Survolez le menu « Programme » de l’écran d’accueil et sélectionnez « Raspbmc Setting »
– dans le premier onglet de la fenêtre intitulé « Network configuration », lisez l’adresse IP de votre Raspberry Pi
– Naviguez jusqu’à l’onglet « System configuration », cherchez dans le bas de la longue liste la ligne « TVHeadEnd Server » et activez le service. Un numéro de port à quatre chiffres est indiqué. Cliquez sur « OK » en bas de la fenêtre.
– Accédez à l’adresse IP depuis un navigateur Web en ajoutant le port à sa suite. Exemple : « http://192.168.0.209:9981 »
Une interface apparaît ! L’onglet « Configuration » dispose d’un sous onglet « DVB Inputs », où un champ « Select TV adapter » n’attend qu’un clic de votre part pour vous suggérer l’adaptateur USB que vous avez connecté.
Ah ? Le votre n’y est pas ? Pas de panique, branchez un clavier USB, servez vous un chocolat chaud et suivez mes instructions :
– dans l’interface, utilisez la flèche du bas pour aller sur le bouton carré d’extinction en bas a gauche de l’écran, et sélectionnez « Sortir ». Vous passez du côté obscur de la Force.
– l’interface disparaît, pressez alors frénétiquement la touche « Echap » jusqu’à rendre l’écran noir.
– À présent, seuls quelques mots apparaissent à l’écran. « login: » vous invite simplement à entrer les lettres « pi », qui apparaissent à l’écran. Appuyez sur la touche « Entrée » du clavier.
– Une nouvelle ligne apparaît « Password: », tapez « raspberry ». Ne soyez pas déboussolé, aucun texte n’apparaîtra à l’écran pendant votre frappe. En cas d’erreur, la touche A de votre clavier peut être intervertie avec Q, dû à une disposition à l’anglaise. Appuyez à nouveau sur la touche « Entrée » du clavier.
C’est le moment de reprendre du chocolat, de serrer votre chat une dernière fois dans vos bras :
– tapez « sudo apt-get install bash-completion firmware-linux* »
– tapez « sudo reboot » et laissez respirer ce pauvre chat. Le Raspberry Pi redémarre et l’interface réapparaît.
Si à la suite de ces étapes votre tuner n’est pas reconnu, vous attraperez des cheveux gris.
Le décodage des codecs de la norme DVB-T est censé se faire matériellement, soit gratuitement pour les chaînes HD encodées en H264/MPEG?4 AVC, soit en payant une licence MPEG-2 de 2€ depuis le site du projet pour les chaînes SD.
Il serait parfaitement envisageable d’ajouter des services tels qu’un serveur Torrent, un émulateur de jeux ou encore un partage de fichier pour pousser le Raspberry Pi dans ses derniers retranchements et exploiter sa capacité de NAS à son maximum. Vous aviserez selon la fluidité de votre installation !