Skip to main content

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:3142

Da qui:

  1. Apra il menu Immagini e carichi il suo file .img (creato con rpi-image-gen).
  2. Apra il menu Opzioni per configurare i parametri di provisioning, come la famiglia di dispositivi di destinazione o l'immagine di base da utilizzare.
  3. 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

  1. Ad esempio, se utilizza un dispositivo ufficiale Raspberry Pi Compute Module 5impostare il ponticello J2 per disabilitare l'avvio di eMMC.
  2. Colleghi il CM5 all'host di provisioning via USB. Il processo di provisioning si avvierà automaticamente.
  3. Una volta completato il provisioning, rimuova il ponticello e colleghi un alimentatore - il dispositivo si avvierà ora da eMMC.

Impostazione del ponticello per rpi-sb-provisioner

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.