(modifié le 18 mars 2017 à 22:20)

Le Raspberry Pi (RPI) est un produit qui me faisait de l'oeil depuis longtemps. Son côté DIY et son tarif ont suffit pour me convaincre.

RPI-b-plus

Avec la sortie du modèle B+ j'ai décidé de sauter le pas et d'en acquérir un, non seulement pour le tester mais aussi pour remplacer mon boitier multimédia (HTPC).

Je me suis posé pleins de questions lors de la découverte du produit et j'ai grapillé les réponses au compte goutte forum après forum, donc je vous propose une synthèse et découverte du produit qui vous facilitera la tâche.

Made in UK

Le RPI est un nano-ordinateur low cost, monocarte  et dont la puissance de calcul est assuré par un processeur ARM. C'est est programmeur britannique, David Braben, qui est à l'origine de ce bijou technologique ainsi que de la fondation Raspberry Pi.

La première version est sortie en 2012, plusieurs modèles sont sortis depuis :

  • modèle A avec 256 Mo de RAM
  • modèle A+ (plus petit)
  • Modèle B  avec 2 ports USB 2.0, 1 port ethernet)
  • Modèle B avec 512 Mo de RAM
  • Modèle B+ avec 4 ports USB 2.0, slot micro SD au lieu de SD

C'est ce modèle sorti en juillet 2014 que je vous présente : le Rasberry Pi modèle B+.

Du côté des spécs :

  • CPU 700 MHz ARM1176JZF-S (ARM11)
  • GPU Broadcom VideoCore IV
  • 512 Mo de RAM
  • Sortie audio HDMI (5.1) et jack 3,5mm
  • Ethernet 10/100
  • GPIO : 17 pin entrée/sortie
  • Consommation : 3W, soit 600 mA
  • Alimentation en 5v via micro USB (type B) ou via GPIO
  • Poids : 45g

Cela peut surprendre mais le CPU, GPU et la RAM sont embarqués au sein de la même puce (broadcom BCM2835).

Son prix tourne aux alentours de 35 euros, le mien venant de notre partenaire RobotShop chez qui on trouve des robots personnels, professionnels, des plateformes de développement, kits, et des pièces robotiques spécialisées. Le siège social de RobotShop est basé au Canada mais le site dispose d'un entrepôt en france qui assure des livraisons rapides. Sur les 3 commandes que j'ai passées toutes sont arrivées en 48h.

rpi-cote-usb-ethernet

L'avantage de RobotShop c'est qu'il s'agit d'un site spécialisé, donc on trouve un grand nombre de pièces et accessoires pour le monde du Raspberry Pi.

Les accessoires à ne pas oublier

Le RPI est modulaire, c'est ce qui fait sa force et son prix si attractif car il est livré nu. Voici la liste d'accessoires que j'ai choisis.

Les indispensables :

N'achetez pas d'alimentation au rabais car une tension stable et de qualité est essentielle pour le fonctionnement de votre RPI, celle-ci fait l'unanimité avec sa garantie 3 ans.

Conseillé :

  • dissipateurs thermiques autocollants, pour absorber la chaleur CPU/GPU et RAM à 3€

Placez des dissipateurs est utile si vous surcadencez (O/C) le CPU du Raspberry Pi. Avec le modèle B+ seuls deux dissipateurs sont utilisables, le troisième est trop gros pour être placé sur le régulateur. Vu le prix c'est toujours bon à prendre si contribue à la durée de vie du RPI (+ d'infos).

Sans puis avec les dissipateurs :

rpi-dissipateur

Quelle distribution installer ?

Tout dépend de la raison qui a motivé l'achat de votre RPI. Bidouilles et DIY, NAS, serveur web, système embarqué, etc. Dans mon cas je voulais y installer XBMC, qui s'appelle maintenant Kodi afin d'en faire un centre multimédia open source.

Voici les distributions que j'ai testées :

  • Raspbian : un debian pour RPI
  • Kali Linux (anciennement backtrack)
  • RISC OS, par curiosité
  • Raspbmc (XBMC)
  • xbian (XMBC)
  • OpenELEC (XBMC)

J'ai choisi OpenELEC car c'est la distribution qui démarre le plus vite sur le RPI, en 10 à 20 secondes. Raspbmc est la plus complète et donc la plus lourde et xbian se situe entre les deux. Si vous souhaitez pousser plus loin la comparaison je vous invite à lire ce billet chez LH (en).

Pour éviter de tout réinstaller à chaque fois j'ai acheté 3 cartes micro SD, ce qui me permet de jouer avec sans limite. Là encore la taille de la carte micro SD dépend de vos besoins, 8 Go est conseillé mais vu l'écart de prix je n'ai acheté que des 16 Go. Et pour éviter de poireauter 20 minutes avant de tester une distribution je n'ai pris que des classes 10.

Attention aux cartes que vous achetez, toutes ne sont pas compatibles et d'autres ne le sont qu'à moitié. Soit vous achetez celles que je vous ai recommandées ou vous consultez cette liste mais il y a peu de micro SD face aux micro SD. Et si vous vous posez la question de la différence entre micro SD et micro SDHC les deux fonctionnent, c'est juste une histoire de capacité et de norme.

Deux leds à ne pas ignorer

Le RPI dispose de deux leds :

  • la led rouge doit rester fixe, signifiant que le RPI est correctement alimenté
  • la led verte témoigne de l'activité entre la carte micro SD et le CPU

Il se peut que la led rouge s'eteigne lors de très brefs moments, mais elle doit rester allumée en permanence normalement. Si elle s'éteint c'est que la tension d'entrée est inférieure à 4,7 v ou que l'intensité est inférieure à 600 mA.

Si une clé usb, une souris ou un clavier consomment un maximum de 100 mA. Un disque dur 2,5" auto alimenté consomme jusqu'à 500 mAh. Si votre alimentation délivre 1500 mA (1,5A) vous ne pourrez pas connecter deux disques USB. Le RPI est censé être protégé contre ces phénomènes, mais je vous déconseille de tenter le diable.

Comment installer son OS ?

Contrairement à un ordinateur l'installation ne se fait pas via le RPI. Il n'existe pas de BIOS dans le RPI, on y trouve à la place un fichier de configuration nommé config.txt. Ce fichier est présent dans une partition FAT d'environ 128 mo sur carte micro SD :

partition-carte-sd

Il vous faut un ordinateur qui va pré-installer le système sur la carte micro SD. Cela fonctionne sur Windows, Mac et Linux et dans notre cas ce sera sous Windows.

L'installation se fait généralement via deux méthodes :

  • extraction de l'image (.img) contenant le système d'exploitation avec Win32DiskImager
  • via un exécutable (programme) qui va copier les fichiers sur la carte SD, selon les distributions

Win32DiskImager est un logiciel gratuit et open source, il suffit de préciser le fichier IMG et la lettre correspondant à la carte micro SD :

w32_write

Extraire une image c'est comme prendre une photo, ceci contient tout le système de fichiers et les partitions, de façon analogue à une image Ghost/Acronis. Vous n'avez plus qu'à insérer la carte dans le RPI puis de brancher l'alimentation, laissez-vous guidez pour la fin de l'installation.

Si vous avez un doute sur votre carte SD n'hésitez pas à la formater complètement avant d'extraire une image à l'aide du freeware SD Formatter (Windows / Mac) :

sd_formatter

Ne vous fiez pas à la taille, 128 MB dans l'exemple, qui représent la taille actuelle de la première partition. Toutes les partitions seront bien supprimées.

Si vous ne vous sentez pas à l'aise avec ces manipulations vous pouvez opter pour NOOBS :

Alimenter les ports USB

Par défaut l'intensité d'alimentation des ports USB est trop faible et ne permet pas d'y connecter un disque dur 2,5".

Pour corriger le tir il suffit d'éditer le fichier config.txt avec Notepad++ pour y ajouter à la fin :
# max_usb_current=1 pour alimentation HDD
max_usb_current=1

Ceci fonctionne avec le Raspberry Pi B+ et le Raspeberry Pi 2

Si votre distribution est trop ancienne c'est ce paramètre qu'elle comprendra :
# safe_mode_gpio=4 pour alimentation HDD
safe_mode_gpio=4

Pour vérifier la bonne prise en compte :

$ sudo vcgencmd get_config int | grep max_usb_current
max_usb_current=1

La plupart des disques dur USB 2,5" seront correctement alimentés. Je vous conseille de brancher votre disque USB avant la mise en route du RPI, cela évite de tirer sur l'alimentation pendant qu'il fonctionne au moment de brancher le disque.

Attention : j'ai eu le cas d'un disque récalcitrant de marque freecom qui a refusé de démarrer correctement, probablement que la carte SATA vers USB consommait trop de courant. Dans ce cas précis le disque fera un bruit caractéristique "tic, tic, tic" car le courant envoyé via le port USB est insuffisant.

Deux solutions si vous êtes dans ce cas :

  1. utiliser un hub USB ayant sa propre alimentation, comme celui-ci
  2. connecter un deuxième câble USB, tous les disques ne le permettent pas

note : avec la librairie wiringPi suivez ces instructions

Overclocker le CPU

Le RPI est une machine ne disposant que de 512 Mo de RAM. De fait il n'est pas optimisé pour faire tourner un environnement graphique, aussi léger soit-il. Même avec une classe 10 la navigation web est fastidieuse et pénible. Il existe d'autres alternatives plus puissantes au RPI :

Attention : ne pratiquez pas l'overclooacking sans investir dans un dissipateur

Si toutefois vous souhaitez surcadenser le CPU/GPU de votre RPI, c'est possible. Depuis Raspbian un menu vous permettra d'y accéder directement et le fera pour vous.

Sinon ça se passe dans le fichier config.txt :

# Overclock mode settings.
#
# default recommended values are: arm_freq | core_freq | sdram_freq | over_voltage
# no overclocking : 700 | 250 | 400 | 0
# mode 'Modest' : 800 | 300 | 400 | 0
# mode 'Medium' : 900 | 333 | 450 | 2
# mode 'High' : 950 | 450 | 450 | 6
# mode 'Turbo' : 1000 | 500 | 500 | 6

arm_freq=900
core_freq=333
sdram_freq=450
over_voltage=2

# set to 'force_turbo=1' to disable dynamic overclocking (you can lose your warranty!)
 force_turbo=0

Dans l'exemple nous avons défini les paramètres sur Medium. A moins de savoir ce que vous faites ne vous amusez pas à choisir des valeurs exotiques selon la météo.

J'attire votre attention sur la dernière ligne "force_turbo=0". Si vous mettez "1" comme valeur vous perdrez votre garantie en cas de surchauffe du RPI, alors que dans le cas contraire si le RPI ne peut pas tenir les valeurs d'O/C il reviendra en mode par défaut. Il s'agit donc d'une sécurité que je vous déconseille de désactiver.

Vous pouvez utiliser un script de stress pour vérifier si votre RPI supporte l'O/C. Pour contrôler la températeur ça se passe avec la commande :
more /sys/class/thermal/thermal_zone0/temp
Sous XMBC je ne vois aucun intérêt à surcadenser car tout fonctionne parfaitement bien. Le décodage matériel fonctionne nickel, même avec des vidéos full 1080P de 30 Go lues via NFS sur un NAS Synology. Le GPU est excessivement bon si on le compare à la puissance de calcul pure du CPU.

DIY - Ajouter un bouton power/reset

Le RPI ne dispose d'aucun bouton de mise en route, et c'est fâcheux. Pour le mettre en route il suffit de brancher l'alimentation et il démarre tout seul. Il ne supporte pas les paquets magiques (WoL) et ne peut donc pas être allumé à distance via le réseau.

J'ai eu l'idée d'ajouter un bouton poussoir, et après coup j'ai vu que je n'étais pas le seul. J'ai souhaité que cet interrupteur ne soit pas directement soudé mais amovible, pour pouvoir ouvrir le boitier facilement sans déssouder quoi que ce soit. Voilà le résultat :

bouton_pwr_reset

Voyons comment ça fonctionne. 

A côté du connecteur "display" se trouvent deux pastilles à côté desquelles est écrit "RUN". Si vous faites contact entre ces deux pastilles, cela a pour effet de :

  • faire un reboot (reset) si le RPI est allumé
  • mettre en route le RPI s'il est éteint

rpi-run

Pour ajouter ce bouton plusieurs étapes sont nécessaire, il faut :

  1. Souder 2 broches sur les plots RUN
  2. Fabriquer un connecteur 2 broches
  3. Percer le boitier que l'interrupteur dépasse
  4. Souder l'interrupteur au connecteur
  5. Coller l'interrupteur au boitier

J'ai soudé mon connecteur 2 broches sur l'emplacement RUN :

2-pin

Pour l'interrupteur j'ai choisi un interrupteur arduino que j'ai du réhaussé en collant un morceau issu d'un autre interrupteur récupéré d'un vieux PC. En effet l'épaisseur du boitier ne permettait pas au bouton de dépasser. Optez plutôt un bouton dans ce style, on en trouve dans de nombreux appareils comme les radio réveils.

Pour le connecteur 2 broches j'ai récupéré un vieux câble audio derrière un lecteur CDROM de PC, celui qui était relié à l'époque aux cartes son. Puis je l'ai poncé car il était trop haut et ne rentrait pas dans le boitier. J'ai utilisé mon outil favoris pour finaliser le tout : le pistolet à colle. J'ai fixé les cosses qui se baladaient dans le connecteur poncé et j'ai aussi fixé l'interrupteur dans le couvercle pour qu'il ressorte via le trou percé préalablement :

rpi-connecteur

Et voilà, notre Pimp my Pi est terminé !

Et la télécommande ?

Pour la télécommande vous avez le choix :

  • Dongle infrarouge USB
  • Télécommande avec pad  iclever Rii
  • Clavier / Souris sans-fil classique, opter pour de l'unify Logitech qui limite les récepteur radio
  • Un smartphone ou une tablette avec une application dédiée (pilotage via réseau)

C'est cette option que j'ai pour l'instant retenue, non pas avec l'application officielle mais avec Yatse, une application Android que plus que parfaite. La version gratuite est pleinement fonctionnelle et peu restrictive, sauf si vous avez besoin d'ajouter des plugins.

Conclusion

Le Raspberry Pi est un produit merveilleux et sans limite. Il suffit de chercher les mots clés qui vont bien sur Google pour trouver toutes sortes d'idée. Que ce soit pour un HTPC, de la domotique, de l'électronique... les possibilités sont sans fin.

Que ce soit pour chez vous, à l'hotel ou chez des amis, il se trimballe de partout. Vous pouvez même le faire fonctionne sur batterie, ou via une alimentation USB de poche. Le seul reproche que j'ai à faire c'est l'incompatibilité totale avec Netflix, j'ai essayé Netflixbmc et xbmcflicks sans succès au moment de lancer la lecture. Tant que la librairie NSS n'est pas compilée pour ARM, pas de solution. Gardons espoir car un fork permet de faire tourner Netflix sur Android TV. Seule alternative payante avec PlayonTV.

Le plus gros avantage du Raspberry Pi est qu'il est évolutif et non bridé par un firmware constructeur opaque, le tout pour environ 50 euros soit deux fois moins cher que les players du marché. Le monde XBMC/Kodi est tellement vaste et génial que le RPI peut télécharger les sous-titres, résumés, fond d'écrans associés à un film, épisode, série... Pour vous faire une idée de XBMC/Kodi vous pouvez l'installer sur Windows, Mac et Linux, avant de vous lancer sur un Raspberry Pi.

N'hésitez pas si vous avez des questions, d'autres billets suivront sur le RPI.

Liens utiles :

  1. Guide config.txt
  2. Licences codec
  3. Passion-xbmc
  4. Quick Start Guide
  5. FAQ (en)

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter