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:3142Desde aquí:
- Abra el menú Imágenes y cargue su archivo .img (creado con rpi-image-gen).
- Abra el menú Opciones para configurar los parámetros de aprovisionamiento, como la familia de dispositivos de destino o la imagen base a utilizar.
- 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
- Por ejemplo, cuando utilice un Raspberry Pi Compute Module 5, ajuste el puente J2 para desactivar el arranque eMMC.
- Conecte el CM5 al host de aprovisionamiento a través de USB. El proceso de aprovisionamiento se iniciará automáticamente.
- Una vez completado el aprovisionamiento, retire el puente y conecte una fuente de alimentación: el dispositivo arrancará ahora desde eMMC.
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.
Artículos de esta serie
- Building a Production-Ready Linux for Raspberry Pi Compute Module 5
- Del sistema operativo de stock a la plataforma de producción
- Customizing Raspberry Pi OS with rpi-image-gen
- Robustez del sistema - Diseño de una disposición A/B del sistema de archivos raíz
- Aprovisionamiento - Automatización del primer arranque con rpi-sb-provisioner
- OTA and Lifecycle — Software Updates with SWUpdate
Fuentes
- 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