🛠 Provisionner une flotte de CM4 : secure boot et images personnalisées

Raspberry Pi Compute Module 4 (CM4, 2020) — Fiche carte · avance · Schéma : IMG-compute-module-4-avance-2-boot-secure-flotte-cm4.svg — chaîne de production simplifiée : un PC hôte lance rpi-sb-provisioner vers un CM4 en mode rpiboot ; à côté, pi-gen fabrique une image custom ; des clés (root public key) sont dessinées en coffret sécurisé.

Objectifs

Pour un déploiement industriel, la docs officielle recommande d'épingler une release du bootloader, de définir BOOT_ORDER, et de passer par le Raspberry Pi Secure Boot Provisioner (rpi-sb-provisioner) + pi-gen pour des images personnalisées. Ce tuto génère une chaîne de clés, provisionne un CM4 en secure boot (il ne démarrera plus que du code signé par vos clés) et prépare le terrain d'un parc reproductible.

Matériel

Code complet

#!/usr/bin/env bash
# sb-provision-cm4.sh — secure boot d'un CM4 (flux officiel rpi-sb-provisioner).
set -euo pipefail
git clone https://github.com/raspberrypi/rpi-sb-provisioner && cd rpi-sb-provisioner
make

# 1) Générer l'arbre de clés (root + signing) — À SAUVEGARDER HORS LIGNE
./rpi-sb-provisioner generate-keys

# 2) CM4 en mode rpiboot (J2 posé) : écrire les clés publiques dans l'OTP du module
./rpi-sb-provisioner write-public-keys

# 3) Écrire un bootloader signé dans l'EEPROM (bootloader épinglé = bonne pratique)
./rpi-sb-provisioner write-bootloader

# 4) Les images destinées à la flotte doivent désormais être signées avec vos clés
#    (pi-gen + rpi-sb-provisioner sign-image), puis écrites sur eMMC via rpiboot.

Vérification attendue

Après provisioning, ./rpi-sb-provisioner verify-bootloader confirme la signature ; un module provisionné refuse de démarrer une image standard non signée (LED ACT reste éteinte, aucun output) — c'est la preuve que le secure boot agit. Garder une machine « de référence » non provisionnée pour comparer.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels