Skip to main content

Проблема обеспечения

После создания образа каждая новая плата должна быть персонализирована - с такими параметрами, как имя хоста, ключи SSH, конфигурация или регистрация бэкэнда.
Делать это вручную для десятков или даже сотен Raspberry Pi Compute Module 5 (CM5) устройств просто нецелесообразно.

Именно здесь rpi-sb-provisioner приходит на помощь гибкий фреймворк автоматизации первой загрузки для Raspberry Pi устройств.

Как rpi-sb-provisioner Работает

При первой загрузке система автоматически запускает rpi-sb-provisioner, который:

  • Считывает файл конфигурации обеспечения
  • Выполняет сценарии для применения системных настроек
  • Записывает идентификационные данные устройства (серийные номера, учетные данные, сертификаты и т.д.)
  • Отмечает завершение процесса инициализации

Это гарантирует, что каждое устройство будет уникально настроено и готово к развертыванию - без ручного вмешательства.

Установка

Следуйте официальному руководству по установке на сайте: https://github.com/raspberrypi/rpi-sb-provisioner

Конфигурация

rpi-sb-provisioner включает в себя простой графический интерфейс конфигурации на основе браузера.
Чтобы открыть его, выполните следующую команду в терминале:

xdg-open http://localhost:3142

Отсюда:

  1. Откройте меню Images и загрузите Ваш файл .img (созданный с помощью rpi-image-gen).
  2. Откройте меню Options, чтобы настроить параметры инициализации, например, семейство целевых устройств или используемый базовый образ.
  3. Полученная конфигурация сохраняется в /etc/rpi-sb-provisioner/config и может выглядеть следующим образом:
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=

Использование

  1. Например, при использовании официального Raspberry Pi Compute Module 5установите перемычку J2, чтобы отключить загрузку eMMC.
  2. Подключите CM5 к узлу инициализации через USB. Процесс инициализации начнется автоматически.
  3. По завершении инициализации снимите перемычку и подключите питание - теперь устройство будет загружаться с eMMC.

Установка перемычки для rpi-sb-provisioner

Преимущества

  • Полностью автоматизированное включение устройств
  • Согласованная конфигурация для всех устройств
  • Простая интеграция с производственными системами или внутренними API
  • Воспроизводимость - никаких ручных настроек или несоответствий между устройствами

Расширение процесса

Рабочий процесс инициализации может быть расширен и включать в себя:

  • Вызовы API для регистрации устройств с внутренними службами
  • Генерация сертификата для безопасной загрузки или шифрования
  • Проверка оборудования или функциональные тесты перед активацией

С rpi-sb-provisioner, инициализация становится интегрированным шагом в конвейере сборки и развертывания, а не просто задней мыслью.