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

Raspberry Pi Compute Module 4 (CM4, 2020) — Fiche de 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é.

Objetivos

Para un despliegue industrial, la documentación oficial recomienda fijar una versión del bootloader, definir BOOT_ORDER y utilizar el Raspberry Pi Secure Boot Provisioner (rpi-sb-provisioner) junto con pi-gen para crear imágenes personalizadas. Este tutorial genera una cadena de claves, aprovisiona un CM4 para el arranque seguro (solo iniciará código firmado con sus claves) y prepara el terreno para un parque de dispositivos reproducible.

Hardware

Código completo

#!/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.

Verificación esperada

Tras el aprovisionamiento, ./rpi-sb-provisioner verify-bootloader confirma la firma; un módulo aprovisionado se niega a arrancar una imagen estándar no firmada (el LED ACT permanece apagado, sin salida alguna), lo cual demuestra que el arranque seguro está activo. Se recomienda mantener una máquina «de referencia» no aprovisionada para realizar comparaciones.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales