Utilisation de l'image Debian stable (ou testing ou oldstable) pour Raspberry arm64 pour le codage et la gestion des bus d'interfaces physiques sur les bus GPIO, SPI, i2C.

Par : @Gérard Vidal dans
Le : révisé le :
Tags : #RaspberryPi3-64bit, #nano-ordinateur, #codage, #debian, #trixie,
Linkedin Mail

Résumé :

Utilisation de l'image debian trixie (stable) ou debian forky (testing) pour Raspberry Pi avec un processeur arm64 (Pi3 4 5). Cette image est directement utilisable pour apprendre ou enseigner le codage avec les outils SNAP!BYOB (analogue à scratch) et jupyter pour aborder python C et javascript. L'image rpi-devDeb-trixie64_2026-09-30 https://media.tremplin.ens-lyon.fr/isoImages/RaspBerry) est construite à partir de la source debian standard https://raspi.debian.net/ et l'image rpi-devPiOs-trixie64_2026-09-30 https://media.tremplin.ens-lyon.fr/isoImages/RaspBerry de la source PiOS standard (https://www.raspberrypi.com/.


Motivations

Le but de cet article est de décrire la prise en main d'une RaspberryPi préparée par le projet Tremplin des Sciences. La procédure concerne :

  • soit un système d'exploitation Debian "orthodoxe" (analogue à celui qui est installé sur un ordinateur ordinaire) et qui fonctionne sur une Raspberry Pi ARM-64.

  • soit un système d'exploitation Debian PiOS qui contient des modifications nécessaires à l'usage des overlays.

La motivation principale est de disposer d'une RaspberryPi directement utilisable avec une préconfiguration et des choix correspondant au dispositif Tremplin des sciences. L'image est augmentée de nombreux logiciels nécessaires pour piloter le GPIO de la RaspberryPi, apprendre à coder en python ou C++ à l'aide d'une interface web jupyterou jupyterlab.


Remerciements

Éric le Jan et Charles-Henri Eyraud.


Téléchargements



Lors du développement du projet "Météo et Climat tremplin pour l'enseignement des sciences et dès que l'utilisation d'objets connectés (RaspberryPi, Odroïd, Intel edison, Intel joule) a été entérinée, des images ont été construites au coup par coup pour soutenir les fonctions attribuées à chacun des objets connectés. Cet article présente la prise en main des images "Développement" du dispositif Tremplin des Sciences. Pour réaliser cette opération il est nécessaire de disposer : * d'un ordinateur * d'un réseau soit filaire soit WIFI dont on connait le nom et le mot de passe * d'une carte micro-SD vierge de bonne qualité supportant le maximum possible d'écritures

L'utilisateur privilégié initial s'appelle localadm mais les outils de construction sont conservés dans le bureau de l'utilisateur privilégié tremplin. Il est recommandé laisser ce dernier en l'état pour éventuellement permettre un intervention de secours en ligne. Une clef publique ssh a été fournie à l'utilisateur tremplin, il est recommandé dès la première connexion de supprimer l'autorisation par mot de passe et de préferer les authentifications via des clés ssh pour éviter l'utilisation de mots de passe (un mot de passe de secours est toutefois prévu dans la configuration).

1. Téléchargement de l'image et création de la micro-SD

Le site de dépôt des images fournit pour chaque image : * un fichier ISO * un fichier bmap qui permet des lectures/écritures plus rapides avec l'outil bmaptool * un fichier de hash sha256sum pour vérifier l'intégrité du téléchargement

1.1. copie du fichier ISO sur l'espace de stockage de l'ordinateur hôte

1.2. Copie de l'image sur une carte micro-SD

La copie doit être faite via un protocole binaire sur une micro SD vide et non formattée, toute donnée sur la carte micro-SD sera irrémédiablement détruite. L'utilisation de l'outil bmaptool permet de réduire les temps de copie.

2. Première connexion

L'image est préconfigurée pour pouvoir être utilisée sans écran ni clavier ni souris ni connexion filaire. Il est possible d'interagir en ligne de commande ou en mode graphique via un serveur de terminaux utilisant le protocole xrdp pour afficher l'écran de la raspberry dans un autre ordinateur. On dispose ainsi des outils graphiques standards d'un environnement linux. Le gestionnaire d'affichage est sddm et le gestionnaire de fenêtres lxqt choisis pour leur faible empreinte en mémoire car les raspberriesPi en ont peu, l'utilisation de cet environnement est assez intuitive.

La première connexion est cruciale car il est impossible de créer une image qui permette de s'insérer dans toute infrastructure (notamment sans fil), cependant les configurations nécessaires sont réduites au minimum. L'utilisation des lignes de commandes peut paraître archaïque mais c'est en réalité un moyen d'interagir le plus simplement et avec le moins d'opérations possibles.

2.1. Connexion automatique au réseau de la RaspberryPi

Afin de permettre à coup sûr la connexion de la RaspberryPi, elle propose son propre point d'accès : * nom : raspi-Wifi * mot de passe : rpiTremplin2026 * adresses fournies : 192.168.12.2 -> 192.168.12.254 * adresse de la RaspberryPi : 192.168.12.2

les informations nécessaires au fonctionnement du point d'accès sont réunies dans 3 fichiers de configuration qu'il est possible de modifier au besoin ou en fin de manipulation (bien respecter les consignes car une erreur peut entraîner l'interruption du réseau et imposer l'utilisation d'un clavier et d'un écran): * /etc/systemd/network/46-wlan1server.network * /etc/udhcpd.conf * /etc/hostapd/hostapd.conf

Sur un ordinateur disposant d'une connection WIFI se connecter au réseau raspi-Wifi avec le mot de passe rpiTremplin2026. La machine utilisée quitte le réseau sur lequel elle se trouvait pour de positionner sur le même réseau que la RaspberryPi, son adresse devient de la forme 192.168.12.***

2.2. Connexion à la RaspberryPi

Depuis un terminal se connecter en ssh ssh localadm@192.168.12.2 mot de passe AChanger1$, aller dans le dossier netplan cd /etc/netplan:

ls -al
drwxr-xr-x   2 root root  4096 13 oct.  13:42 .
drwxr-xr-x 146 root root 12288 13 oct.  12:11 ..
-rw-------   1 root root   296 16 sept. 09:18 50-eth0.yaml
-rw-------   1 root root   378 16 sept. 09:19 60-wlan0-modele.suspended
-rw-------   1 root root   299 16 sept. 09:20 70-allenx.yaml
-rw-------   1 root root   296 16 sept. 09:21 80-end0.yaml

Les fichiers commençant par 50, 70, 80 concernent le réseau filaire et les différentes options possibles de nommage de cette interface. Copier 60-wlan0-modele.suspended en 60-wlan0-MyIdentifier.yaml :

network:
    version: 2
    renderer: networkd
    wifis:
        wlan0:
            accept-ra: true
            access-points:
                "Name 1st WIFI network":
                    password: "Password 1st WIFI network"
                "Name 2nd WIFI network":
                    password: "Password 2nd WIFI network"
            dhcp4: true
            dhcp6: true

Remplacer Name and Password les valeurs de votre réseau (sur l'exemple ci-dessus deux réseaux sont disponibles).

Pour une sécurité complète nous allons tester la configuraton du réseau avec la séquence de commandes ci-dessous qui seront enchaînées si tout va bien et qui signaleront toute anomalie en cas de problème :

sudo netplan generate
sudo netplan try
sudo netplan apply

3. Vérification du réseau

Rebooter la RaspberryPi sudo reboot puis se reconnecter au réseau 192.168.11.0/24 récupérer les informations réseau avec la commande ip a Si les deux réseaux wlan0 et wlan1 sont "UP" on peut passer à l'étape suivante de nettoyage pour retrouver les performances maximales du WIFI.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether ##:##:##:##:##:## brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether ##:##:##:##:##:## brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.54/24 metric 600 brd 192.168.10.255 scope global dynamic wlan0
       valid_lft 81840sec preferred_lft 81840sec
    inet6 fe80::dea6:32ff:fedf:ad12/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether ##:##:##:##:##:## brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.2/24 brd 192.168.12.255 scope global wlan1
       valid_lft forever preferred_lft forever
    inet 192.168.12.1/24 brd 192.168.12.255 scope global secondary wlan1
       valid_lft forever preferred_lft forever
    inet6 fe80::dca6:32ff:fe7f:ad12/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever

4. Suppression du reseau 192.168.12.0/24

Comme précisé dans l'introduction la configuration du rseau local de la RaspberryPi dépend de 3 fichiers de configuration qui conditionnent l'exécution de services. Pour permettre de remettre en route ce WIFI local nous n'allons pas toucher 2 fichiers de configuration et simplement suspendre les services qui seront réactivés en cas de besoin. Le 3ème service est le réseau qui ne doit pas être interrompu et pour éviter les erreurs que causerait une tentative de redémarrage de l'interface virtuelle, le fichier de configuration de cete interface va être renommé. Toutes les commandes ci-dessous se font avec l'utilisateur localadm.

4.1. Supension de hostapd

Pour interrompre le service au démarrage utiliser la commande : sudo systemctl disable hostapd

4.2. Suspension de udhcpd

Pour interrompre le service au démarrage utiliser la commande : sudo systemctl disable udhcpd

4.3. Inactivation du point d'accès

  1. interrompre le service au démarrage avec la commande : sudo systemctl disable wireless-apdevice
  2. renommer le fichier /etc/systemd/network/46-wlan1server.networkavec la commande sudo mv/etc/systemd/network/46-wlan1server.network /etc/systemd/network/46-wlan1server.suspended`

Redémarrer avec sudo reboot et l'interface virtuelle wlan1 aura disparu.

Comments !