Le problème de l'approvisionnement
Après avoir construit votre image, chaque nouvelle carte doit être personnalisée - avec des paramètres tels que le nom d'hôte, les clés SSH, la configuration ou l'enregistrement du backend.
Faire cela manuellement pour des dizaines ou même des centaines d'unités (CM5) n'est tout simplement pas pratique. Raspberry Pi Compute Module 5 (CM5) n'est tout simplement pas pratique.
C'est là qu'intervient rpi-sb-provisioner intervient - un cadre flexible d'automatisation du premier démarrage pour les appareils Raspberry Pi appareils.
Comment rpi-sb-provisioner Fonctionne
Lors du premier démarrage, le système lance automatiquement rpi-sb-provisionerqui :
- lit un fichier de configuration du provisionnement
- exécute des scripts pour appliquer les paramètres du système
- écrit les données d'identité de l'appareil (numéros de série, informations d'identification, certificats, etc.)
- marque l'achèvement du processus d'approvisionnement
Ainsi, chaque appareil est configuré de manière unique et prêt à être déployé, sans intervention manuelle.
Installation
Suivez le guide d'installation officiel à l'adresse suivante : https://github.com/raspberrypi/rpi-sb-provisioner
Configuration
rpi-sb-provisioner comprend une interface graphique de configuration simple, basée sur un navigateur.
Pour l'ouvrir, exécutez la commande suivante dans un terminal :
xdg-open http://localhost:3142À partir d'ici : 1 :
- ouvrez le menu Images et téléchargez votre fichier .img (créé à l'aide de la commande rpi-image-gen).
- Ouvrez le menu Options pour configurer les paramètres de provisionnement, tels que la famille de périphériques cible ou l'image de base à utiliser.
- La configuration résultante est stockée dans /etc/rpi-sb-provisioner/config et peut ressembler à ceci :
CUSTOMER_KEY_FILE_PEM=
CUSTOMER_KEY_PKCS11_NAME=
GOLD_MASTER_OS_FILE=/srv/rpi-sb-provisioner/images/deb12-arm64-ix-base.img
PROVISIONING_STYLE=naked
RPI_DEVICE_BOOTLOADER_CONFIG_FILE=/srv/rpi-sb-provisioner/bootloader_config_files/bootloader-gpio17.naked
RPI_DEVICE_EEPROM_WP_SET=
RPI_DEVICE_FAMILY=5
RPI_DEVICE_FIRMWARE_FILE=/lib/firmware/raspberrypi/bootloader-2712/latest/pieeprom-2025-10-17.bin
RPI_DEVICE_LOCK_JTAG=
RPI_DEVICE_RETRIEVE_KEYPAIR=
RPI_DEVICE_STORAGE_CIPHER=aes-xts-plain64
RPI_DEVICE_STORAGE_TYPE=emmc
RPI_SB_PROVISIONER_MANUFACTURING_DB=/srv/rpi-sb-provisioner/manufacturing.db
RPI_SB_WORKDIR=Utilisation
- Par exemple, si vous utilisez un ordinateur officiel, placez le cavalier J2 pour désactiver le démarrage de l'eMMC. Raspberry Pi Compute Module 5Par exemple, lors de l'utilisation d'un CM5 officiel, réglez le cavalier J2 pour désactiver le démarrage de l'eMMC.
- Connectez le CM5 à l'hôte de provisionnement via USB. Le processus de provisionnement démarre automatiquement.
- Une fois le provisionnement terminé, retirez le cavalier et connectez une alimentation électrique - l'appareil démarrera alors à partir de l'eMMC.
Avantages
- Mise en service entièrement automatisée des appareils
- Configuration cohérente pour toutes les unités
- Intégration facile avec les systèmes de fabrication ou les API d'arrière-plan
- Reproductible - pas de réglages manuels ou d'incohérences entre les appareils
Extension du processus
Le flux de travail de l'approvisionnement peut être étendu pour inclure :
- des appels API pour enregistrer les appareils auprès de services dorsaux
- la génération de certificats pour le démarrage sécurisé ou le cryptage
- Validation du matériel ou tests fonctionnels avant l'activation
Avec rpi-sb-provisionerle provisionnement devient une étape intégrée dans votre pipeline de construction et de déploiement - et non une réflexion après coup.
Articles de cette série
- Building a Production-Ready Linux for Raspberry Pi Compute Module 5
- Du système d'exploitation de base à la plate-forme de production
- Customizing Raspberry Pi OS with rpi-image-gen
- Robustesse du système - Conception d'une disposition de système de fichiers racine A/B
- Provisionnement - Automatiser le premier démarrage avec rpi-sb-provisioner
- OTA and Lifecycle — Software Updates with SWUpdate
Sources d'information
- rpi-image-gen: https://github.com/raspberrypi/rpi-image-gen
- rpi-sb-provisioner: https://github.com/raspberrypi/rpi-sb-provisioner
- SWUpdate: https://github.com/sbabic/swupdate
- swugenerator: https://github.com/sbabic/swugenerator