Problema aprovizionării
După construirea imaginii, fiecare placă nouă trebuie personalizată - cu setări precum nume de gazdă, chei SSH, configurare sau înregistrare backend.
A face acest lucru manual pentru zeci sau chiar sute de Raspberry Pi Compute Module 5 (CM5) unități pur și simplu nu este practic.
Aici intervine rpi-sb-provisioner intervine - un cadru flexibil de automatizare a primului boot pentru Raspberry Pi dispozitive.
Cum funcționează rpi-sb-provisioner funcționează
La prima pornire, sistemul lansează automat rpi-sb-provisioner, care:
- Citește un fișier de configurare a provizionării
- execută scripturi pentru a aplica setările sistemului
- Scrie datele de identitate ale dispozitivului (numere de serie, acreditări, certificate etc.)
- marchează procesul de aprovizionare ca fiind finalizat
Acest lucru asigură că fiecare dispozitiv este configurat în mod unic și pregătit pentru implementare - fără intervenție manuală.
Instalare
Urmați ghidul oficial de instalare la: https://github.com/raspberrypi/rpi-sb-provisioner
Configurație
rpi-sb-provisioner include o interfață grafică simplă de configurare bazată pe browser.
Pentru a o deschide, executați următoarea comandă într-un terminal:
xdg-open http://localhost:3142De aici:
- Deschideți meniul Images și încărcați fișierul .img (creat utilizând rpi-image-gen).
- Deschideți meniul Options (Opțiuni) pentru a configura parametrii de provizionare, cum ar fi familia de dispozitive țintă sau imaginea de bază de utilizat.
- Configurația rezultată este stocată în /etc/rpi-sb-provisioner/config și poate arăta astfel:
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=Utilizare
- De exemplu, atunci când utilizați un dispozitiv oficial Raspberry Pi Compute Module 5, setați jumperul J2 pentru a dezactiva boot-ul eMMC.
- Conectați CM5 la gazda de provizionare prin USB. Procesul de provizionare va începe automat.
- Odată ce provizionarea este finalizată, scoateți jumperul și conectați o sursă de alimentare - dispozitivul va porni acum de la eMMC.
Beneficii
- Integrare complet automată a dispozitivelor
- Configurație consecventă în toate unitățile
- Integrare ușoară cu sistemele de producție sau API-urile backend
- Reproductibil - fără ajustări manuale sau neconcordanțe între dispozitive
Extinderea procesului
Fluxul de aprovizionare poate fi extins pentru a include:
- Apeluri API pentru înregistrarea dispozitivelor cu servicii backend
- Generarea de certificate pentru pornire securizată sau criptare
- Validarea hardware sau teste funcționale înainte de activare
Cu rpi-sb-provisionerprovizionarea devine o etapă integrată în conducta dvs. de construcție și implementare - nu un gând ulterior.
Articole din această serie
- Building a Production-Ready Linux for Raspberry Pi Compute Module 5
- De la sistemul de operare de stoc la platforma de producție
- Customizing Raspberry Pi OS with rpi-image-gen
- Robustețea sistemului - Proiectarea unui aranjament A/B al sistemului de fișiere rădăcină
- Aprovizionare - Automatizarea primei lansări cu rpi-sb-provisioner
- OTA and Lifecycle — Software Updates with SWUpdate
Surse
- 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