Skip to main content

El problema del aprovisionamiento

Después de construir su imagen, cada nueva placa debe personalizarse, con ajustes como el nombre de host, las claves SSH, la configuración o el registro del backend.
Hacer esto manualmente para docenas o incluso cientos de Raspberry Pi Compute Module 5 unidades (CM5) simplemente no es práctico.

Ahí es donde entra en juego rpi-sb-provisioner entra en juego un marco flexible de automatización del primer arranque para Raspberry Pi dispositivos.

Cómo funciona rpi-sb-provisioner Funciona

En el primer arranque, el sistema inicia automáticamente rpi-sb-provisionerque:

  • Lee un archivo de configuración de aprovisionamiento
  • Ejecuta scripts para aplicar la configuración del sistema
  • Escribe los datos de identidad del dispositivo (números de serie, credenciales, certificados, etc.)
  • Marca el proceso de aprovisionamiento como completo

Esto garantiza que cada dispositivo esté configurado de forma única y listo para su despliegue, sin intervención manual.

Instalación

Siga la guía oficial de instalación en: https://github.com/raspberrypi/rpi-sb-provisioner

Configuración

rpi-sb-provisioner incluye una sencilla interfaz gráfica de configuración basada en navegador.
Para abrirla, ejecute el siguiente comando en un terminal:

xdg-open http://localhost:3142

Desde aquí:

  1. Abra el menú Imágenes y cargue su archivo .img (creado con rpi-image-gen).
  2. Abra el menú Opciones para configurar los parámetros de aprovisionamiento, como la familia de dispositivos de destino o la imagen base a utilizar.
  3. La configuración resultante se almacena en /etc/rpi-sb-provisioner/config y puede tener el siguiente aspecto:
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=

Utilización

  1. Por ejemplo, cuando utilice un Raspberry Pi Compute Module 5, ajuste el puente J2 para desactivar el arranque eMMC.
  2. Conecte el CM5 al host de aprovisionamiento a través de USB. El proceso de aprovisionamiento se iniciará automáticamente.
  3. Una vez completado el aprovisionamiento, retire el puente y conecte una fuente de alimentación: el dispositivo arrancará ahora desde eMMC.

Ajuste del puente para rpi-sb-provisioner

Beneficios

  • Incorporación de dispositivos totalmente automatizada
  • Configuración coherente en todas las unidades
  • Fácil integración con sistemas de fabricación o API de backend
  • Reproducible: sin ajustes manuales ni incoherencias entre dispositivos

Ampliar el proceso

El flujo de trabajo de aprovisionamiento puede ampliarse para incluir:

  • Llamadas a la API para registrar dispositivos con servicios backend
  • Generación de certificados para el arranque seguro o el cifrado
  • Validación de hardware o pruebas funcionales antes de la activación

Con rpi-sb-provisionerel aprovisionamiento se convierte en un paso integrado en su proceso de creación y despliegue, no en una ocurrencia tardía.