Installation Raspberry Pi OS - Version serveur

Mise à jour : Raspi OS 11 - Bullseye - 32 bits

Ce document décrit l'installation en version serveur de la distribution Raspberry Pi OS à partir d'une connexion SSH et un accès wifi. L'installation s'effectue en deux étapes principales

Références :

Sommaire

1 - Préparation de la carte SD sur un PC linux

1.1 - Téléchargement de l'image

Dans l'exemple ci-dessous le téléchargement est effectué via un torrent

$ rtorrent -n -p 55718-55718 -s ./ -d ./ -o download_rate=5000,upload_rate=500,check_hash=yes \
https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-11-08/2021-10-30-raspios-bullseye-armhf-lite.zip.torrent
$ sha256sum 2021-10-30-raspios-bullseye-armhf-lite.zip 
008d7377b8c8b853a6663448a3f7688ba98e2805949127a1d9e8859ff96ee1a9 2021-10-30-raspios-bullseye-armhf-lite.zip

1.2 - Recopie de l'image sur la carte SD

$ unzip *bullseye*.zip
$ du -h *bullseye*.img
1,9G 2021-10-30-raspios-bullseye-armhf-lite.img
$ $ dd if=2021-10-30-raspios-bullseye-armhf-lite.img |pv -s 2G |sudo dd of=/dev/mmcblk0 bs=4MiB conv=fsync
$ sudo parted /dev/mmcblk0 unit GiB print free
....

Number Start End Size Type File system Flags
0,00GiB 0,00GiB 0,00GiB Free Space
1 0,00GiB 0,25GiB 0,25GiB primary fat32 lba
2 0,25GiB 1,82GiB 1,57GiB primary ext4
1,82GiB 119GiB 117GiB Free Space
$ lsblk -f /dev/mmcblk0
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
mmcblk0
├─mmcblk0p1 vfat FAT32 boot C839-E506
└─mmcblk0p2 ext4 1.0 rootfs 568caafd-bab1-46cb-921b-cd257b61f505

1.3 - Préparation connexion ssh wifi

$ sudo mount /dev/mmcblk0p1 /mnt

1.3.1 Connexion ssh

$ sudo touch /mnt/ssh

1.3.2 Connexion wifi

$ cat <<EOF |sudo tee /mnt/wpa_supplicant.conf

country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="SSID du réseau"
scan_ssid=1

k
ey_mgmt=WPA-PSK
psk="Mot de passe réseau en clair" }

EOF
$ sudo iw dev wlp0s20f3 info |grep ssid
ssid SFR-fcc8_5GHz
$ sudo umount /mnt

1.4 - Redimensionnement de la partition racine

$ sudo parted /dev/mmcblk0p2 resize 2 15GB

$ sudo e2fsck -f /dev/mmcblk0p2
$ sudo resize2fs /dev/mmcblk0p2
$ sudo partx /dev/mmcblk0p2 -o nr,end
NR END
2 29296639

$ sudo parted /dev/mmcblk0 mkpart primary ext2 29296640 100%

1.5 - Installation

1.6 - Voyants

2 - Première connexion

2.1 - Adresse du Raspberry sur le réseau

Déterminer l'adresse du raspberry sur le réseau, via l'une des trois méthodes suivantes

2.1.1 Adresse réseau du raspberry via Zéroconf

$ sudo aptitude install avahi-daemon
$ ping raspberrypi.local

2.1.2 Adresse réseau du raspberry via "la box" ethernet

$ ip route |grep default
default via 192.168.0.1 dev wlp0s20f3 proto dhcp metric 600

2.3.3 Adresse réseau du raspberry via nmap

$ nmap -n 192.168.0.1/24 -p 22 -A |grep open -B4
Nmap scan report for 192.168.0.12
Host is up (0.012s latency).

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Raspbian 5+b1 (protocol 2.0
--

Dans l'exemple ci-dessus, le raspberry a pris l'adresse 192.168.0.12

2.4 - Connexion ssh

2.4.1 Connexion avec mot de passe utilisateur raspberry

$ ssh pi@raspberrypi.local  # ou bien 

$ ssh pi@192.168.0.12 # ou bien
$ ssh -l pi 192.168.0.19
The authenticity of host '192.168.0.19 (192.168.0.19)' can't be established.
ECDSA key fingerprint is SHA256:5rOqtg9Y++MtGMTIfN+KcJ3z3xyTfW/zJplWY9t8BU8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.19' (ECDSA) to the list of known hosts.
pi@192.168.0.19's password:
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:~ $ passwd
Changing password for pi.
Current password:
New password:
Retype new password:
passwd: password updated successfully

2.4.2 Connexion sans mot de passe par clé privée / clé publique

Pour plus de détails se reporter à : SSH - Connexion par clé privée / clé publique

pi@raspberrypi:~ $ exit
logout
Connection to 192.168.0.12 closed.
$
$ ls .ssh/id*

le générer, en optant pour le choix sans utilisation de mot de passe

$ ssh-keygen -t rsa -b 2048
$ ssh-copy-id pi@raspberry.local
$ ssh pi@raspberry.local

ce qui sécurise la connexion, tout en supprimant la saisie d'un mot de passe

3 - Configuration

3.1 - Mot de passe root

$ sudo passwd root
Nouveau mot de passe :
Retapez le nouveau mot de passe :
passwd: password updated successfully

3.2 - Date, langue

Toujours depuis le PC, via SSH

$ date
Thu 12 Nov 15:50:10 GMT 2020
$ sudo raspi-config
Sélectionner 5 - Localisation Options Puis L1 locale Puis L2 Timezone
etc ...
# Ajouter le français [*] fr_FR.UTF-8 UTF-8 
$ sudo dpkg-reconfigure locales

# Définir le fuseau horaire (Europe - Paris)
$ sudo dpkg-reconfigure tzdata
$ exit
$ ssh -l pi 192.168.0.20

$ date
dimanche 15 novembre 2020, 23:50:48 (UTC+0100)

3.3 - Nom d'hôte et nom de domaine

$ hostname
raspberrypi
$ sudo raspi-config

> Sélectionner System Options > Hostname, et entrer le nom d'hôte. Redémarrer pour faire prendre en compte la modification

Le changement de nom d'hôte sera effectif au prochain redémarrage

Remplacer la ligne

127.0.1.1    <nom_hôte>

par

127.0.1.1       <nom_hôte.localhost> <nom_hôte>
$ hostname -f

3.4 - Espace disponible

$ sudo raspi-config

3.5 - Amorçage sur clé USB

Les dernières versions du firmware acceptant le démarrage sur stockage de masse USB

4 - Mises à jour

4.1 - Mise à jour des paquets

$ cat /etc/apt/sources.list.d/vscode.list
$ sudo apt update

$ sudo apt upgrade

$ sudo apt dist-upgrade
$ sudo apt install aptitude apt-file mlocate speedtest-cli sysstat lsof \
alsa-utils sound-theme-freedesktop command-not-found

$ sudo apt-file update
$ sudo update-command-not-found

4.2 - Mise à jour de l'EEPROM (firmware embarqué sur la carte Raspberry Pi)

$ sudo rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: mardi 6 juillet 2021, 10:44:53 (UTC+0000) (1625568293)
LATEST: mardi 6 juillet 2021, 10:44:53 (UTC+0000) (1625568293)
RELEASE: stable (/lib/firmware/raspberrypi/bootloader/stable)
Use raspi-config to change the release.

VL805_FW: Dedicated VL805 EEPROM
VL805: up to date
CURRENT: 000138a1
LATEST: 000138a1
$ sudo rpi-eeprom-update -a
$ sudo reboot

En cas de problème, ou pour changer le canal de mise à jour, voir : https://jamesachambers.com/raspberry-pi-4-bootloader-firmware-updating-recovery-guide/

4.3 - Mises à jour des firmwares et du noyau

$ sudo rpi-update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** Performing self-update
*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** We're running for the first time
*** Backing up files (this will take a few minutes)
*** Backing up firmware
*** Backing up modules 5.10.63-v7l+
#############################################################
WARNING: This update bumps to rpi-5.10.y linux tree
See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=288234
'rpi-update' should only be used if there is a specific
reason to do so - for example, a request by a Raspberry Pi
engineer or if you want to help the testing effort
and are comfortable with restoring if there are regressions.

DO NOT use 'rpi-update' as part of a regular update process.

##############################################################
Would you like to proceed? (y/N)
 *** Downloading specific firmware revision (this will take a few minutes)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 173 100 173 0 0 1209 0 --:--:-- --:--:-- --:--:-- 1209

100 121M 100 121M 0 0 755k 0 0:02:44 0:02:44 --:--:-- 1685k
*** Updating firmware
*** Updating kernel modules
*** depmod 5.10.78-v7l+
*** depmod 5.10.78-v8+
*** depmod 5.10.78-v7+
*** depmod 5.10.78+
*** Updating VideoCore libraries
*** Using HardFP libraries
*** Updating SDK
*** Running ldconfig
*** Storing current firmware revision
*** Deleting downloaded files
*** Syncing changes to disk
*** If no errors appeared, your firmware was successfully updated to c32e0283e64c8ade35a50de566c032803a276547
*** A reboot is needed to activate the new firmware
$ uname -r
5.10.78-v7l+
$ sudo raspi-config >>> Advanced Options >> Bootloader version >>