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

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 256 : Ligne 256 :


== Références ==
== Références ==
* [https://www.raspberrypi.org/documentation/remote-access/ssh/ Activer SSH sur Raspbian (Site officiel de Raspbian en Anglais)]
* [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://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)]
[[Category:Tutoriels]]
[[Category:Tutoriels]]

Version du 16 mars 2018 à 18:23

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



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.

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.

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 toute 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. Entrer 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 ce fair nous allons executer raspi-config.

$ sudo raspi-config

Ensuite il faudra se rendre dans 7 Advanced options puis sélectionner l'option A1 Expand filesystem. Ensuite faite 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 Desktop Environment (PIXEL)

Les étapes pour installer un DE. Comment fonctionne un DE. Est-ce intéressant ? Ca dépasse pas le cadre de la page ?

Installation et configuration de VNC

via apt-get et ensuite on édite les fichiers de configuration. A faire seulement je décide d'implémenter un DE.

Finalement VNC s'est installé en activant l'interface VNC depuis raspi-config.

Références