Table des matières
Installation OS
Création carte SD
rpi imager
Ubuntu
sudo snap install rpi-imager
Windows
Installer à partir de https://downloads.raspberrypi.org/imager/imager_latest.exe
Manuellement
Utilisation de la dernière version de Raspbian Lite. A partir d'une machine linux on copy l'image sur la carte SD :
dd if=2019-09-26-raspbian-buster-lite.img of=/dev/mmcblk0 bs=4M status=progress
Installation sur SSD
Boot USB
Vérification
Pour vérifier que le raspberry PI accepte de démarrer sur l'USB lancer la commande suivante :
vcgencmd otp_dump | grep 17
On doit trouver la valeur 3020000a
Si ce n'est pas le cas procéder à l'activation sinon passer directement à l'installation sur le périphérique USB.
Activation
- Reprogrammer l’OTP en ajoutant program_usb_boot_mode=1 à la fin du fichier /boot/config.txt sur sur Raspberry PI OS ou /boot/firmware/config.txt sur Ubuntu.
- Redémarrer le Raspberry PI.
- Vérifier de nouveau le registre 17.
Installation de l'OS
Procéder de la même façon avec rpi-imager sur le SSD au lieu d'une carte SD
Configuration
Editer le fichier cmdline.txt pour y ajouter dev=/dev/sda1 avant rootwait :
console=serial0,115200 console=tty1 root=PARTUUID=904a3764-02 rootfstype=ext4 elevator=deadline fsck.repair=yes dev=/dev/sda1 rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
Configuration de Raspberry Pi OS
Première connexion
Activation ssh
Pour activer le ssh au premier démarrage créer un fichier ssh à la racine de la partition boot
touch ssh
Configuration Wifi initiale
Pour configurer le Wifi sur un Raspberry PI Zero sans écran/clavier créer un fichier wpa_supplicant.conf sur la partition boot contenant les informations suivantes :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev country=FR update_config=1 network={ ssid="<SSID du réseau Wifi>" psk="<Mot de passe du réseau Wifi>" }
Adresse IP
Si l'on n'a pas d'écran de relié, utiliser la commande nmap pour trouver l'adresse IP du raspberry (en adaptant à son réseau et à la condition d'avoir un serveur DHCP).
nmap -sP 192.168.0.0/24
Configuration
Lancer la commande :
sudo raspi-config
- Configurer le hostname
- Configurer les variables régionales en fr_FR.UTF8-8
- Définir le timezone à Europe/Paris
- Définir le clavier Français
- Activer SSH (si pas déjà fait)
- Activer les interfaces nécessaires (caméra, 1-wire pour capteur DS18B20, …)
- Etendre le file system pour utiliser toute la carte SD
- Configurer le partage mémoire entre le CPU et le GPU
Configuration vi
Créer le fichier ~/.vimrc avec par exemple la ligne
syn on
En l'absence de ce fichier le copier/coller à la souris fonctionne mal (nécessite d'utiliser la touche ⇧ Shift).
Changement utilisateur principal
Par sécurité il est bon de changer le mot de passe par défaut mais mieux encore le compte par défaut.
Ajout d'un nouvel utilisateur et affectation au groupe sudo pour avoir les droits administrateur :
sudo adduser administrateur sudo adduser administrateur sudo
Se connecter avec le nouvel utilisateur et supprimer le compte par défaut :
sudo deluser --remove-all-files pi
Mise à jour et installation packages supplémentaires
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade sudo apt-get install rsync vim
Configuration adresse IP fixe
/etc/dhcpcd.conf
Editer le fichier pour mettre à jour les lignes suivantes avec le nom de l'interface et la configuration souhaitée :
interface eth0 static ip_address=192.168.0.10/24 static ip6_address=fd51:42f8:caae:d92e::ff/64 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
Prise en compte
Redémarrer le Raspberry PI ou bien juste le service par la commande :
sudo systemctl restart networking.service
Préservation de la carte SD
Fichiers temporaires
Ajouter les 2 lignes suivantes à la fin du fichier /etc/fstab pour mise en mémoire des fichiers temporaires.
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
Fichiers de log
tmpfs avec perte
Il est également possible de mettre le répertoire /var/log sur une partition en mémoire avec l'inconvénient de perdre les log à chaque redémarrage. De plus des applications comme apache risque de ne pas redémarrer si le répertoire /var/log/apache2 n'existe pas au démarrage. Pour palier ce dernier point plusieurs solutions possibles.
- créer un fichier /etc/tmpfiles.d/apache2.conf afin de créer le répertoire automatiquement au démarrage
#Type Path Mode UID GID Age Argument d /var/log/apache2 0750 root adm - -
- créer le répertoire au démarrage du service en modifiant le fichier /lib/systemd/system/apache2
[Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target Documentation=https://httpd.apache.org/docs/2.4/ [Service] Type=forking Environment=APACHE_STARTED_BY_SYSTEMD=true # début modification PermissionsStartOnly=true ExecStartPre=-/bin/mkdir /var/log/apache2 ExecStartPre=-/bin/chmod 750 /var/log/apache2 ExecStartPre=-/bin/chown root:adm /var/log/apache2 # fin modification ExecStart=/usr/sbin/apachectl start ExecStop=/usr/sbin/apachectl graceful-stop ExecReload=/usr/sbin/apachectl graceful KillMode=mixed PrivateTmp=true Restart=on-abort [Install] WantedBy=multi-user.target
Le paramètre PermissionsStartOnly indique que les commandes ExecStartPre doivent être exécutées en tant que root.
log2ram
L'utilisation de log2ram permet de mettre les fichiers de log en mémoire avec sauvegarde régulière sur la carte SD.
sudo apt-get install git git clone https://github.com/azlux/log2ram.git cd log2ram chmod +x install.sh sudo ./install.sh reboot
Après le redémarrage vérifier la bonne prise en compte par la commande :
df -h
Vérifier la présence des 3 lignes suivantes :
tmpfs 30M 0 30M 0% /var/tmp tmpfs 100M 0 100M 0% /tmp log2ram 40M 1,1M 39M 3% /var/log
log2ram garde la mémoire synchronisée avec le répertoire /var/hdd.log
Swap
Activation/désactivation
sudo dphys-swapfile swapon sudo dphys-swapfile swapoff
