Il problema del provisioning
Dopo aver creato la sua immagine, ogni nuova scheda deve essere personalizzata - con impostazioni come il nome dell'host, le chiavi SSH, la configurazione o la registrazione del backend.
Fare tutto ciò manualmente per decine o addirittura centinaia di Raspberry Pi Compute Module 5 (CM5) unità non è semplicemente pratico.
È qui che entra in gioco rpi-sb-provisioner un framework flessibile di automazione del primo avvio per i dispositivi. Raspberry Pi dispositivi.
Come rpi-sb-provisioner Funziona
Al primo avvio, il sistema lancia automaticamente rpi-sb-provisionerche:
- legge un file di configurazione di provisioning
- Esegue gli script per applicare le impostazioni del sistema
- scrive i dati di identità del dispositivo (numeri di serie, credenziali, certificati, ecc.)
- Contrassegna il processo di provisioning come completo
Questo assicura che ogni dispositivo sia configurato in modo univoco e pronto per la distribuzione, senza alcun intervento manuale.
Installazione
Segua la guida ufficiale all'installazione all'indirizzo: https://github.com/raspberrypi/rpi-sb-provisioner
Configurazione
rpi-sb-provisioner include una semplice GUI di configurazione basata sul browser.
Per aprirla, esegua il seguente comando in un terminale:
xdg-open http://localhost:3142Da qui:
- Apra il menu Immagini e carichi il suo file .img (creato con rpi-image-gen).
- Apra il menu Opzioni per configurare i parametri di provisioning, come la famiglia di dispositivi di destinazione o l'immagine di base da utilizzare.
- La configurazione risultante viene memorizzata in /etc/rpi-sb-provisioner/config e può apparire come segue:
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=Utilizzo
- Ad esempio, se utilizza un dispositivo ufficiale Raspberry Pi Compute Module 5impostare il ponticello J2 per disabilitare l'avvio di eMMC.
- Colleghi il CM5 all'host di provisioning via USB. Il processo di provisioning si avvierà automaticamente.
- Una volta completato il provisioning, rimuova il ponticello e colleghi un alimentatore - il dispositivo si avvierà ora da eMMC.
Benefici
- Onboarding dei dispositivi completamente automatizzato
- Configurazione coerente tra tutte le unità
- Facile integrazione con i sistemi di produzione o le API di backend
- Riproducibile - nessuna modifica manuale o incongruenza tra i dispositivi
Estendere il processo
Il flusso di lavoro del provisioning può essere esteso per includere:
- Chiamate API per registrare i dispositivi con i servizi di backend
- Generazione di certificati per l'avvio sicuro o la crittografia
- Convalida dell'hardware o test funzionali prima dell'attivazione
Con rpi-sb-provisioneril provisioning diventa una fase integrata nella sua pipeline di compilazione e distribuzione, non un ripensamento.
Articoli in questa serie
- Building a Production-Ready Linux for Raspberry Pi Compute Module 5
- Dal sistema operativo stock alla piattaforma di produzione
- Customizing Raspberry Pi OS with rpi-image-gen
- Robustezza del sistema - Progettazione di un layout del filesystem di root A/B
- Provisioning - Automatizzare il primo avvio con rpi-sb-provisioner
- OTA and Lifecycle — Software Updates with SWUpdate
Fonti
- 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