« Installation de Raspbian » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
m (suppression du doublon de catégories tutoriel/tutoriels)
 
(76 versions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{En construction}}
[[Fichier:Installation de Raspbian global tasks.svg|alt=Une visualisation graphiques des étapes par lesquelles vous aller passer en suivant ce tutoriel.|vignette|1383x1383px|Une visualisation graphiques des étapes par lesquelles vous aller passer en suivant ce tutoriel (cliquez pour agrandir).|néant]]


Grâce à cette page vous serez à même d'installer la version la plus récente de Raspbian (Stretch 2017-11-29 à l'heure où j'écris ces lignes). L'installation que nous allons faire est de type « Headless » c'est à dire que l'on procède à l'installation sans utiliser d'écran, ni de clavier/souris. L'avantage de ce type d'installation est de permettre d'installer sur un Raspberry Pi qui est simplement connecté au réseau, par exemple un serveur de fichiers, qui n'a donc pas besoin d'interfaces Homme-Machine telles qu'un écran ou clavier/souris.
Le but de cette page est de vous permettre de procéder à une installation ''headless'' de Raspbian. Nous allons installer la version Stretch 2017-11-29 (qui est la plus récente à l'heure où j'écris ces lignes). Une installation « Headless » signifie que l'on procède à l'installation sans utiliser d'écran, ni de clavier/souris (directement connectés au Raspberry Pi). L'avantage de ce type d'installation est de permettre d'installer Raspbian sur un Raspberry Pi qui est simplement connecté au réseau, par exemple un serveur de fichiers, qui n'a donc pas besoin d'interfaces Homme-Machine telles qu'un écran ou clavier/souris.


Travaillant sur une machine Apple cette page sera plutôt orientée OS X, cependant il est fort possible que les commandes utilisées fonctionnent pour n'importe quel autre système UNIX. De plus je tâcherai de fournir les outils nécessaires aux utilisateurs Windows.
Cette page poursuit un second but qui est de familiariser l'utilisateur à l'usage de la ligne de commande, c'est pour cela que les commandes utilisées sont détaillées et explicitées. Il est assurément possible d'installer Raspbian sans passer par la ligne de commande, néanmoins une certaine aisance avec l'interface de ligne de commande est nécessaire pour utiliser pleinement son Raspberry Pi.
 
Note : Travaillant sur une machine Apple cette page sera plutôt orientée OS X, cependant il est fort possible que les commandes utilisées fonctionnent pour n'importe quel autre système UNIX. De plus je tâcherai de fournir les outils nécessaires aux utilisateurs Windows.
 
== Quelle distribution choisir : lite ou desktop ? ==
Avant de télécharger Raspbian il faut savoir qu'il existe en deux version : une version avec desktop et une version lite. La différence entre ces deux versions (et leur appellation est trompeuse) est la suivante : la distribution lite ne contient que l'essentiel, c'est-à-dire uniquement le système d'exploitation. Elle ne contient même pas d'interface utilisateur graphique (GUI). La distribution desktop, elle, contient un environnement graphique ainsi que de nombreuses applications supplémentaires telles que : OpenOffice, Minecraft, Chromium, Wolfram.
 
Sachant que le Raspberry Pi possède des ressources bien plus limitées qu'un ordinateur de bureau traditionnel il n'est pas forcément nécéssaire de s'encombrer d'une version desktop qui installera des applications dont on aura pas forcément l'utilité. De plus ces applications peuvent aisément être installées par la suite (il en va de même pour l'interface graphique utilisateur, nous le verrons sur cette page d'ailleurs). C'est pour cela que je recommande vivement l'installation d'une version lite plutôt qu'une version avec desktop.
 
Cependant si votre but est de découvrir de nouvelles applications, ou d'expérimenter l'environnement linux il peut être judicieux d'installer une version desktop, mais dans le cadre d'une utilisation ''headless'' ce serait superflu.


== Télécharger Raspbian Stretch ==
== Télécharger Raspbian Stretch ==
Vous pourrez télécharger les versions les plus récentes de Raspbian en [https://www.raspberrypi.org/downloads/raspbian/ cliquant ici]. Avant de télécharger Raspbian il faut savoir qu'il existe en deux version : une version avec desktop et une version lite. La différence entre ces deux versions (et leur appellation est trompeuse) est la suivante : la distribution lite ne contient que l'essentiel, c'est-à-dire uniquement le système d'exploitation elle ne contient même pas d'interface utilisateur graphique (GUI). La distribution desktop elle contient un environnement graphique ainsi que de nombreuses applications supplémentaires telles que : OpenOffice, Minecraft, Chromium, Wolfram.
Maintenant que vous avez choisi votre distribution vous pourrez télécharger les versions les plus récentes de Raspbian en {{Goblock | [https://www.raspberrypi.org/downloads/raspbian/ cliquant ici]}}
 
Comme le but de cette page est d'apprendre à installer Raspbian en ''headless'' il serait bon de « s'échauffer » en commençant par télécharger votre distribution en ligne de commande.
 
Tout d'abord on va se placer dans notre dossier téléchargements<syntaxhighlight lang="bash">
$ cd ~/Downloads
</syntaxhighlight>
 
Ensuite on procède au téléchargement du fichier au moyen de la commande <code>curl</code> avec l'option « O » qui permet de récupérer le nom de fichier utilisé sur l'hôte distant, dans l'exemple ci dessous cela signifie que votre téléchargement s'appellera : 2017-11-29-raspbian-stretch-lite.zip. <syntaxhighlight lang="bash">
$ curl -O http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2017-12-01/2017-11-29-raspbian-stretch-lite.zip
</syntaxhighlight>
 
En cas de doutes sur la commande <code>curl</code> vous pouvez toujours consulter l'aide : « curl -h » ou le manuel « man curl ». Ici il faut bien veiller à télécharger la dernière version (toutes les informations sont présentes en suivant le lien de téléchargement donné au début de cette section, ce qui signifie qu'elles peuvent potentiellement ne plus être à jour).
 
Bien que télécharger ce fichier via la commande curl peut sembler exagéré , il est toujours utile de se familiariser avec cette commande qui est particulièrement puissante.
 
Une fois le téléchargement terminé il faudra alors le décompresser. Pour cela nous utiliserons la commande ''<code>tar</code>'' (qui sert à dé/compresser des fichiers) avec les options suivantes : xvf. X sert à indiquer à tar qu'il doit fonctionner en mode extraction, v active le mode verbeux ''(verbose)'' et f indique simplement l'emplacement de l'archive. Ici l'ordre des arguments est important (x doit toujours être en premier et f doit être suivi du nom de fichier).<syntaxhighlight lang="bash">
$ tar -xvf 2017-11-29-raspbian-stretch-lite.zip
</syntaxhighlight>Si tout s'est déroulé comme prévu vous devriez trouver votre image de Raspbian lite au chemin suivant : ''~/Downloads/2017-11-29-raspbian-stretch-lite.img''
 
== Préparer la carte SD et monter l'image dessus ==
Pour commencer il suffit de connecter la carte SD à l'ordinateur (que ce soit par l'intermédiaire d'un port dédié, ou par l'intermédiaire d'un lecteur externe).
 
=== Déterminer l'identifiant du système de fichiers de la carte SD ===
Nous allons utiliser la commande ''<code>df</code>'' qui affiche l'utilisation des disques en se basant sur le système de fichiers (c-à-d disques entiers, médias amovibles). Nous allons passer l'option -h, ici le h indique que les résultats retournés doivent être présentés sous une forme lisible par un humain (le h vient de humain). Vous devriez obtenir en retour quelque chose de similaire à ce qui suit :<syntaxhighlight lang="bash">
$ df -h
Filesystem                          Size  Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1                        465Gi  350Gi  114Gi    76% 91933614 29862480  75%  /
devfs                              186Ki  186Ki    0Bi  100%      643        0  100%  /dev
map -hosts                          0Bi    0Bi    0Bi  100%        0        0  100%  /net
map auto_home                        0Bi    0Bi    0Bi  100%        0        0  100%  /home
/dev/disk3s1                        60Gi  38Gi  21Gi    65%  312815  175881  64%  /Volumes/SD
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</syntaxhighlight>Ce qui se trouve au dessus se décrypte de la manière suivante :
* le disque dur de l'ordinateur est monté comme /dev/disk1 (c'est toujours le cas), on le repère de deux manières : parce qu'il est monté à la racine du système fichier, et parce qu'il s'agi du disk1.
* devfs, map -hosts et map auto-home sont montés par le système de fichiers mais ne nous concernent pas pour l'activité qui nous occupe présentement.
* On remarque que /Volumes/SD apparaît comme /dev/disk3s1 (cet identifiant diffère pour chaque système c'est pourquoi il faut suivre les étapes de ce tutoriel et non juste copier les commandes données). C'est notre carte SD, que l'on peut identifier de plusieurs façons :
** Le nom du volume, je sais que ma carte SD s'appelle SD, c'est la méthode la plus sûre.
** En se basant sur la taille, je sais que c'est une carte de 64GB (ce qui correspond à 60Gi), cette méthode ne marche pas si vous avez plusieurs volumes ayant la même taille (peu probable).
** Finalement on peut aussi procéder par élimination (peu recommandable).
 
=== Démonter la carte SD ===
L'étape suivante va être de démonter la carte SD, il ne s'agi pas là de la déconnecter. Pour ce faire on va utiliser la commande ''<code>[https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/diskutil.8.html diskutil]</code>''. Cette commande rempli les même fonctions que l'utilitaires de disques Apple. En effet, il s'agi du même programme sauf qu'il est ici utilisé en ligne de commande plutôt que de passer par l'interface graphique.
 
Toute les fonctions intéressantes de <code>diskutil</code> étant réservées au root il faudra alors utiliser ''<code>sudo</code>'' pour donner les droits, et entrer votre mot de passe de session.
 
On aura donc la commande suivante :<syntaxhighlight lang="bash">
$ sudo diskutil unmount /dev/disk3s1
Password:
Volume SD on disk3s1 unmounted
 
 
 
 
 
 
 
 
 
 
 
 
</syntaxhighlight>Ici on a plusieurs commandes, tout d'abord : ''<code>sudo</code>'' ('''s'''ubstitute '''u'''ser '''do''') qui permet de faire une action en se substituant à un utilisateur (en l'occurence root, qui est inaccessible par défaut sous macOS). On fait également appel à la fonction ''<code>unmount</code>'' de ''<code>diskutil</code>'' à laquelle on passe l'argument du disque à démonter (dans cet exemple /dev/disk3s1).
 
=== Monter l'image de Raspbian sur la carte SD ===
Après cela il va être temps de copier notre image de Raspbian sur la carte SD. Pour cela nous allons utiliser la commande ''[https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/dd.1.html <code>dd</code>]'' qui permet de « convertir et copier un fichier », elle permet entre autres de copier une image sur un volume.
 
Nous allons passer plusieurs options à la commande ''dd''. Tout d'abord nous allons spécifier la taille des blocs ('''b'''lock '''s'''ize) à 1 megabyte avec l'option ''<code>bs=1m</code>''. Avec l'option ''<code>if=~/Downloads/2017-11-29-raspbian-stretch-lite.img</code> nous allons spécifier le fichier d'entrée ('''i'''nput '''f'''ile). Ensuite avec l'option <code>of=/dev/rdisk3</code>'' on va indiquer le fichier de sortie ('''o'''utput '''f'''ile). Finalement l'option <code>conv=sync</code> nous assure que les données transférées seront adaptées pour rentrer dans les blocs de 1 megabyte que nous avons spécifié précédemment.


Ici il faudra parler d'où télécharger Raspbian, quelle version choisir (lite ou desktop). Expliquer comment télécharger en ligne de commande (c'est toujours utile), surtout si on installe une version sans desktop.
Attention : vous devez utiliser l'identifiant de disque que vous avez obtenu précédemment. C'est-à-dire que si votre carte SD est sous /dev/disk2s1 il faudra utiliser /dev/rdisk2. Soyez bien attentif au numéro que vous entrez, si vous entrez celui d'un autre volume les données de celui-ci pourraient être écrasées.


== Préparer la carte SD ==
Avertissement : Ce processus peut-être long (plusieurs minutes) suivant la vitesse de la carte utilisée, du disque dur, la taille de l'image (surtout si vous n'avez pas opté pour une distribution light). Patientez et ne paniquez pas !
Comment formater une carte SD depuis la ligne de commande (monter/démonter un disque). Comment le faire depuis l'utilitaire de disque. Copier l'image de Raspbian avec dd. Proposer un utilitaire Windows.
 
Si l'on met tout cela ensemble on obtient le résultat suivant.<syntaxhighlight lang="bash">
$ sudo dd bs=1m if=2017-11-29-raspbian-stretch-lite.img of=/dev/rdisk3 conv=sync
1772+0 records in
1772+0 records out
1858076672 bytes transferred in 89.172288 secs (20836929 bytes/sec)
</syntaxhighlight>Vous devez maintenant pouvoir voir dans le Finder une carte SD nommée boot. Dans ce cas félicitations vous avez réussi à copier l'image.
 
Si l'on utilise la commande <code>df -h</code> à nouveau on devrait maintenant obtenir le résultat suivant :<syntaxhighlight lang="bash">
$ df -h
Filesystem                          Size  Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1                        465Gi  351Gi  113Gi    76% 92149978 29646116  76%  /
devfs                              187Ki  187Ki    0Bi  100%      647        0  100%  /dev
map -hosts                          0Bi    0Bi    0Bi  100%        0        0  100%  /net
map auto_home                        0Bi    0Bi    0Bi  100%        0        0  100%  /home
/dev/disk3s1                        41Mi  21Mi  20Mi    51%        0        0  100%  /Volumes/boot
</syntaxhighlight>Vous remarquerez que la taille de la carte SD a drastiquement diminuée, c'est normal. En effet elle a maintenant pris la taille de l'image que l'on a copié dessus. Nous nous occuperons plus tard de lui rendre sa taille originelle.
 
=== Activer SSH ===
Avant d'éjecter la carte il nous faut encore activer SSH sur Raspbian (il s'agi d'une installation ''headless'').
 
Nous allons donc utiliser la commande <code>[https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/touch.1.html touch]</code> qui permet de modifier les dates de modification et d'accès d'un fichier et si le fichier spécifié n'existe pas il est alors créé. C'est cette particularité que nous allons utiliser.<syntaxhighlight lang="bash">
$ touch /Volumes/boot/ssh
</syntaxhighlight>
 
=== Ejecter la carte SD ===
C'est la dernière phase de cette étape. Il est essentiel d'éjecter correctement le périphérique pour pouvoir le débrancher sans risques. Nous allons donc utiliser la fonction ''eject'' de <code>diskutil</code> pour y parvenir. Soyez attentif d'utiliser le bon identifiant de disque (celui déterminé au dessus) dans la commande.<syntaxhighlight lang="bash">
$ sudo diskutil eject /dev/rdisk3
Password:
Disk /dev/rdisk3 ejected
</syntaxhighlight>Une fois que le terminal vous a affiché que le disque était éjecté vous pouvez alors le retirer sans risques.
 
=== A faire ===
* Proposer de le faire via la GUI. Est-ce vraiment nécessaire ? On perd l'intérêt d'apprendre à utiliser la ligne de commande... A y réfléchir ! [[Utilisateur:Kevin Oulevey|Kevin Oulevey]] ([[Discussion utilisateur:Kevin Oulevey|discussion]])
** Si je le fais il faudra le montrer également depuis windows.


== Mise en route et configuration du Raspberry Pi ==
== Mise en route et configuration du Raspberry Pi ==
Brancher le RPi, le trouver sur le réseau, s'y connecter via SSH, étendre le système de fichiers, reboot, modifier passwd, continuer avec sa vie.
Après avoir inséré la carte micro SD dans votre Raspberry Pi et connecté un cable ethernet vous pouvez le brancher au secteur. Après une petite minute il devrait avoir complètement démarré. Cela signifie qu'il devrait avoir reçu une [[wp_fr:Adresse_IP|adresse IP]] du [[wp_fr:Routeur|routeur]]. Maintenant il nous faut trouver l'adresse IP du Raspberry Pi.
 
=== Obtenir l'adresse IP du Raspberry Pi ===
 
==== En utilisant Nmap ====
Nmap (abréviation de « Network Mapper ») est un utilitaire open-source qui permet notamment de découvrir les hôtes présents sur un réseau donné. C'est cette fonctionnalité que nous allons utiliser. {{Goblock | [https://nmap.org/download.html Télécharger Nmap]}}
 
On pourra utiliser Nmap de deux façon soit en utilisant Zenmap, son interface graphique, soit en utilisant la ligne de commande. Dans les deux cas vous devrez entrer les mêmes paramètres. La seule différence est que parfois la ligne de commande ne résout pas les noms d'hôtes, vous vous trouvez donc juste avec une liste d'adresses IP sans avoir les noms correspondants. Ce problème ne se pose pas en utilisant Zenmap.
* La première étape est de trouver l'adresse IP de votre machine.
** Sous OS X : ouvrir l'utilitaire réseaux (accessible depuis spotlight en entrant son nom), il vous indiquera alors votre adresse IP dans la partie supérieure droite de la fenêtre.
** Sous Windows : Ouvrir Panneau de configuration -> Centre réseaux et partages -> Voir les connections réseau.
* Votre adresse IP ressemblera à 192.168.0.43, ce qui implique que les autres appareils connectés au réseau partageront les 3 premiers octets (c-à-d 192.168.0). Si vous voulez dire à Nmap de couvrir les adresses IP de 192.168.0.0 à 192.168.0.255 vous écrirez 192.168.0.0/24
* En utilisant Zenmap ou la commande Nmap depuis le terminal entrez le code suivant et exécutez le script : <code>nmap -sn 192.168.0.0/24</code>
** Ici l'option <code>-sn</code> dit à Nmap de ne pas scanner les ports ouverts sur les hôtes (cela prend plus de temps et ne nous intéresse absolument pas).
Vous devriez obtenir un résultat similaire :<syntaxhighlight lang="bash" line="1">
$ nmap -sn 192.168.0.0/24
 
Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-16 11:39 CET
Nmap scan report for 192.168.0.6
Host is up (0.00015s latency).
MAC Address: 5C:D9:98:F9:4A:DE (D-Link)
Nmap scan report for 192.168.0.9
Host is up (0.00014s latency).
MAC Address: 40:61:86:C5:CD:67 (Micro-star Int'l)
Nmap scan report for 192.168.0.12
Host is up (0.00023s latency).
MAC Address: 00:11:32:3C:00:13 (Synology Incorporated)
Nmap scan report for 192.168.0.14
Host is up (0.072s latency).
MAC Address: 78:4F:43:8B:5A:08 (Apple)
Nmap scan report for 192.168.0.25
Host is up (0.25s latency).
MAC Address: B0:C5:54:0F:3F:1C (D-Link International)
Nmap scan report for 192.168.0.28
Host is up (0.00049s latency).
MAC Address: B8:27:EB:2D:5A:05 (Raspberry Pi Foundation)
Nmap scan report for 192.168.0.42
Host is up (0.00071s latency).
MAC Address: A0:D3:C1:EA:9F:E9 (Hewlett Packard)
Nmap scan report for 192.168.0.44
Host is up (0.00034s latency).
MAC Address: 70:4F:57:DC:38:17 (Tp-link Technologies)
Nmap scan report for 192.168.0.100
Host is up (0.0036s latency).
MAC Address: 00:30:4F:A3:07:66 (Planet Technology)
Nmap scan report for 192.168.0.254
Host is up (0.00078s latency).
MAC Address: 14:0C:76:A4:64:BC (Freebox SAS)
Nmap scan report for 192.168.0.43
Host is up.
Nmap done: 256 IP addresses (11 hosts up) scanned in 6.26 seconds
 
</syntaxhighlight>Une fois que l'on a obtenu ce qui précède il suffi de trouver l'IP correspondant au Raspberry Pi (trahi à la ligne 21 par Raspberry Pi Foundation). Dans ce cas l'IP est la suivante : 192.168.0.28 (ligne 19). A partir de cela vous pourrez dès lors vous connecter via SSH.
 
==== Depuis l'interface du routeur ====
Si votre routeur fonctionne en DHCP (c'est le cas à moins que vous l'ayez configuré différemment) vous pouvez depuis l'interface de gestion visualiser les périphériques connectés à votre réseau. Ici cela dépend des modèles de routeurs de votre FAI, je ne pourrais donc pas tous les décrire. Néanmoins en vous connectant à l'interface d'administration vous devriez pouvoir trouver de quoi afficher les périphériques connectés. Suivant les [[wp_fr:Fournisseur_d'accès_à_Internet|FAI]] cela peut-être très simple (chez Free par exemple) ou beaucoup moins aisé. Je vous laisse choisir la méthode vous convient le mieux.
 
=== Se connecter via SSH au Raspberry Pi ===
Maintenant que l'on a l'adresse IP du RPi on peut s'y connecter.
 
Par défaut il y a un compte '''pi''' qui est créé sur le Raspberry Pi. Le mot de passe par défaut est '''raspberry'''. On se connecte donc en adaptant la syntaxe de base suivante :<syntaxhighlight lang="bash">
$ ssh compteutilisateurDistant@adresseIPhôteDistant
Dans notre exemple le compte est : pi
$ ssh pi@adresseIPhôteDistant
</syntaxhighlight>Dans notre cas il faudra entrer : <code>ssh pi@192.168.0.28</code>
 
Ce qui nous retournera un écran similaire :<syntaxhighlight lang="bash">
$ ssh pi@192.168.0.28
The authenticity of host '192.168.0.28 (192.168.0.28)' can't be established.
ECDSA key fingerprint is SHA256:R7vksOZP/VlTME0iRRGCbTuhwsTzWL16KSyx7W5pVUg.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '192.168.0.28' (ECDSA) to the list of known hosts.
pi@192.168.0.28's password: #ici il faut entrer le mot de passe : raspberry
Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l
 
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
 
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
 
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
 
pi@raspberrypi:~ $
 
</syntaxhighlight>
 
=== Modification du mot de passe du compte pi ===
La première chose que l'on va faire va être de changer le mot de passe du compte pi. Pour cela on va utiliser la commande <code>passwd</code>. Entrez un mot de passe suffisamment complexe pour garantir la sécurité.
 
=== Etendre le système de fichier ===
Nous l'avions vu plus haut, il n'y a qu'une petite partie de la carte SD qui est disponible pour le système d'exploitation. Maintenant nous allons étendre le système de fichiers pour qu'il utilise l'intégralité de l'espace disponible sur la carte SD.
 
Pour cela nous allons exécuter <code>raspi-config</code>.<syntaxhighlight lang="bash">
$ sudo raspi-config
</syntaxhighlight>
 
Ensuite il faudra se rendre dans ''7 Advanced options'' puis sélectionner l'option ''A1 Expand filesystem''. Ensuite faites redémarrer le Raspberry Pi.
 
Avant de vous déconnecter pensez à mettre à jour Raspbian.<syntaxhighlight lang="bash">
$ sudo apt-get update
$ sudo apt-get upgrade
</syntaxhighlight>Vous avez maintenant un Raspberry Pi fonctionnel (et à jour) accessible via SSH !
 
== Installation d'un environnement de bureau (PIXEL) ==
=== Qu'est-ce qu'un environnement de bureau ? ===
Un [[wp_fr:Environnement_de_bureau|environnement de bureau (sur Wikipedia)]] (en anglais [[wp_en:Desktop_environment|desktop environment (sur Wikipedia)]]) est un logiciel implémentant la [[wp_en:Desktop_metaphor|métaphore du bureau (en anglais)]] et qui permet de manipuler l'ordinateur par l'intermédiaire d'une interface graphique. Pour la vaste majorité des utilisateurs l'environnement de bureau est la voie d'accès principale à l'ordinateur.
 
Attention à ne pas confondre environnement de bureau et gestionnaire de fichiers. Sur macOS le Finder est un gestionnaire de fichiers (il peut d'ailleurs être remplacé) tandis qu'Aqua est l'environnement de bureau (et peut être remplacé moyennant certains efforts). Sous Windows l'explorateur de fichiers (remplaçable également) sert de gestionnaire de fichiers alors que [[wp_en:Windows_shell|Windows shell (en anglais)]] est l'environnement de bureau (il peut notamment être remplacé par ReactOS Explorer).
 
Pour les utilisateurs de systèmes UNIX voici quelques environnements de bureau populaires : [https://cinnamon-spices.linuxmint.com Cinnamon], [https://www.gnome.org GNOME], [https://www.kde.org KDE], [https://code.launchpad.net/unity Unity].
 
=== Pourquoi installer un environnement de bureau ? ===
Alors que nous avons fait une installation la plus « légère » possible on peut se poser la question de l'utilité d'installer un environnement de bureau. Si l'on veut faire une installation minimaliste de Raspbian tout en conservant une interface utilisateur graphique c'est le seul moyen. On peut dès lors se demander pourquoi avoir fait toute cette installation en ligne de commande pour finir par utiliser une interface graphique ? La réponse étant qu'une connaissance de la ligne de commande est relativement indispensable pour tout utilisateur de Raspbian. De plus c'est la façon la plus simple d'avoir une installation de Raspbian avec un environnement de bureau sans autres applications superflues (l'autre méthode consistant à partir d'une installation standard et d'en retirer toutes les applications non désirées ainsi que leurs dépendances, tâches fastidieuse et prohibant toute installation avec une carte de moins de 4Go).
 
=== Comment fonctionne un environnement graphique ? ===
[[Fichier:Desktop environment map.svg|alt=Composition d'un environnement de bureau.|vignette|482x482px|Composition d'un environnement de bureau.]]
Les environnements de bureau reposent sur quatre composants :
# Un serveur graphique qui fait le lien entre la matériel (la puce graphique) et l'affichage (l'écran).
# L'environnement de bureau.
# Un gestionnaire de fenêtres qui sert à gérer... les fenêtres.
# Un gestionnaire de session qui permet aux utilisateurs de se connecter et d'ouvrir une session graphique, ces sessions sont liées aux comptes utilisateurs présents sur la machine.
Dans notre cas nous allons installer l'environnement PIXEL qui est l'abréviation de Pi Improved XWindows Environment Lightweight, ce qui en français donne : environnement léger XWindows amélioré pour Pi.
 
Nous choisissons PIXEL car c'est l'environnement recommandé pour Raspbian (de plus il présente l'avantage de pouvoir être installé sur une machine WIndows ou macOS). Cependant d'autre environnements sont compatibles tels que GNOME, KDE, lxde et xfce. De même les composants proposé sont uniquement le fruit de mon expérience personnelle, d'autres peuvent très bien fonctionner.
 
=== Installation des composants de l'environnement graphique ===
Les composants que nous allons installer sont les suivants :
# Comme serveur graphique : [https://www.x.org/wiki/ Xorg]
# Comme environnement de bureau : [https://www.raspberrypi.org/blog/introducing-pixel/ PIXEL]
# Comme gestionnaire de fenêtres : [http://openbox.org/wiki/Main_Page Openbox]
# Comme gestionnaire de session : [https://www.freedesktop.org/wiki/Software/LightDM/ Lightdm]
En premier lieu il faut s'assurer que notre Raspberry Pi est à jour, nous allons donc lancer les commandes suivantes :<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
</syntaxhighlight>Pour rappel <code>apt-get update</code> sert à mettre à jour la liste des dépôts, ce qui permet d'avoir toujours accès aux paquets les plus récents. <code>apt-get dist-upgrade</code> se différencie de l'upgrade simple puisqu'elle met à jour tous les paquets installés en installant des nouveaux paquets si nécessaires. Finalement <code>reboot</code> sert à faire redémarrer le Raspberry Pi, ce que vous devez faire après chaque mise-à-jour.
 
==== Installer le serveur graphique Xorg ====
L'installation de Xorg est très simple puisqu'elle se fait via apt-get au moyen de la commande suivante :<syntaxhighlight lang="bash">
sudo apt-get install --no-install-recommends xserver-xorg
</syntaxhighlight>Ici vous pouvez voir qu'on a ajouté l'option : <code>--no-install-recommends</code>. Lorsque vous omettez cette option apt-get va faire une liste des dépendances à installer ainsi que des logiciels recommandés et installera le tout. Or cette option permet de n'installer que les dépendances, qui sont nécessaires et pas les logiciels recommandés.
 
Attention cependant ce n'est pas une bonne idée de faire cela pour chaque installation, car souvent les applications recommandées sont recommandées... Cependant dans notre cas le but est d'avoir une installation la plus petite possible, de plus cela ne pose pas de problèmes de compatibilité ultérieurs. A utiliser avec parcimonie donc !
 
==== Installer l'environnement de bureau PIXEL ====
De nouveau ici l'installation se fait par apt-get avec la commande suivante :<syntaxhighlight lang="bash">
sudo apt-get install raspberrypi-ui-mods
</syntaxhighlight>Cette installation va être très longue puisque PIXEL et ses dépendances occupent plus de 430 Mo d'espace disque. Ici on n'utilise pas l'option <code>--no-install-recommends</code> car dans ce cas les paquets recommandés sont presque indispensables (un gestionnaire de fichiers par exemple). PIXEL installe aussi Openbox ce qui est un gain de temps. Bien entendu vous pouvez choisir de ne pas les installer et de personnaliser votre installation jusque dans les moindres détails, cependant cela est à reserver aux experts.
 
==== Installer le gestionnaire de fenêtres Openbox ====
Comme expliqué précédemment Openbox est installé automatiquement par PIXEL.
 
Cependant si vous décidez de ne pas installer PIXEL mais un autre environnement de bureau assurez vous qu'Openbox est adapté avant de procéder à l'installation de ce dernier.<syntaxhighlight lang="bash">
sudo apt-get install openbox xinit pcmanfm lx-terminal
</syntaxhighlight>Avec cette commande on installe Openbox, <code>xinit</code> qui est nécessaire pour exécuter Openbox, <code>pcmanfm</code> un gestionnaire de fichiers, <code>lx-terminal</code> un terminal.
 
==== Installer le gestionnaire de sessions Lightdm ====
Nous arrivons à l'installation de notre dernier composant : le gestionnaire de sessions que l'on installe au moyen de la commande suivante :<syntaxhighlight lang="bash">
sudo apt-get install lightdm
</syntaxhighlight>Attention : selon les versions de PIXEL Lightdm est une dépendance, et est donc déjà installé. Si c'est le cas <code>apt</code> vous retournera que le paquet à déjà été installé.
 
Pour clore cette étape il ne vous reste plus qu'a faire redémarrer le Raspberry Pi avec, comme vous le savez déjà, la commande :<syntaxhighlight lang="bash">
sudo reboot
</syntaxhighlight>Et voilà au redémarrage votre Raspbian Lite sera équipé d'un environnement de bureau.
 
Si votre Raspberry Pi fonctionne toujours en mode headless (c'est-à-dire sans écran ni clavier/souris directement attachés) vous pouvez quand même profiter de cette belle interface graphique fraîchement installée par l'intermédiaire d'un client VNC. Nous allons justement voir comment installer et configurer un serveur VNC sur votre Raspberry Pi.
 
== Installation et configuration de VNC ==
Nous allons maintenant installer un serveur VNC. VNC c'est l'abréviation de [[wp_en:Virtual_Network_Computing|Virtual Network Computing]] qui, en français, signifie [[wp_fr:Virtual_Network_Computing|informatique virtuelle en réseau]] cela vous permettra de prendre le contrôle à distance d'un ordinateur. Pour ceux qui ne sont pas familiers avec ce genre de logiciels cela vous permettra concrètement d'afficher sur votre écran ce qui s'affiche sur l'écran de la machine distante (comme un partage d'écran classique) en vous permettant en plus de contrôler cette machine avec votre ensemble clavier/souris. D'un point de vue technique le serveur VNC se place au niveau du serveur graphique et transfert les données d'affichage au client VNC.
 
=== Installation ===
L'installation du serveur VNC est très simple, en effet elle se fait depuis raspi-config.<syntaxhighlight lang="bash">
sudo raspi-config
</syntaxhighlight>Ensuite vous vous rendez au ''5. Interfacing options'', puis ''P3 VNC'' et activez VNC''.''
 
Pendant que l'installation se fait profitez en pour [https://www.realvnc.com/en/connect/download/viewer/ installer VNC Viewer] sur votre ordinateur (celui avec lequel vous voulez contrôler votre Raspberry Pi). VNC Viewer fonctionne aussi sur tablettes et smartphones. Comme la Fondation Raspberry Pi je vous conseille vivement de créer un compte RealVNC Cloud services, c'est gratuit et rapide. Cela vous permettra d'établir une connexion sécurisée simplement par le cloud (vos données ne sont pas stockées dans le nuage, ni la teneur de vos échanges) qui vous épargnera donc d'ouvrir un port sur votre routeur et d'utiliser une IP fixe.
 
=== Configuration ===
Une fois installé renseignez l'adresse IP de votre Raspberry Pi dans votre client VNC, il vous retournera une ''catchphrase'' que vous pouvez vérifier au moyen de la commande <code>vncserver</code> (à exécuter via SSH). Si les ''catchphrases'' correspondent entrez dans les champs correspondants votre nom d'utilisateur « pi » par défaut ainsi que votre mot de passe UNIX (celui que vous avez changé [https://edutechwiki.unige.ch/fr/Installation_de_Raspbian#Modification_du_mot_de_passe_du_compte_pi ici]). Et voilà vous êtes connectés !
 
Il peut arriver qu'aucun bureau ne soit créé lors du démarrage, vous vous retrouvez alors face à un écran noir (ou VNC Viewer peut vous retourner une erreur disant que votre demande de connexion à été rejetée). Cela est du au fait qu'aucun écran n'est physiquement connecté au Raspberry Pi. Bien que cela ne devrait plus arriver avec Raspbian Stretch vous pouvez y remédier en créant un bureau virtuel au moyen de la commande <code>vncserver-virtual</code> à exécuter via SSH.
 
=== Effectuer une copie de sauvegarde de son installation ===
Maintenant que votre installation est terminée et configurée je vous suggère vivement d'en faire une copie de sauvegarde, afin de pouvoir repartir d'une base propre rapidement. Pour ce faire suivez ce [https://thepihut.com/blogs/raspberry-pi-tutorials/17789160-backing-up-and-restoring-your-raspberry-pis-sd-card tutoriel pour WIndows, OSX et Linux]. Les commandes utilisées vous seront familières puisqu'on les a utilisées pour copier l'image de Raspbian sur la carte SD.
Finalement si vous décidez de restaurer cette image sur une carte SD de capacité supérieure n'oubliez pas d'étendre le système de fichiers depuis <code>raspi-config</code>. En cas de doute [https://edutechwiki.unige.ch/fr/Installation_de_Raspbian#Etendre_le_syst.C3.A8me_de_fichier relisez ça].
 
== Qu'est-ce qu'on peut en faire ? (à développer) ==
Maintenant que votre Raspberry Pi est opérationnel on vous propose un certain nombre de projets à accomplir avec. N'hésitez pas à compléter cette liste !
* Un serveur web
* Une [https://moodlebox.net/fr/ Moodlebox]
 
== Références ==
* [https://www.raspberrypi.org/documentation/remote-access/ssh/ Activer SSH sur Raspbian (Site officiel de Raspbian en anglais)]
* [https://nmap.org/book/man.html Nmap Reference Guide (en anglais)]
* [https://www.realvnc.com/en/connect/docs/raspberry-pi.html#raspberry-pi-setup VNC Connect and Raspberry Pi (en anglais)]
*[https://doc.ubuntu-fr.org/apt-get Documentation <code>apt-get</code> (en français)]
*[https://dadarevue.com/ajouter-gui-raspbian-lite/ Ajouter une GUI à Raspbian Lite (en français)]
 
[[Category:Tutoriel]]

Dernière version du 22 novembre 2022 à 01:23

Une visualisation graphiques des étapes par lesquelles vous aller passer en suivant ce tutoriel.
Une visualisation graphiques des étapes par lesquelles vous aller passer en suivant ce tutoriel (cliquez pour agrandir).

Le but de cette page est de vous permettre de procéder à une installation headless de Raspbian. Nous allons installer la version Stretch 2017-11-29 (qui est la plus récente à l'heure où j'écris ces lignes). Une installation « Headless » signifie que l'on procède à l'installation sans utiliser d'écran, ni de clavier/souris (directement connectés au Raspberry Pi). L'avantage de ce type d'installation est de permettre d'installer Raspbian sur un Raspberry Pi qui est simplement connecté au réseau, par exemple un serveur de fichiers, qui n'a donc pas besoin d'interfaces Homme-Machine telles qu'un écran ou clavier/souris.

Cette page poursuit un second but qui est de familiariser l'utilisateur à l'usage de la ligne de commande, c'est pour cela que les commandes utilisées sont détaillées et explicitées. Il est assurément possible d'installer Raspbian sans passer par la ligne de commande, néanmoins une certaine aisance avec l'interface de ligne de commande est nécessaire pour utiliser pleinement son Raspberry Pi.

Note : Travaillant sur une machine Apple cette page sera plutôt orientée OS X, cependant il est fort possible que les commandes utilisées fonctionnent pour n'importe quel autre système UNIX. De plus je tâcherai de fournir les outils nécessaires aux utilisateurs Windows.

Quelle distribution choisir : lite ou desktop ?

Avant de télécharger Raspbian il faut savoir qu'il existe en deux version : une version avec desktop et une version lite. La différence entre ces deux versions (et leur appellation est trompeuse) est la suivante : la distribution lite ne contient que l'essentiel, c'est-à-dire uniquement le système d'exploitation. Elle ne contient même pas d'interface utilisateur graphique (GUI). La distribution desktop, elle, contient un environnement graphique ainsi que de nombreuses applications supplémentaires telles que : OpenOffice, Minecraft, Chromium, Wolfram.

Sachant que le Raspberry Pi possède des ressources bien plus limitées qu'un ordinateur de bureau traditionnel il n'est pas forcément nécéssaire de s'encombrer d'une version desktop qui installera des applications dont on aura pas forcément l'utilité. De plus ces applications peuvent aisément être installées par la suite (il en va de même pour l'interface graphique utilisateur, nous le verrons sur cette page d'ailleurs). C'est pour cela que je recommande vivement l'installation d'une version lite plutôt qu'une version avec desktop.

Cependant si votre but est de découvrir de nouvelles applications, ou d'expérimenter l'environnement linux il peut être judicieux d'installer une version desktop, mais dans le cadre d'une utilisation headless ce serait superflu.

Télécharger Raspbian Stretch

Maintenant que vous avez choisi votre distribution vous pourrez télécharger les versions les plus récentes de Raspbian en

Comme le but de cette page est d'apprendre à installer Raspbian en headless il serait bon de « s'échauffer » en commençant par télécharger votre distribution en ligne de commande.

Tout d'abord on va se placer dans notre dossier téléchargements

$ cd ~/Downloads

Ensuite on procède au téléchargement du fichier au moyen de la commande curl avec l'option « O » qui permet de récupérer le nom de fichier utilisé sur l'hôte distant, dans l'exemple ci dessous cela signifie que votre téléchargement s'appellera : 2017-11-29-raspbian-stretch-lite.zip.

$ curl -O http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2017-12-01/2017-11-29-raspbian-stretch-lite.zip

En cas de doutes sur la commande curl vous pouvez toujours consulter l'aide : « curl -h » ou le manuel « man curl ». Ici il faut bien veiller à télécharger la dernière version (toutes les informations sont présentes en suivant le lien de téléchargement donné au début de cette section, ce qui signifie qu'elles peuvent potentiellement ne plus être à jour).

Bien que télécharger ce fichier via la commande curl peut sembler exagéré , il est toujours utile de se familiariser avec cette commande qui est particulièrement puissante.

Une fois le téléchargement terminé il faudra alors le décompresser. Pour cela nous utiliserons la commande tar (qui sert à dé/compresser des fichiers) avec les options suivantes : xvf. X sert à indiquer à tar qu'il doit fonctionner en mode extraction, v active le mode verbeux (verbose) et f indique simplement l'emplacement de l'archive. Ici l'ordre des arguments est important (x doit toujours être en premier et f doit être suivi du nom de fichier).

$ tar -xvf 2017-11-29-raspbian-stretch-lite.zip

Si tout s'est déroulé comme prévu vous devriez trouver votre image de Raspbian lite au chemin suivant : ~/Downloads/2017-11-29-raspbian-stretch-lite.img

Préparer la carte SD et monter l'image dessus

Pour commencer il suffit de connecter la carte SD à l'ordinateur (que ce soit par l'intermédiaire d'un port dédié, ou par l'intermédiaire d'un lecteur externe).

Déterminer l'identifiant du système de fichiers de la carte SD

Nous allons utiliser la commande df qui affiche l'utilisation des disques en se basant sur le système de fichiers (c-à-d disques entiers, médias amovibles). Nous allons passer l'option -h, ici le h indique que les résultats retournés doivent être présentés sous une forme lisible par un humain (le h vient de humain). Vous devriez obtenir en retour quelque chose de similaire à ce qui suit :

$ df -h
Filesystem                          Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1                         465Gi  350Gi  114Gi    76% 91933614 29862480   75%   /
devfs                              186Ki  186Ki    0Bi   100%      643        0  100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%        0        0  100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%        0        0  100%   /home
/dev/disk3s1                        60Gi   38Gi   21Gi    65%   312815   175881   64%   /Volumes/SD

Ce qui se trouve au dessus se décrypte de la manière suivante :

  • le disque dur de l'ordinateur est monté comme /dev/disk1 (c'est toujours le cas), on le repère de deux manières : parce qu'il est monté à la racine du système fichier, et parce qu'il s'agi du disk1.
  • devfs, map -hosts et map auto-home sont montés par le système de fichiers mais ne nous concernent pas pour l'activité qui nous occupe présentement.
  • On remarque que /Volumes/SD apparaît comme /dev/disk3s1 (cet identifiant diffère pour chaque système c'est pourquoi il faut suivre les étapes de ce tutoriel et non juste copier les commandes données). C'est notre carte SD, que l'on peut identifier de plusieurs façons :
    • Le nom du volume, je sais que ma carte SD s'appelle SD, c'est la méthode la plus sûre.
    • En se basant sur la taille, je sais que c'est une carte de 64GB (ce qui correspond à 60Gi), cette méthode ne marche pas si vous avez plusieurs volumes ayant la même taille (peu probable).
    • Finalement on peut aussi procéder par élimination (peu recommandable).

Démonter la carte SD

L'étape suivante va être de démonter la carte SD, il ne s'agi pas là de la déconnecter. Pour ce faire on va utiliser la commande diskutil. Cette commande rempli les même fonctions que l'utilitaires de disques Apple. En effet, il s'agi du même programme sauf qu'il est ici utilisé en ligne de commande plutôt que de passer par l'interface graphique.

Toute les fonctions intéressantes de diskutil étant réservées au root il faudra alors utiliser sudo pour donner les droits, et entrer votre mot de passe de session.

On aura donc la commande suivante :

$ sudo diskutil unmount /dev/disk3s1
Password:
Volume SD on disk3s1 unmounted

Ici on a plusieurs commandes, tout d'abord : sudo (substitute user do) qui permet de faire une action en se substituant à un utilisateur (en l'occurence root, qui est inaccessible par défaut sous macOS). On fait également appel à la fonction unmount de diskutil à laquelle on passe l'argument du disque à démonter (dans cet exemple /dev/disk3s1).

Monter l'image de Raspbian sur la carte SD

Après cela il va être temps de copier notre image de Raspbian sur la carte SD. Pour cela nous allons utiliser la commande dd qui permet de « convertir et copier un fichier », elle permet entre autres de copier une image sur un volume.

Nous allons passer plusieurs options à la commande dd. Tout d'abord nous allons spécifier la taille des blocs (block size) à 1 megabyte avec l'option bs=1m. Avec l'option if=~/Downloads/2017-11-29-raspbian-stretch-lite.img nous allons spécifier le fichier d'entrée (input file). Ensuite avec l'option of=/dev/rdisk3 on va indiquer le fichier de sortie (output file). Finalement l'option conv=sync nous assure que les données transférées seront adaptées pour rentrer dans les blocs de 1 megabyte que nous avons spécifié précédemment.

Attention : vous devez utiliser l'identifiant de disque que vous avez obtenu précédemment. C'est-à-dire que si votre carte SD est sous /dev/disk2s1 il faudra utiliser /dev/rdisk2. Soyez bien attentif au numéro que vous entrez, si vous entrez celui d'un autre volume les données de celui-ci pourraient être écrasées.

Avertissement : Ce processus peut-être long (plusieurs minutes) suivant la vitesse de la carte utilisée, du disque dur, la taille de l'image (surtout si vous n'avez pas opté pour une distribution light). Patientez et ne paniquez pas !

Si l'on met tout cela ensemble on obtient le résultat suivant.

$ sudo dd bs=1m if=2017-11-29-raspbian-stretch-lite.img of=/dev/rdisk3 conv=sync
1772+0 records in
1772+0 records out
1858076672 bytes transferred in 89.172288 secs (20836929 bytes/sec)

Vous devez maintenant pouvoir voir dans le Finder une carte SD nommée boot. Dans ce cas félicitations vous avez réussi à copier l'image. Si l'on utilise la commande df -h à nouveau on devrait maintenant obtenir le résultat suivant :

$ df -h
Filesystem                          Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1                         465Gi  351Gi  113Gi    76% 92149978 29646116   76%   /
devfs                              187Ki  187Ki    0Bi   100%      647        0  100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%        0        0  100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%        0        0  100%   /home
/dev/disk3s1                        41Mi   21Mi   20Mi    51%        0        0  100%   /Volumes/boot

Vous remarquerez que la taille de la carte SD a drastiquement diminuée, c'est normal. En effet elle a maintenant pris la taille de l'image que l'on a copié dessus. Nous nous occuperons plus tard de lui rendre sa taille originelle.

Activer SSH

Avant d'éjecter la carte il nous faut encore activer SSH sur Raspbian (il s'agi d'une installation headless).

Nous allons donc utiliser la commande touch qui permet de modifier les dates de modification et d'accès d'un fichier et si le fichier spécifié n'existe pas il est alors créé. C'est cette particularité que nous allons utiliser.

$ touch /Volumes/boot/ssh

Ejecter la carte SD

C'est la dernière phase de cette étape. Il est essentiel d'éjecter correctement le périphérique pour pouvoir le débrancher sans risques. Nous allons donc utiliser la fonction eject de diskutil pour y parvenir. Soyez attentif d'utiliser le bon identifiant de disque (celui déterminé au dessus) dans la commande.

$ sudo diskutil eject /dev/rdisk3
Password:
Disk /dev/rdisk3 ejected

Une fois que le terminal vous a affiché que le disque était éjecté vous pouvez alors le retirer sans risques.

A faire

  • Proposer de le faire via la GUI. Est-ce vraiment nécessaire ? On perd l'intérêt d'apprendre à utiliser la ligne de commande... A y réfléchir ! Kevin Oulevey (discussion)
    • Si je le fais il faudra le montrer également depuis windows.

Mise en route et configuration du Raspberry Pi

Après avoir inséré la carte micro SD dans votre Raspberry Pi et connecté un cable ethernet vous pouvez le brancher au secteur. Après une petite minute il devrait avoir complètement démarré. Cela signifie qu'il devrait avoir reçu une adresse IP du routeur. Maintenant il nous faut trouver l'adresse IP du Raspberry Pi.

Obtenir l'adresse IP du Raspberry Pi

En utilisant Nmap

Nmap (abréviation de « Network Mapper ») est un utilitaire open-source qui permet notamment de découvrir les hôtes présents sur un réseau donné. C'est cette fonctionnalité que nous allons utiliser.

On pourra utiliser Nmap de deux façon soit en utilisant Zenmap, son interface graphique, soit en utilisant la ligne de commande. Dans les deux cas vous devrez entrer les mêmes paramètres. La seule différence est que parfois la ligne de commande ne résout pas les noms d'hôtes, vous vous trouvez donc juste avec une liste d'adresses IP sans avoir les noms correspondants. Ce problème ne se pose pas en utilisant Zenmap.

  • La première étape est de trouver l'adresse IP de votre machine.
    • Sous OS X : ouvrir l'utilitaire réseaux (accessible depuis spotlight en entrant son nom), il vous indiquera alors votre adresse IP dans la partie supérieure droite de la fenêtre.
    • Sous Windows : Ouvrir Panneau de configuration -> Centre réseaux et partages -> Voir les connections réseau.
  • Votre adresse IP ressemblera à 192.168.0.43, ce qui implique que les autres appareils connectés au réseau partageront les 3 premiers octets (c-à-d 192.168.0). Si vous voulez dire à Nmap de couvrir les adresses IP de 192.168.0.0 à 192.168.0.255 vous écrirez 192.168.0.0/24
  • En utilisant Zenmap ou la commande Nmap depuis le terminal entrez le code suivant et exécutez le script : nmap -sn 192.168.0.0/24
    • Ici l'option -sn dit à Nmap de ne pas scanner les ports ouverts sur les hôtes (cela prend plus de temps et ne nous intéresse absolument pas).

Vous devriez obtenir un résultat similaire :

$ nmap -sn 192.168.0.0/24

Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-16 11:39 CET
Nmap scan report for 192.168.0.6
Host is up (0.00015s latency).
MAC Address: 5C:D9:98:F9:4A:DE (D-Link)
Nmap scan report for 192.168.0.9
Host is up (0.00014s latency).
MAC Address: 40:61:86:C5:CD:67 (Micro-star Int'l)
Nmap scan report for 192.168.0.12
Host is up (0.00023s latency).
MAC Address: 00:11:32:3C:00:13 (Synology Incorporated)
Nmap scan report for 192.168.0.14
Host is up (0.072s latency).
MAC Address: 78:4F:43:8B:5A:08 (Apple)
Nmap scan report for 192.168.0.25
Host is up (0.25s latency).
MAC Address: B0:C5:54:0F:3F:1C (D-Link International)
Nmap scan report for 192.168.0.28
Host is up (0.00049s latency).
MAC Address: B8:27:EB:2D:5A:05 (Raspberry Pi Foundation)
Nmap scan report for 192.168.0.42
Host is up (0.00071s latency).
MAC Address: A0:D3:C1:EA:9F:E9 (Hewlett Packard)
Nmap scan report for 192.168.0.44
Host is up (0.00034s latency).
MAC Address: 70:4F:57:DC:38:17 (Tp-link Technologies)
Nmap scan report for 192.168.0.100
Host is up (0.0036s latency).
MAC Address: 00:30:4F:A3:07:66 (Planet Technology)
Nmap scan report for 192.168.0.254
Host is up (0.00078s latency).
MAC Address: 14:0C:76:A4:64:BC (Freebox SAS)
Nmap scan report for 192.168.0.43
Host is up.
Nmap done: 256 IP addresses (11 hosts up) scanned in 6.26 seconds

Une fois que l'on a obtenu ce qui précède il suffi de trouver l'IP correspondant au Raspberry Pi (trahi à la ligne 21 par Raspberry Pi Foundation). Dans ce cas l'IP est la suivante : 192.168.0.28 (ligne 19). A partir de cela vous pourrez dès lors vous connecter via SSH.

Depuis l'interface du routeur

Si votre routeur fonctionne en DHCP (c'est le cas à moins que vous l'ayez configuré différemment) vous pouvez depuis l'interface de gestion visualiser les périphériques connectés à votre réseau. Ici cela dépend des modèles de routeurs de votre FAI, je ne pourrais donc pas tous les décrire. Néanmoins en vous connectant à l'interface d'administration vous devriez pouvoir trouver de quoi afficher les périphériques connectés. Suivant les FAI cela peut-être très simple (chez Free par exemple) ou beaucoup moins aisé. Je vous laisse choisir la méthode vous convient le mieux.

Se connecter via SSH au Raspberry Pi

Maintenant que l'on a l'adresse IP du RPi on peut s'y connecter.

Par défaut il y a un compte pi qui est créé sur le Raspberry Pi. Le mot de passe par défaut est raspberry. On se connecte donc en adaptant la syntaxe de base suivante :

$ ssh compteutilisateurDistant@adresseIPhôteDistant
Dans notre exemple le compte est : pi
$ ssh pi@adresseIPhôteDistant

Dans notre cas il faudra entrer : ssh pi@192.168.0.28 Ce qui nous retournera un écran similaire :

$ ssh pi@192.168.0.28
The authenticity of host '192.168.0.28 (192.168.0.28)' can't be established.
ECDSA key fingerprint is SHA256:R7vksOZP/VlTME0iRRGCbTuhwsTzWL16KSyx7W5pVUg.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '192.168.0.28' (ECDSA) to the list of known hosts.
pi@192.168.0.28's password: #ici il faut entrer le mot de passe : raspberry
Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

pi@raspberrypi:~ $

Modification du mot de passe du compte pi

La première chose que l'on va faire va être de changer le mot de passe du compte pi. Pour cela on va utiliser la commande passwd. Entrez un mot de passe suffisamment complexe pour garantir la sécurité.

Etendre le système de fichier

Nous l'avions vu plus haut, il n'y a qu'une petite partie de la carte SD qui est disponible pour le système d'exploitation. Maintenant nous allons étendre le système de fichiers pour qu'il utilise l'intégralité de l'espace disponible sur la carte SD.

Pour cela nous allons exécuter raspi-config.

$ sudo raspi-config

Ensuite il faudra se rendre dans 7 Advanced options puis sélectionner l'option A1 Expand filesystem. Ensuite faites redémarrer le Raspberry Pi.

Avant de vous déconnecter pensez à mettre à jour Raspbian.

$ sudo apt-get update
$ sudo apt-get upgrade

Vous avez maintenant un Raspberry Pi fonctionnel (et à jour) accessible via SSH !

Installation d'un environnement de bureau (PIXEL)

Qu'est-ce qu'un environnement de bureau ?

Un environnement de bureau (sur Wikipedia) (en anglais desktop environment (sur Wikipedia)) est un logiciel implémentant la métaphore du bureau (en anglais) et qui permet de manipuler l'ordinateur par l'intermédiaire d'une interface graphique. Pour la vaste majorité des utilisateurs l'environnement de bureau est la voie d'accès principale à l'ordinateur.

Attention à ne pas confondre environnement de bureau et gestionnaire de fichiers. Sur macOS le Finder est un gestionnaire de fichiers (il peut d'ailleurs être remplacé) tandis qu'Aqua est l'environnement de bureau (et peut être remplacé moyennant certains efforts). Sous Windows l'explorateur de fichiers (remplaçable également) sert de gestionnaire de fichiers alors que Windows shell (en anglais) est l'environnement de bureau (il peut notamment être remplacé par ReactOS Explorer).

Pour les utilisateurs de systèmes UNIX voici quelques environnements de bureau populaires : Cinnamon, GNOME, KDE, Unity.

Pourquoi installer un environnement de bureau ?

Alors que nous avons fait une installation la plus « légère » possible on peut se poser la question de l'utilité d'installer un environnement de bureau. Si l'on veut faire une installation minimaliste de Raspbian tout en conservant une interface utilisateur graphique c'est le seul moyen. On peut dès lors se demander pourquoi avoir fait toute cette installation en ligne de commande pour finir par utiliser une interface graphique ? La réponse étant qu'une connaissance de la ligne de commande est relativement indispensable pour tout utilisateur de Raspbian. De plus c'est la façon la plus simple d'avoir une installation de Raspbian avec un environnement de bureau sans autres applications superflues (l'autre méthode consistant à partir d'une installation standard et d'en retirer toutes les applications non désirées ainsi que leurs dépendances, tâches fastidieuse et prohibant toute installation avec une carte de moins de 4Go).

Comment fonctionne un environnement graphique ?

Composition d'un environnement de bureau.
Composition d'un environnement de bureau.

Les environnements de bureau reposent sur quatre composants :

  1. Un serveur graphique qui fait le lien entre la matériel (la puce graphique) et l'affichage (l'écran).
  2. L'environnement de bureau.
  3. Un gestionnaire de fenêtres qui sert à gérer... les fenêtres.
  4. Un gestionnaire de session qui permet aux utilisateurs de se connecter et d'ouvrir une session graphique, ces sessions sont liées aux comptes utilisateurs présents sur la machine.

Dans notre cas nous allons installer l'environnement PIXEL qui est l'abréviation de Pi Improved XWindows Environment Lightweight, ce qui en français donne : environnement léger XWindows amélioré pour Pi.

Nous choisissons PIXEL car c'est l'environnement recommandé pour Raspbian (de plus il présente l'avantage de pouvoir être installé sur une machine WIndows ou macOS). Cependant d'autre environnements sont compatibles tels que GNOME, KDE, lxde et xfce. De même les composants proposé sont uniquement le fruit de mon expérience personnelle, d'autres peuvent très bien fonctionner.

Installation des composants de l'environnement graphique

Les composants que nous allons installer sont les suivants :

  1. Comme serveur graphique : Xorg
  2. Comme environnement de bureau : PIXEL
  3. Comme gestionnaire de fenêtres : Openbox
  4. Comme gestionnaire de session : Lightdm

En premier lieu il faut s'assurer que notre Raspberry Pi est à jour, nous allons donc lancer les commandes suivantes :

sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

Pour rappel apt-get update sert à mettre à jour la liste des dépôts, ce qui permet d'avoir toujours accès aux paquets les plus récents. apt-get dist-upgrade se différencie de l'upgrade simple puisqu'elle met à jour tous les paquets installés en installant des nouveaux paquets si nécessaires. Finalement reboot sert à faire redémarrer le Raspberry Pi, ce que vous devez faire après chaque mise-à-jour.

Installer le serveur graphique Xorg

L'installation de Xorg est très simple puisqu'elle se fait via apt-get au moyen de la commande suivante :

sudo apt-get install --no-install-recommends xserver-xorg

Ici vous pouvez voir qu'on a ajouté l'option : --no-install-recommends. Lorsque vous omettez cette option apt-get va faire une liste des dépendances à installer ainsi que des logiciels recommandés et installera le tout. Or cette option permet de n'installer que les dépendances, qui sont nécessaires et pas les logiciels recommandés.

Attention cependant ce n'est pas une bonne idée de faire cela pour chaque installation, car souvent les applications recommandées sont recommandées... Cependant dans notre cas le but est d'avoir une installation la plus petite possible, de plus cela ne pose pas de problèmes de compatibilité ultérieurs. A utiliser avec parcimonie donc !

Installer l'environnement de bureau PIXEL

De nouveau ici l'installation se fait par apt-get avec la commande suivante :

sudo apt-get install raspberrypi-ui-mods

Cette installation va être très longue puisque PIXEL et ses dépendances occupent plus de 430 Mo d'espace disque. Ici on n'utilise pas l'option --no-install-recommends car dans ce cas les paquets recommandés sont presque indispensables (un gestionnaire de fichiers par exemple). PIXEL installe aussi Openbox ce qui est un gain de temps. Bien entendu vous pouvez choisir de ne pas les installer et de personnaliser votre installation jusque dans les moindres détails, cependant cela est à reserver aux experts.

Installer le gestionnaire de fenêtres Openbox

Comme expliqué précédemment Openbox est installé automatiquement par PIXEL.

Cependant si vous décidez de ne pas installer PIXEL mais un autre environnement de bureau assurez vous qu'Openbox est adapté avant de procéder à l'installation de ce dernier.

sudo apt-get install openbox xinit pcmanfm lx-terminal

Avec cette commande on installe Openbox, xinit qui est nécessaire pour exécuter Openbox, pcmanfm un gestionnaire de fichiers, lx-terminal un terminal.

Installer le gestionnaire de sessions Lightdm

Nous arrivons à l'installation de notre dernier composant : le gestionnaire de sessions que l'on installe au moyen de la commande suivante :

sudo apt-get install lightdm

Attention : selon les versions de PIXEL Lightdm est une dépendance, et est donc déjà installé. Si c'est le cas apt vous retournera que le paquet à déjà été installé. Pour clore cette étape il ne vous reste plus qu'a faire redémarrer le Raspberry Pi avec, comme vous le savez déjà, la commande :

sudo reboot

Et voilà au redémarrage votre Raspbian Lite sera équipé d'un environnement de bureau.

Si votre Raspberry Pi fonctionne toujours en mode headless (c'est-à-dire sans écran ni clavier/souris directement attachés) vous pouvez quand même profiter de cette belle interface graphique fraîchement installée par l'intermédiaire d'un client VNC. Nous allons justement voir comment installer et configurer un serveur VNC sur votre Raspberry Pi.

Installation et configuration de VNC

Nous allons maintenant installer un serveur VNC. VNC c'est l'abréviation de Virtual Network Computing qui, en français, signifie informatique virtuelle en réseau cela vous permettra de prendre le contrôle à distance d'un ordinateur. Pour ceux qui ne sont pas familiers avec ce genre de logiciels cela vous permettra concrètement d'afficher sur votre écran ce qui s'affiche sur l'écran de la machine distante (comme un partage d'écran classique) en vous permettant en plus de contrôler cette machine avec votre ensemble clavier/souris. D'un point de vue technique le serveur VNC se place au niveau du serveur graphique et transfert les données d'affichage au client VNC.

Installation

L'installation du serveur VNC est très simple, en effet elle se fait depuis raspi-config.

sudo raspi-config

Ensuite vous vous rendez au 5. Interfacing options, puis P3 VNC et activez VNC.

Pendant que l'installation se fait profitez en pour installer VNC Viewer sur votre ordinateur (celui avec lequel vous voulez contrôler votre Raspberry Pi). VNC Viewer fonctionne aussi sur tablettes et smartphones. Comme la Fondation Raspberry Pi je vous conseille vivement de créer un compte RealVNC Cloud services, c'est gratuit et rapide. Cela vous permettra d'établir une connexion sécurisée simplement par le cloud (vos données ne sont pas stockées dans le nuage, ni la teneur de vos échanges) qui vous épargnera donc d'ouvrir un port sur votre routeur et d'utiliser une IP fixe.

Configuration

Une fois installé renseignez l'adresse IP de votre Raspberry Pi dans votre client VNC, il vous retournera une catchphrase que vous pouvez vérifier au moyen de la commande vncserver (à exécuter via SSH). Si les catchphrases correspondent entrez dans les champs correspondants votre nom d'utilisateur « pi » par défaut ainsi que votre mot de passe UNIX (celui que vous avez changé ici). Et voilà vous êtes connectés !

Il peut arriver qu'aucun bureau ne soit créé lors du démarrage, vous vous retrouvez alors face à un écran noir (ou VNC Viewer peut vous retourner une erreur disant que votre demande de connexion à été rejetée). Cela est du au fait qu'aucun écran n'est physiquement connecté au Raspberry Pi. Bien que cela ne devrait plus arriver avec Raspbian Stretch vous pouvez y remédier en créant un bureau virtuel au moyen de la commande vncserver-virtual à exécuter via SSH.

Effectuer une copie de sauvegarde de son installation

Maintenant que votre installation est terminée et configurée je vous suggère vivement d'en faire une copie de sauvegarde, afin de pouvoir repartir d'une base propre rapidement. Pour ce faire suivez ce tutoriel pour WIndows, OSX et Linux. Les commandes utilisées vous seront familières puisqu'on les a utilisées pour copier l'image de Raspbian sur la carte SD. Finalement si vous décidez de restaurer cette image sur une carte SD de capacité supérieure n'oubliez pas d'étendre le système de fichiers depuis raspi-config. En cas de doute relisez ça.

Qu'est-ce qu'on peut en faire ? (à développer)

Maintenant que votre Raspberry Pi est opérationnel on vous propose un certain nombre de projets à accomplir avec. N'hésitez pas à compléter cette liste !

Références