Raspbian sur la Raspberry Pi

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).

  1. Télécharger la dernière version de Raspbian
  2. Dézipper le fichier pour obtenir le fichier image (ex : 2019-09-26-raspbian-buster.img)
  3. Il est toujours préférable d’effectuer une formatage bas niveau de la carte SD
  4. Écrire (et non copier) l’image sur la carte SD :
    pc$ sudo dd bs=4M if=~/2019-09-26-raspbian-buster.img of=/dev/sde
    Attention, /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 fichier 2019-09-26-raspbian-buster.img puis Ouvrir avec Enregistreur d’image disque)
  5. Monter les partitions de la carte SD (il suffit de le retirer du PC et de la remettre).
  6. 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
  7. Insérer la carte SD dans le Raspberry Pi, brancher le câble Ethernet puis l’alimentation
  8. 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
  9. Saisir la commande suivante pour finaliser l’installation :
    pi$ sudo raspi-config
    Ce sera l’occasion :
    • 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 OptionsA1 Expand Filesystem),
    • et de donner un nom au Raspberry Pi (2 Network Options → N1 Hostname),
    • de configurer le fuseau horaire (4 Localisation OptionsI2 Change Timezone).

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 :
    pi$ uname -a
    Linux raspberrypi 3.12.26-rpi-aufs #1 PREEMPT Thu Aug 14 10:48:01 CEST 2014 armv6l GNU/Linux
    Sur cet exemple, la version du firmware est #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.

  1. Éditer le fichier sshd_config :
    pi$ sudo nano /etc/ssh/sshd_config
  2. Ajouter la ligne X11Forwarding yes à la fin
  3. Redémarrer le serveur SSH :
    pi$ sudo /etc/init.d/ssh restart
  4. Depuis un autre terminal, établir une nouvelle connexion ssh :
    $ ssh -X pi@<ip_rapsberry></ip_rapsberry>
  5. Il ne reste plus qu’à tester le bon fonctionnement de l’opération avec un éditeur de texte avancé :
    pi$ geany
    ou un éditeur de texte minimaliste basé sur GTK+
    pi$ sudo apt-get install leafpad
    pi$ leafpad
  6. Pour lancer leafpad avec sudo, il faut faire :
  7. sudo XAUTHORITY=$HOME/.Xauthority leafpad
    ou pour simplifier les chose pendant la durée de la session :
    pi$ export XAUTHORITY=$HOME/.Xauthority
    pi$ sudo leafpad

Montage NFS de répertoires du Raspberry Pi

Il est pratique de pouvoir monter un répertoire du Raspberry Pi en utilisant le protocole NFS. Pour cela il faut installer et configurer un serveur NFS sur le Raspberry Pi
  1. Installer le serveur NFS :
    pi$ sudo apt-get install nfs-kernel-server
  2. Éditer le fichier exports
    pi$ sudo nano /etc/exports
  3. Ajouter la ligne
    /home/pi *(rw,no_subtree_check,sync,no_wdelay,root_squash,all_squash,insecure_locks,anonuid=1000,anongid=1000)
    à la fin (1000 est l’uid de l’utilisateur pi obtenu en tapant pi$ id pi)
  4. 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
  5. 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>
  6. Créer le répertoire sur le PC Linux :
    pc$ sudo mkdir /media/RaspberryPi
  7. 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…

Informations et sources

Cette entrée a été publiée dans Raspberry, Système. Placez un signet sur le permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *