Ayant depuis peu, un Raspberry Pi et en ayant fait la configuration, je vous propose un tuto complet et en français sur toutes les opérations à réaliser pour la configuration.
Le programme va être chargé car aussi mignon soit-il le Raspberry Pi n’est quand même pas très user-friendly et donc niveau config ça ne se fait pas tout seul comme sur un Mac.
D’ailleurs, petite précision, certaines choses que je vais expliquer sont spécifiques au Mac, si vous n’êtes pas sur Mac et sur OS X, il faudra donc, si besoin, chercher l’équivalent pour votre système.
Voici donc le programme de tout ce que je vais vous expliquer :
- La Carte NOOBS : Création d’une carte SD NOOBS à jour (le plus possible)
- Écran : Configurer un écran (valable surtout pour les petits écrans (type “embarqués”) destinés au Raspberry Pi)
- Mise à jour de Raspbian : Les commandes de mise à jour de l’OS
- WiFi : Paramétrage
- Bluetooth : Les commandes pour l’installation du Bluetooth
- Audio : Configurer la sortie son
- Serveur VNC : Comment installer un serveur VNC et le lancer au démarrage
- Apple Remote Desktop : Comment configurer Apple Remote Desktop pour accéder au Raspberry Pi en VNC
La carte NOOBS :
La carte NOOBS (“New Out Of the Box Software”), c’est une carte Micro SD (et son adaptateur SD) sur laquelle est déjà installé un mini système de base (un petit système “recovery”) qui permet au 1er démarrage de choisir le ou les OS que l’on veux installer (on a le choix entre 5 ou 6 dont les plus utilisés; Raspbian et RaspBMC).
On peux choisir d’installer plusieurs OS et la carte Micro SD sera partitionnée en conséquence en sachant qu’on gardera le système NOOBS sur une partition “Recovery” en cas de besoin/pépin.
C’est donc pratique pour démarrer rapidement dès la sortie de la boîte sans se prendre trop la tête.
Mais, oui il y en a un sinon je ne vois pas ce que j’aurais à vous expliquer de technique la dessus, le “problème” si je puis dire c’est que le système NOOBS et les OS présents sur la carte ne sont pas toujours à jour. Car ca fait peut-être 6 mois qu’elle été dans un entrepôt à attendre un acheteur.
Alors oui, on peut mettre à jour l’OS une fois l’installation faites mais pour NOOBS, c’est plus simple de le faire avant. En tout cas, je suis du genre à préconiser de toujours partir avec le maximum possible de soft à jour, alors autant commencer par là.
On va donc commencer par refaire cette carte SD avec le maximum de choses à jour.
Il faut tout d’abord télécharger le système NOOBS le plus récent ici : http://www.raspberrypi.org/downloads/
Malheureusement, depuis la dernière release de NOOBS, ce dernier n’est plus fourni avec les 6 OS mais seulement avec Raspbian (voir le dernier paragraphe de cet article : http://www.raspberrypi.org/new-raspbian-and-noobs-releases/)
Du coup, dans notre NOOBS fraîchement téléchargé, nous sommes sûrs d’avoir la version la plus récente de Raspbian mais pour les autres OS, si on veut installer directement la version la plus récente, il faudra brancher le Raspberry Pi en Ethernet afin que NOOBS affiche les autres système disponible, et si vous en demandez l’installation il pourra alors les télécharger dans leur dernière version.
Si l’on a pas la possibilité de connecter le Raspberry Pi en Ethernet ou qu’on ne veut pas, on peut quand même prendre sur la carte SD NOOBS les OS présents dans le dossier “os” (à l’exception de “Raspbian” et “Data_Partition”) et les déplacer dans le dossier “os” du NOOBS que l’on vient de télécharger.
Ensuite, il faut formater la carte SD au format FAT32 (MS-DOS) avec l’Utilitaire de Disque (OS X) qui fait cela très bien.
Une fois le formatage fini, faites glisser l’ensemble des fichiers contenus dans le dossier NOOBS, précédemment téléchargé, à la racine de la carte Micro SD. Ne copiez pas le dossier mais uniquement son contenu.
Voilà la carte NOOBS est prête, le système NOOBS est à jour et le Raspbian qu’elle contient l’est aussi.
Il ne vous reste plus qu’à démarrer votre Raspberry Pi avec cette carte et installer le ou les OS qui vous intéresse. On se retrouve après.
Si besoin, vous pouvez consulter cet article : http://www.raspberrypi.org/help/noobs-setup/
Écran :
Si vous avez connecté le Raspberry Pi à un écran d’une grande marque en HDMI, il a de fortes chances pour qu’il ai su de lui-même se configurer en fonction de l’écran. Par exemple chez moi, en le connectant à un écran Philips qui a environ 7 ans, le Raspberry Pi a de suite utilisé l’écran convenablement. En revanche, lorsque je l’ai connecté à l’écran de 5″ d’AdaFruit (celui-ci : https://www.adafruit.com/products/2232 dispo à moins cher ici : http://shop.mchobby.be/raspberry-pi-b-plus/524-hdmi-pour-pi-800×480-5-.html) alors que l’écran a un ratio de 5:3, l’image ne s’affichait que sur 4:3 et avec d’importantes marges noires sur les bords.
Pour configurer l’écran, relancez encore une fois le terminal (LXTerminal) puis tapez la commande sudo nano/boot/config.txt qui va nous permettre d’ouvrir le fichier « config.txt » afin d’en modifier le contenu dans l’éditeur nano.
Effacez le contenu du fichier et collez-y le contenu suivant :
# For more options and information see # http://www.raspberrypi.org/documentation/configuration/config-txt.md # Some settings may impact device functionality. See link above for details # Uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # Uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan #disable_overscan=1 # Uncomment the following to adjust overscan. # Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # Uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1280 #framebuffer_height=720 # Uncomment if hdmi display is not detected and composite is being output #hdmi_force_hotplug=1 # Uncomment to force a specific HDMI mode (this will force VGA) hdmi_group=2 hdmi_mode=87 hdmi_cvt 800 480 60 6 0 0 0 # Uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # Uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # Uncomment for composite PAL #sdtv_mode=2 # Uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800 # NOOBS Auto-generated Settings:
Dans ce fichier, 3 paramètres ne sont pas en commentaire et seront pris en compte pour la configuration, alors je vais vous donner quelques explications sur ces 3 paramètres :
– hdmi_group défini le type de liaison HDMI utilisée; 1 = CEA, 2 = DMT. Vous allez me dire « c’est quoi CEA et DMT », et bien le 1er est un mode adapté aux écrans de TV tandis que le 2ème est fait pour les écrans informatiques (voir http://raspberrypi.stackexchange.com/a/7419). Vous comprenez donc pourquoi hdmi_group = 2 .
– hdmi_mode défini, entre autres, la résolution d’écran et le taux de rafraîchissement. Chaque groupe (ci-dessus) propose de nombreux modes avec différentes valeurs pour chaque paramètre. Dans le groupe 1 en fonction du taux de rafraîchissement on va être en PAL ou en NTSC par exemple. Si la résolution, et le taux de rafraîchissement, de votre écran ne correspondent à aucun mode pré-défini alors indiquez le numéro qui correspond au numéro du dernier mode pré-défini du groupe+1. Exemple dans le groupe 1, il y 59 modes, mais si vous n’y trouvez pas votre bonheur, indiquez le numéro 60 comme mode, pour le groupe 2 il y a 86 modes, donc idem si besoin, indiquez le numéro 87 comme c’est le cas pour mon écran.
Tous les détails sont ici : http://elinux.org/RPiconfig#Video.
– hdmi_cvt (cvt = coordinated video timings) permet, du coup, de définir la résolution en pixels qui correspond à votre écran avec d’autres informations dans un certain ordre. Voici le détails :
hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb> width width in pixels height height in pixels framerate framerate in Hz aspect aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9 margins 0=margins disabled, 1=margins enabled interlace 0=progressive, 1=interlaced rb 0=normal, 1=reduced blanking
Voir le post suivant : http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679.
Maintenant que vous avez bien compris ce que l’on vient de faire, enregistrez le fichier en appuyant sur les touches CTRL+O (WriteOut) puis validez le nom du fichier en appuyant sur la touche Entrée. Appuyez maintenant sur les touches CTRL+X pour sortir de l’éditeur nano.
Il ne vous reste plus qu’à redémarrer le Raspberry Pi (sudo shutdown -r 0 )
Et voilà l’écran une fois le redémarrage fait :
Mise à jour de Raspbian :
Même si nous avons téléchargé le NOOBS le plus récent et qu’il contient le Raspbian le plus récent, vous pourriez avoir besoin à l’avenir notamment, de mettre à jour Raspbian.
Pour cela, 3 commandes simples à taper dans le terminal du Raspberry Pi (LXTerminal).
La 1ère est sudo apt-get update qui met à jour la liste des paquets du système. Elle ne met pas à jour les paquets en eux-même mais uniquement la liste des paquets. Une liste à jour permet de n’oublier aucun paquet lors de la mise à jour avec la commande suivante.
La 2ème commande est donc sudo apt-get upgrade et c’est elle qui va concrètement mettre à jour les paquets installés.
On y pense pas forcément, en se disant que c’est peut-être automatique, mais les mises à jour téléchargées avant leurs installations ne sont pas supprimées et prennent donc de la place.
Sur une carte de 8Go sur laquelle se trouve NOOBS + Raspbian et vos autres données, il est bon de nettoyer le système des paquets précédemment téléchargés.
Pour cela, tapez la commande sudo apt-get clean .
Pour info, sachez que la commande apt ne vérifie pas l’espace disponible avant le téléchargement, ce qui peut poser problème et faire échouer les téléchargements/mises à jours.
Si vous voulez vérifier l’espace disponible, tapez la commande sudo df -h .
Vous retrouverez ces informations sur le lien ci-dessous. Attention il y est aussi expliqué comment mettre à jour le kernel et le firmware vers des versions “expérimentales”, comprendre des versions beta pas forcément stables. En gros, je vous le déconseille !
Source : http://www.raspberrypi.org/documentation/raspbian/updating.md
WiFi :
Le Raspberry Pi (le modèle B+ en tout cas) a un port ethernet intégré mais ça n’est pas toujours le plus pratique pour être connecté au réseau alors si comme moi vous avez opté pour un module WiFi USB comme celui-ci que j’ai acheté voici comme faire la configuration et Ô magie aucune ligne de commande a saisir !
Pour commencer allez dans le « Menu » puis dans « Préférences » et cliquez sur « WiFi Configuration« .
Ensuite la fenêtre du logiciel s’affiche, cliquez sur « Scan » pour ouvrir une autre fenêtre. Si nécessaire, cliquez à nouveau sur « Scan » sur cette nouvelle fenêtre pour que les réseau WiFi détectés s’affichent. Ensuite choisissez le réseau que vous souhaitez ajouter et double-cliquez sur sa ligne. Dans la fenêtre qui s’ouvre renseignez le mot de passe du réseau choisi dans le champ « PSK » (PaSsword Key) et cliquez sur « Add« . Répétez l’opération pour chaque réseau WiFi que vous voulez ajouter. Voilà pour le WiFi c’est simple !
Bluetooth :
Si vous effectuez l’installation des paquets pour le bluetooth bien après l’installation, exécutez avant les quelques commandes de mise à jour de l’OS (Raspbian) avant, ça ne fait pas de mal !
C’est fait ? Alors ne fermez pas le terminal, et tapez la commande sudo apt-get install bluetooth bluez-utils blueman. Maintenant dans « Menu » (le gros bouton en haut à gauche de la barre des menus de Raspbian) puis dans « Préférences » vous devriez avoir un outil « Gestionnaire Bluetooth » :
Pour info, le dongle bluetooth que j’ai est celui-ci : https://www.modmypi.com/nano-bluethooth-dongle
Personnellement, j’ai jumelé ma Magic Mouse avec le Raspberry, non sans problème car en fait, il ne faut pas choisir un jumelage sans authentification (comme on pourrait le penser pour une souris). Du coup, lors du jumelage, lorsque vous est demandé le code PIN, apparemment pour une Magic Mouse, il faut saisir 0000. Il n’y a qu’après ça que j’ai réussi le jumelage mais suite à pas mal de tâtonnements. Et ensuite, même si bouger la souris bougeait bien le curseur c’était totalement inutilisable à cause des lags permanents. Je ne sais pas à qui en revient la faute mais du coup heureusement que j’ai une petite souris USB Logitech qui fonctionne à merveille.
Du coup j’espère que si vous avez besoin du bluetooth dans le cadre de votre utilisation du Raspberry Pi, vous aurez plus de chance que moi, car sinon ça risque de pourrir toute votre créativité de geek.
Sources :
– https://www.modmypi.com/blog/installing-the-raspberry-pi-nano-bluetooth-dongle
– http://www.raspberrypi.org/learning/robobutler/bluetooth-setup.md
Audio :
Pour ce qui est de l’audio, il y a de forte chance pour que vous ayez besoin ou envie à un moment d’écouter un(e) son/musique. Par défaut, le Raspberry Pi est configuré pour choisir automatiquement entre la sortie audio analogue et la sortie HDMI. Chez moi, le mode auto ne fonctionne pas et aucun ne sort nulle part…
Si vous avez le même problème, alors vous allez sûrement devoir forcer la sortie son sur l’un ou l’autre des ports. Mais rassurez-vous, c’est très simple à faire.
Relancez à nouveau le terminal (LXTerminal) et tapez la commande sudo raspi-config qui va alors vous afficher ceci (que vous avez sûrement déjà vu à la fin de l’installation de Raspbian) :
Déplacez vous avec les touches fléchées de votre clavier pour aller à la ligne « 8 Advanced Options« , validez la sélection avec la touche Entrée. Allez maintenant à la ligne « A8 Audio« , enfin choisissez la sortie que vous voulez et validez. Vous revenez alors à l’écran de départ, appuyez sur la touche tabulation puis sélectionnez « Finish » avec la flèche vers la droite et validez.
Source : http://www.raspberrypi.org/documentation/configuration/audio-config.md
Serveur VNC :
Pour utiliser le Raspberry Pi et contrôler Raspbian à distance, de quelque mètres ou de centaines de kilomètres, il faut installer un serveur VNC.
Pour les inconditionnels de la ligne de commande un serveur SSH suffira, mais quand même une interface graphique c’est plus cool, et pour ça il faut un serveur VNC qui, contrairement au SSH, n’est pas inclus de base.
Relancez le terminal du Raspberry Pi (LXTerminal) car c’est encore avec quelques commandes que l’on va installer le serveur.
On commence avec la commande sudo apt-get install tightvncserver .
Dès que l’installation est faite, enchainez avec la commande tightvncserver qui va lancer le serveur.
Il vous sera demandé de saisir un mot de passe. Il ne s’agit pas du mot de passe du Raspberry Pi (« raspberry » par défaut), il s’agit de créer un nouveau mot de passe qui sera celui à utiliser pour accéder au Raspberry Pi via le client VNC. Attention: le mot de passe ne peut pas faire plus de 8 caractères ! N’en saisissez donc pas plus sinon il sera tronqué.
You will require a password to access your desktops. Password: Verify:
Il vous sera aussi sûrement demandé si vous souhaitez créer un mot de passe pour l’observation seulement.
Would you like to enter a view-only password (y/n)?
Répondez non (n)
Vous devriez à présent voir les informations suivantes sur la console du terminal :
New ‘X’ desktop is raspberrypi:1 Creating default startup script /home/pi/.vnc/xstartup Starting applications specified in /home/pi/.vnc/xstartup Log file is /home/pi/.vnc/raspberrypi:1.log
Ensuite, tapez la commande sudo su pour passer en mode root.
Tapez maintenant la commande cd /etc/init.d/ pour vous placer dans le répertoire « init.d » dans lequel nous allons créer un fichier afin de permettre le lancement du serveur dès le démarrage du Raspberry Pi.
Tapez alors nano AutoBootVNCServer (vous pouvez remplacer « AutoBootVNCServer » par le nom de fichier que vous voulez).
L’éditeur de texte nano s’ouvre alors et vous allez pouvoir y coller le texte suivant :
### BEGIN INIT INFO # Provides: vncboot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time. ### END INIT INFO #! /bin/sh # /etc/init.d/vncboot # Set the USER variable to the name of the user to start tightvncserver under USER=pi case "$1" in start) echo "Starting VNC Server" #Insert your favoured settings for a VNC session su $USER -c '/usr/bin/tightvncserver :0 -geometry 1280x800' ;; stop) echo "Stopping VNC Server" /usr/bin/tightvncserver -kill :0 ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0
Quelques explications (pas tout car moi même je ne comprends pas l’ensemble des commandes contenues dans ce script) sur la ligne su $USER -c ‘/usr/bin/tightvncserver :0 -geometry 1280×800’ .
- Le :0 permet d’indiquer le numéro de l’écran virtuel que l’on souhaite créer pour la session de contrôle à distance.
On peut avoir plusieurs “sessions” de contrôle à distance en incrémentant ce chiffre. Mais cela a des conséquences sur le port à utiliser pour la connexion. Le port par défaut est le 5900 pour le protocole VNC. Ce port ne change pas si le chiffre est 0 mais si vous créez plusieurs écrans virtuel/sessions, il faudra mettre alors le chiffre de la session/l’écran que vous souhaitez contrôler/visualiser à la fin du numéro du port, exemple 5901, 5902 etc…
- Le paramètre -geometry permet de définir la résolution souhaitée pour l’écran virtuel, celle-ci est notée en pixels. Ici, je souhaite que la résolution soit de 1280 pixels par 800 pixels.
Revenons à nos commandes… Pour enregistrer le fichier et son contenu, appuyez sur les touches CTRL+O (WriteOut) puis validez le nom du fichier en appuyant sur la touche Entrée.
Appuyez maintenant sur les touches CTRL+X pour sortir de l’éditeur nano.
Tapez la commande chmod 755 AutoBootVNCServer (remplacez « AutoBootVNCServer » par le nom du fichier créé juste avant) afin d’octroyer au fichier les droits en exécution afin qu’il puisse donc être exécuté.
Maintenant, afin que le système lance l’exécution du fichier au démarrage, si vous êtes toujours dans le répertoire « init.d » (c’est normalement le cas si vous avez suivi correctement les étapes), tapez la commande update-rc.d AutoBootVNCServer defaults mais si vous êtes à la racine du système tapez update-rc.d etc/init.d/AutoBootVNCServer defaults (là encore vous remplacerez « AutoBootVNCServer » par le nom que vous avez donné au fichier).
Une fois la commande réussie, vous devriez lire update-rc.d: using dependency based boot sequencing .
Vous pouvez alors redémarrer le Raspberry Pi (si vous le faites depuis le terminal la commande est shutdown -r 0 ).
shutdown = éteindre -r = reboot \0 = délai en seconde avant exécution de la commande.
Je cite les sources sur lesquelles je me suis basé pour arriver à réaliser ce que je souhaite et pour réaliser ces explications mais sachez que dans mon cas, certaines commandes sur ces pages n’ont pas fonctionnées et il m’a fallu fouiller et bidouiller pour comprendre ce que je faisais et faire fonctionner le serveur VNC.
Sources :
– http://www.raspberrypi.org/documentation/remote-access/vnc/
– http://elinux.org/RPi_VNC_Server
– http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=11858
Apple Remote Desktop :
Dernière partie, le paramétrage du logiciel Remote Dekstop d’Apple pour le contrôle à distance.
Maintenant que le Raspberry Pi a redémarré, le fichier a du être exécuté, vous pouvez alors lancer votre client VNC pour ajouter le Raspberry Pi.
Assurez-vous de connaitre son adresse IP au préalable. Je vous conseille d’ailleurs de lui attribuer une adresse IP fixe, soit directement sur le Raspberry Pi (je vous laisse le plaisir de faire cela via les lignes de commandes adéquates) soit, je vous le conseille, via votre routeur en attribuant une adresse IP à l’adresse M.A.C du Raspberry (soit l’adresse M.A.C du port ethernet, soit celle de la clé Wifi, selon le mode de connexion de votre Raspberry Pi). Pour connaitre l’adresse M.A.C tapez ifconfig et choisissez l’adresse M.A.C correspondant à l’interface par laquelle vous êtes connecté. Et si, comme je le disais précédemment, vous installez le serveur VNC pour un contrôle à des centaines de kilomètres, alors pensez à faire la redirection des ports (5900 et 3283 par défaut mais modifiez le 5900 en fonction de votre config, voir là) vers l’adresse IP du Raspberry Pi (IP qui devra être fixe je vous le rappel) dans votre routeur.
Lors de la configuration dans votre client VNC, il y a une particularité aucun nom d’utilisateur n’est nécessaire. D’après mes essais vous pouvez en mettre un, n’importe quoi, celui-ci n’est pas vérifié. Théoriquement l’utilisateur est pi mais en pratique vous pouvez mettre tout ou rien, ça passe. Ceci étant je vous dis ça par rapport au logiciel Apple Remote Desktop et, même si j’en doute, un autre logiciel pourrait avoir éventuellement un comportement différent.
Voici donc les étapes de configuration pour le logiciel Remote Desktop d’Apple.
Il y a 2 manières de faire, soit via le “Scanner” où le Raspberry doit être détecté, soit “manuellement” en allant sur “All Computers” puis en cliquant sur le “+” en bas de la fenêtre et en choisissant “Add by address”. Si vous avez besoin de modifier le numéro de port du partage d’écran qui est par défaut 5900, il faut que vous ajoutiez le Raspberry Pi via la méthode “manuelle”. Il vous faudra alors aussi renseigner manuellement l’adresse IP du Raspberry Pi.
En dehors de cela, la seule information à saisir est le mot de passe. Il s’agit du mot de passe défini dans le terminal lors de l’installation et de la configuration du serveur VNC.
Lorsque vous prendrez le contrôle du Raspberry Pi, ne soyez pas étonnés si les actions que vous faîtes n’apparaissent pas sur l’éventuel écran physique que vous pourriez avoir de connecté au Raspberry Pi, ça semble normal. Sans avoir cherché réellement de réponse, les commandes pour démarrer le serveur au démarrage créent, comme je le disais plus haut, un écran virtuel qui semble vraiment différencié de l’écran physique.
Pour une raison que j’ignore je n’ai pas réussi à me connecter depuis Remote Desktop d’Apple sur le Raspberry Pi lorsque ce dernier est sur l’OS Raspbmc (XMBC (devenu Kodi) pour Raspberry Pi). Du coup j’ai tenté depuis l’application Screens sur iOS et là ça fonctionne, alors voici la configuration pour controler le Raspberry Pi sur Raspbian et sur Raspbmc depuis cette application iOS :
Sur Raspbmc, j’ai eu l’agréable surprise de voir que, là, les actions effectués via VNC apparaissent également sur l’écran physique (lorsqu’il est branché évidemment).
– – – – –
Si vous souhaitez configurer sur votre Raspberry Pi les protocoles FTP et AFP je vous invite à lire cet article d’Antoine qui explique les manipulations à effectuer.
Nous arrivons au terme de ce long tuto. J’espère qu’il vous aura aidé car j’ai passé beaucoup de temps pour configurer correctement les choses tout en comprenant ce que je faisais (je n’aime pas faire bêtement sans comprendre) et il m’a fallu aussi beaucoup de temps pour rédiger correctement cet article. Si vous remarquez la moindre erreur (technique ou d’orthographe), merci de me le signaler dans les commentaires afin que j’apporte la correction nécessaire.
Bon amusement à tous !