Skip to main content

Das Problem der Bereitstellung

Nachdem Sie Ihr Image erstellt haben, muss jedes neue Board personalisiert werden - mit Einstellungen wie Hostname, SSH-Schlüssel, Konfiguration oder Backend-Registrierung.
Dies manuell für Dutzende oder gar Hunderte von Raspberry Pi Compute Module 5 (CM5) Einheiten ist einfach nicht praktikabel.

Und genau hier kommt rpi-sb-provisioner ins Spiel - ein flexibles First-Boot-Automatisierungs-Framework für Raspberry Pi Geräte.

Wie funktioniert rpi-sb-provisioner Funktioniert

Beim ersten Booten startet das System automatisch rpi-sb-provisioner, das:

  • Liest eine Konfigurationsdatei für die Bereitstellung
  • Skripte ausführt, um die Systemeinstellungen anzuwenden
  • Schreibt Daten zur Geräteidentität (Seriennummern, Anmeldedaten, Zertifikate usw.)
  • den Provisioning-Prozess als abgeschlossen markiert

So wird sichergestellt, dass jedes Gerät eindeutig konfiguriert und einsatzbereit ist - ohne manuelles Eingreifen.

Installation

Folgen Sie der offiziellen Installationsanleitung unter: https://github.com/raspberrypi/rpi-sb-provisioner

Konfiguration

rpi-sb-provisioner enthält eine einfache browserbasierte Konfigurations-GUI.
Um sie zu öffnen, führen Sie den folgenden Befehl in einem Terminal aus:

xdg-open http://localhost:3142

Von hier aus:

  1. öffnen Sie das Menü Bilder und laden Sie Ihre .img-Datei (erstellt mit rpi-image-gen).
  2. öffnen Sie das Menü Optionen, um die Parameter für die Bereitstellung zu konfigurieren, z.B. die Zielgerätefamilie oder das zu verwendende Basis-Image.
  3. die resultierende Konfiguration wird gespeichert in /etc/rpi-sb-provisioner/config gespeichert und kann wie folgt aussehen:
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=

Verwendung

  1. wenn Sie zum Beispiel ein offizielles Raspberry Pi Compute Module 5verwenden, setzen Sie den J2-Jumper, um den eMMC-Boot zu deaktivieren.
  2. schließen Sie den CM5 über USB an den Provisioning-Host an. Der Bereitstellungsprozess wird automatisch gestartet.
    3 Sobald die Bereitstellung abgeschlossen ist, entfernen Sie den Jumper und schließen ein Netzteil an - das Gerät bootet nun von eMMC.

Jumper-Einstellung für rpi-sb-provisioner

Vorteile

  • Vollständig automatisiertes Onboarding von Geräten
  • Konsistente Konfiguration für alle Geräte
  • Einfache Integration mit Fertigungssystemen oder Backend-APIs
  • Reproduzierbar - keine manuellen Anpassungen oder Inkonsistenzen zwischen den Geräten

Ausweitung des Prozesses

Der Bereitstellungsworkflow kann um folgende Punkte erweitert werden:

  • API-Aufrufe zur Registrierung von Geräten bei Backend-Diensten
  • Zertifikatsgenerierung für sicheres Booten oder Verschlüsselung
  • Hardware-Validierung oder Funktionstests vor der Aktivierung

Mit rpi-sb-provisionerwird die Bereitstellung zu einem integrierten Schritt in Ihrer Build- und Deployment-Pipeline - und nicht ein nachträglicher Gedanke.