Objectif
L’objectif de ce billet est de présenter l’installation de la distribution classique Raspbian sur un Raspberry Pi sans clavier ni écran avec connexion directe en ssh
. Ce billet couvre plusieurs aspect :
- Préparation du Raspberry Pi
- Mise-à-jour de Raspbian et du firmware du Raspberry Pi
- Application graphique via connexion ssh
- Montage NFS de répertoires du Raspberry Pi
- Améliorer l’historique du shell
- Mises à jour automatiques grâce à cron-apt
Préparation du Raspberry Pi
Pour commencer, il faut se procurer un Raspberry Pi, un boîtier adapté, des dissipateurs thermiques, une alimentation +5V/2A micro-USB et enfin une carte mémoire micro SD très rapide (c’est important pour obtenir un système réactif).
- Télécharger la dernière version de Raspbian
- Dézipper le fichier pour obtenir le fichier image (ex :
2019-09-26-raspbian-buster.img
) - Il est toujours préférable d’effectuer une formatage bas niveau de la carte SD
- Écrire (et non copier) l’image sur la carte SD :
Attention,
pc$ sudo dd bs=4M if=~/2019-09-26-raspbian-buster.img of=/dev/sde
/dev/sde
doit bien correspondre au point de montage de la carte SD devant accueillir l’image Raspbian (Sous Ubuntu, on peut faire un clique droit sur le fichier2019-09-26-raspbian-buster.img
puis Ouvrir avec Enregistreur d’image disque) - Monter les partitions de la carte SD (il suffit de le retirer du PC et de la remettre).
- Depuis l’attaque qui visait les objets connectés en novembre 2016, la Fondation Raspberry Pi a décidé de ne plus activer les connexions SSH par défaut, mais a mis en place une solution simple et rapide pour activer le SSH : Il suffit de créer un fichier nommé
ssh
dans la partition boot - Insérer la carte SD dans le Raspberry Pi, brancher le câble Ethernet puis l’alimentation
- Il est maintenant possible de se connecter en ssh pour parachever l’installation (Utilisateur par défaut :
pi
; Mot de passe :raspberry
) :pc$ ssh pi@192.168.x.xxx
- Saisir la commande suivante pour finaliser l’installation :
Ce sera l’occasion :
pi$ sudo raspi-config
- de changer le mot de passe (
1 Change User Password
), - d’étaler l’image pour utiliser la totalité de l’espace disponible sur la carte SD (
7 Advanced Options
→A1 Expand Filesystem
), - et de donner un nom au Raspberry Pi (
2 Network Options
→N1 Hostname
), - de configurer le fuseau horaire (
4 Localisation Options
→I2 Change Timezone
).
- de changer le mot de passe (
Mise-à-jour de Raspbian et du firmware du Raspberry Pi
- Mise à jour de tous les paquets installés (à faire régulièrement) :
pi$ sudo apt-get update pi$ sudo apt-get upgrade pi$ sudo reboot
- Mise à jour de la distribution :
pi$ sudo apt-get update pi$ sudo apt-get dist-upgrade pi$ sudo reboot
- Afficher la version du firmware :
Sur cet exemple, la version du firmware est
pi$ uname -a Linux raspberrypi 3.12.26-rpi-aufs #1 PREEMPT Thu Aug 14 10:48:01 CEST 2014 armv6l GNU/Linux
#1
. - Mise à jour du firmware :
pi$ sudo apt-get install rpi-update pi$ sudo rpi-update pi$ sudo reboot
Application graphique via connexion ssh
Il est possible de lancer une application graphique via une connexion ssh (X11 Forwarding for GUI Application over SSH). Pour cela, il faut paramétrer le serveur SSH comme suit.
- Éditer le fichier
sshd_config
:pi$ sudo nano /etc/ssh/sshd_config
- Ajouter la ligne
X11Forwarding yes
à la fin - Redémarrer le serveur SSH :
pi$ sudo /etc/init.d/ssh restart
- Depuis un autre terminal, établir une nouvelle connexion ssh :
$ ssh -X pi@<ip_rapsberry></ip_rapsberry>
- Il ne reste plus qu’à tester le bon fonctionnement de l’opération avec un éditeur de texte avancé :
ou un éditeur de texte minimaliste basé sur GTK+
pi$ geany
pi$ sudo apt-get install leafpad pi$ leafpad
- Pour lancer
leafpad
avecsudo
, il faut faire :
sudo XAUTHORITY=$HOME/.Xauthority leafpad |
pi$ export XAUTHORITY=$HOME/.Xauthority pi$ sudo leafpad |
Montage NFS de répertoires du Raspberry Pi
- Installer le serveur NFS :
pi$ sudo apt-get install nfs-kernel-server
- Éditer le fichier
exports
pi$ sudo nano /etc/exports
- Ajouter la ligne
à la fin (
/home/pi *(rw,no_subtree_check,sync,no_wdelay,root_squash,all_squash,insecure_locks,anonuid=1000,anongid=1000)
1000
est l’uid de l’utilisateur pi obtenu en tapantpi$ id pi
) - Il faut encore lancer les services adéquats :
pi$ sudo update-rc.d rpcbind enable pi$ sudo service rpcbind restart pi$ sudo service nfs-kernel-server restart
-
Pour accéder depuis le PC Linux via NFS au répertoire
/home/pi
du Raspberry Pi, en le montant dans le répertoire/media/RaspeberryPi
, il faut ajouter à votre fichier/etc/fstab
la ligne suivante :<ip_raspberry>:/home/pi /media/RaspberryPi nfs user,auto,exec 0 0</ip_raspberry>
-
Créer le répertoire sur le PC Linux :
pc$ sudo mkdir /media/RaspberryPi
-
Monter le répertoire :
pc$ sudo mount /media/RaspberryPi
Améliorer l’historique du shell
Pour que la flêche vers le haut ne fasse défiler que les commandes de votre historique qui commencent par les premières lettres saisie dans l’invite de commande :
$ sudo nano .inputrc |
Ajouter les lignes suivantes :
"\e[A": history-search-backward "\e[B": history-search-forward set show-all-if-ambiguous on set completion-ignore-case on |
Redémarrage et extinction
- Redémarrage :
$ sudo reboot
- Extinction :
$ sudo shutdown -h now
Mises à jour automatiques grâce à cron-apt
Installer cron-apt
:
$ sudo apt-get install cron-apt |
Cette section n’est pas achevée…