Problemet med provisionering
När du har byggt din image måste varje nytt kort anpassas - med inställningar som värdnamn, SSH-nycklar, konfiguration eller backend-registrering.
Att göra detta manuellt för dussintals eller till och med hundratals Raspberry Pi Compute Module 5 (CM5)-enheter är helt enkelt inte praktiskt möjligt.
Det är där rpi-sb-provisioner kommer in i bilden - ett flexibelt ramverk för automatisering av första starten för Raspberry Pi enheter.
Hur rpi-sb-provisioner fungerar
Vid den första uppstarten startar systemet automatiskt rpi-sb-provisioner, som:
- Läser en konfigurationsfil för provisionering
- Exekverar skript för att tillämpa systeminställningar
- Skriver data om enhetens identitet (serienummer, autentiseringsuppgifter, certifikat etc.)
- Markerar provisioneringsprocessen som slutförd
Detta säkerställer att varje enhet är unikt konfigurerad och redo för driftsättning - utan manuell inblandning.
Installation
Följ den officiella installationsguiden på: https://github.com/raspberrypi/rpi-sb-provisioner
Konfiguration
rpi-sb-provisioner innehåller ett enkelt webbläsarbaserat konfigurationsgränssnitt.
För att öppna det kör du följande kommando i en terminal:
xdg-open http://localhost:3142Från här:
- Öppna menyn Bilder och ladda upp din .img-fil (skapad med hjälp av rpi-image-gen).
- Öppna menyn Options för att konfigurera provisioneringsparametrar, t.ex. målenhetsfamiljen eller den basavbildning som ska användas.
- Den resulterande konfigurationen lagras i /etc/rpi-sb-provisioner/config och kan se ut så här:
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=Användning
- Om du t.ex. använder en officiell Raspberry Pi Compute Module 5ställa in bygeln J2 för att inaktivera eMMC-start.
- Anslut CM5 till provisioneringsvärden via USB. Provisioneringsprocessen startar automatiskt.
- När provisioneringen är klar tar du bort bygeln och ansluter strömförsörjningen - enheten startar nu från eMMC.
Fördelar
- Helt automatiserad onboarding av enheter
- Konsekvent konfiguration för alla enheter
- Enkel integrering med tillverkningssystem eller backend-API:er
- Reproducerbar - inga manuella justeringar eller inkonsekvenser mellan enheter
Förlängning av processen
Arbetsflödet för provisionering kan utökas till att omfatta:
- API-anrop för att registrera enheter med backendtjänster
- Generering av certifikat för säker uppstart eller kryptering
- Validering av hårdvara eller funktionstester före aktivering
Med rpi-sb-provisionerblir provisionering ett integrerat steg i din bygg- och driftsättningspipeline - inte en eftertanke.
Artiklar i denna serie
- Building a Production-Ready Linux for Raspberry Pi Compute Module 5
- Från lager-OS till produktionsplattform
- Customizing Raspberry Pi OS with rpi-image-gen
- Systemrobusthet - Utformning av en A/B-rotfilsystemlayout
- Provisionering - Automatisera första uppstarten med rpi-sb-provisioner
- OTA and Lifecycle — Software Updates with SWUpdate
Källor
- 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