O problema de provisionamento
Depois de criar sua imagem, cada nova placa deve ser personalizada, com configurações como nome de host, chaves SSH, configuração ou registro de backend.
Fazer isso manualmente para dezenas ou até centenas de unidades Raspberry Pi Compute Module 5 (CM5) simplesmente não é prático.
É aí que entra o rpi-sb-provisioner é uma estrutura flexível de automação de primeira inicialização para dispositivos Raspberry Pi dispositivos.
Como o rpi-sb-provisioner Funciona
Na primeira inicialização, o sistema inicia automaticamente o rpi-sb-provisionerque:
- Lê um arquivo de configuração de provisionamento
- Executa scripts para aplicar as configurações do sistema
- Grava dados de identidade do dispositivo (números de série, credenciais, certificados, etc.)
- Marca o processo de provisionamento como concluído
Isso garante que cada dispositivo esteja configurado de forma exclusiva e pronto para ser implantado, sem intervenção manual.
Instalação
Siga o guia de instalação oficial em: https://github.com/raspberrypi/rpi-sb-provisioner
Configuração
rpi-sb-provisioner inclui uma GUI de configuração simples baseada em navegador.
Para abri-la, execute o seguinte comando em um terminal:
xdg-open http://localhost:3142A partir daqui:
- abra o menu Imagens e carregue seu arquivo .img (criado usando o rpi-image-gen).
2 Abra o menu Options (Opções) para configurar os parâmetros de provisionamento, como a família de dispositivos de destino ou a imagem de base a ser usada.
- A configuração resultante é armazenada em /etc/rpi-sb-provisioner/config e pode ter a seguinte aparência:
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=Uso
- por exemplo, quando estiver usando um computador oficial Raspberry Pi Compute Module 5oficial, defina o jumper J2 para desativar a inicialização do eMMC.
2 Conecte o CM5 ao host de provisionamento via USB. O processo de provisionamento será iniciado automaticamente.
- Quando o provisionamento estiver concluído, remova o jumper e conecte uma fonte de alimentação - o dispositivo agora inicializará a partir do eMMC.
Benefícios
- Integração de dispositivos totalmente automatizada
- Configuração consistente em todas as unidades
- Fácil integração com sistemas de fabricação ou APIs de back-end
- Reprodutível - sem ajustes manuais ou inconsistências entre dispositivos
Ampliação do processo
O fluxo de trabalho de provisionamento pode ser estendido para incluir:
- Chamadas de API para registrar dispositivos com serviços de back-end
- Geração de certificados para inicialização segura ou criptografia
- Validação de hardware ou testes funcionais antes da ativação
Com o rpi-sb-provisionero provisionamento se torna uma etapa integrada em seu pipeline de criação e implementação, e não uma reflexão tardia.
Artigos desta série
- Building a Production-Ready Linux for Raspberry Pi Compute Module 5
- Do sistema operacional de estoque à plataforma de produção
- Customizing Raspberry Pi OS with rpi-image-gen
- Robustez do sistema - Projetando um layout de sistema de arquivos raiz A/B
- Provisionamento - Automatizando a primeira inicialização com rpi-sb-provisioner
- OTA and Lifecycle — Software Updates with SWUpdate
Fontes
- 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