Raspberry-Pi-LOGO

Provisionando o Raspberry Pi Compute Module

Provisionando o Raspberry Pi-Compute-Module-PRODUCT

Provisionando o Raspberry Pi Compute Module (versões 3 e 4)
Raspberry Pi Ltda
2022-07-19: githash: 94a2802-clean

Colofão
© 2020-2022 Raspberry Pi Ltd (anteriormente Raspberry Pi (Trading) Ltd.)
Esta documentação está licenciada sob Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND). data de construção: 2022-07-19 versão de construção: githash: 94a2802-clean

Aviso legal de isenção de responsabilidade

DADOS TÉCNICOS E DE CONFIABILIDADE DOS PRODUTOS RASPBERRY PI (INCLUINDO FICHAS DE DADOS), CONFORME MODIFICADOS DE TEMPO EM TEMPO (“RECURSOS”) SÃO FORNECIDOS PELA RASPBERRY PI LTD (“RPL”) “COMO ESTÃO” E QUAISQUER GARANTIAS EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADAS TO, AS GARANTIAS IMPLÍCITAS DE COMERCIABILIDADE E ADEQUAÇÃO PARA UMA FINALIDADE ESPECÍFICA SÃO REJEITADAS. NA MÁXIMA EXTENSÃO PERMITIDA PELA LEI APLICÁVEL, EM NENHUM CASO A RPL SERÁ RESPONSÁVEL POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENTES (INCLUINDO, ENTRE OUTROS, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS , OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) DE QUALQUER CAUSA E EM QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE ESTRITA OU ILÍCITO (INCLUINDO NEGLIGÊNCIA OU DE OUTRA FORMA) DECORRENTE DE QUALQUER FORMA DO USO DOS RECURSOS, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.
A RPL reserva-se o direito de fazer quaisquer aprimoramentos, melhorias, correções ou quaisquer outras modificações nos RECURSOS ou em quaisquer produtos descritos neles a qualquer momento e sem aviso prévio. Os RECURSOS destinam-se a usuários qualificados com níveis adequados de conhecimento de design. Os usuários são os únicos responsáveis ​​por sua seleção e uso dos RECURSOS e qualquer aplicação dos produtos neles descritos. O usuário concorda em indenizar e isentar a RPL de todas as responsabilidades, custos, danos ou outras perdas decorrentes do uso dos RECURSOS. A RPL concede aos usuários permissão para usar os RECURSOS exclusivamente em conjunto com os produtos Raspberry Pi. Qualquer outro uso dos RECURSOS é proibido. Nenhuma licença é concedida a qualquer outro RPL ou outro direito de propriedade intelectual de terceiros. ATIVIDADES DE ALTO RISCO. Os produtos Raspberry Pi não são projetados, fabricados ou destinados ao uso em ambientes perigosos que exigem desempenho à prova de falhas, como na operação de instalações nucleares, navegação de aeronaves ou sistemas de comunicação, controle de tráfego aéreo, sistemas de armas ou aplicações críticas de segurança (incluindo suporte à vida sistemas e outros dispositivos médicos), em que a falha dos produtos pode levar diretamente à morte, lesões corporais ou graves danos físicos ou ambientais (“Atividades de alto risco”). A RPL se isenta especificamente de qualquer garantia expressa ou implícita de adequação para atividades de alto risco e não aceita nenhuma responsabilidade pelo uso ou inclusão de produtos Raspberry Pi em atividades de alto risco. Os produtos Raspberry Pi são fornecidos sujeitos aos Termos Padrão da RPL. O fornecimento dos RECURSOS pela RPL não expande ou de outra forma modifica os Termos Padrão da RPL, incluindo, entre outros, as isenções de responsabilidade e garantias neles expressas.

Histórico de versões do documento Provisionando-o-Raspberry-Pi-Compute-Module-FIG-1Escopo do documentomento
Este documento se aplica aos seguintes produtos Raspberry Pi:Provisionando-o-Raspberry-Pi-Compute-Module-FIG-2

Introdução

O CM Provisioner é um web aplicativo projetado para tornar a programação de um grande número de dispositivos Raspberry Pi Compute Module (CM) muito mais fácil e rápido. É simples de instalar e simples de usar. Ele fornece uma interface para um banco de dados de imagens do kernel que podem ser carregadas, juntamente com a capacidade de usar scripts para personalizar várias partes da instalação durante o processo de atualização. A impressão de etiquetas e a atualização de firmware também são suportadas. Este whitepaper pressupõe que o servidor Provisioner, versão de software 1.5 ou mais recente, está sendo executado em um Raspberry Pi.

Como tudo funciona

CM4
O sistema Provisioner precisa ser instalado em sua própria rede cabeada; o Raspberry Pi que executa o servidor é conectado a um switch, junto com todos os dispositivos CM4 que o switch pode suportar. Qualquer CM4 conectado a esta rede será detectado pelo sistema de provisionamento e atualizado automaticamente com o firmware necessário do usuário. O motivo de ter sua própria rede cabeada fica claro quando você considera que qualquer CM4 conectado à rede será provisionado, portanto, manter a rede separada de qualquer rede ativa é essencial para evitar a reprogramação não intencional de dispositivos.

Provisionando-o-Raspberry-Pi-Compute-Module-FIG-3ALTERAÇÕES DE IMAGEM Placas CM 4 IO com CM 4 -> Placas CM4 IO com CM4

Ao usar um Raspberry Pi como servidor, é possível usar rede com fio para o Provisioner, mas ainda permitir acesso a redes externas usando conectividade sem fio. Isso permite o download fácil de imagens para o servidor, pronto para o processo de provisionamento, e permite que o Raspberry Pi sirva o Provisioner web interface. Várias imagens podem ser baixadas; o Provisioner mantém um banco de dados de imagens e facilita a seleção da imagem apropriada para configurar diferentes dispositivos.
Quando um CM4 estiver conectado à rede e for ligado, ele tentará inicializar e, uma vez que outras opções tenham sido tentadas, a inicialização da rede será tentada. Neste ponto, o sistema Provisioner Dynamic Host Configuration Protocol (DHCP) responde à inicialização do CM4 e fornece uma imagem inicializável mínima que é baixada para o CM4 e, em seguida, executada como root. Esta imagem pode programar o Multi-Media Card (eMMC) incorporado e executar quaisquer scripts necessários, conforme instruído pelo Provisionador.

Mais detalhes
Os módulos CM4 são fornecidos com uma configuração de inicialização que tentará inicializar a partir do eMMC primeiro; se isso falhar porque o eMMC está vazio, ele executará uma inicialização de rede do ambiente de execução de pré-inicialização (PXE). Assim, com os módulos CM4 que ainda não foram provisionados e possuem um eMMC vazio, uma inicialização de rede será executada por padrão. Durante uma inicialização de rede em uma rede de provisionamento, uma imagem leve do sistema operacional (SO) utilitário (na verdade, um kernel do Linux e um scriptexecute initramfs) será fornecida pelo servidor de provisionamento para o módulo CM4 pela rede, e essa imagem lida com o provisionamento.

CM 3 e CM 4s

Os dispositivos CM baseados no conector SODIMM não podem ser inicializados em rede, então a programação é feita via USB. Cada dispositivo precisará ser conectado ao Provisioner. Se você precisar conectar mais de 4 dispositivos (o número de portas USB no Raspberry Pi), um hub USB pode ser usado. Use cabos USB-A para Micro-USB de boa qualidade, conectando do Raspberry Pi ou hub à porta USB slave de cada placa CMIO. Todas as placas CMIO também precisarão de uma fonte de alimentação, e o jumper de habilitação de inicialização escrava J4 USB deve ser definido para habilitar

Provisionando-o-Raspberry-Pi-Compute-Module-FIG-4IMPORTANTE
NÃO conecte a porta Ethernet do Pi 4. A conexão sem fio é usada para acessar o gerenciamento web interface.

Instalação

As instruções a seguir estavam corretas no momento da emissão. As instruções de instalação mais recentes podem ser encontradas na página Provisioner GitHub.

Instalando o Provisionador web aplicação em um Raspberry Pi
AVISO
Certifique-se de que o eth0 se conecte a um switch Ethernet que tenha apenas as placas CM4 IO conectadas. Não conecte o eth0 ao seu escritório/rede pública, ou ele pode 'provisionar' outros dispositivos Raspberry Pi em sua rede também. Use a conexão sem fio Raspberry Pi para se conectar à sua rede local.

A versão Lite do Raspberry Pi OS é recomendada como sistema operacional básico no qual instalar o Provisioner. Para simplificar, use o rpi-imager e ative o menu de configurações avançadas (Ctrl-Shift-X) para definir a senha, o nome do host e as configurações sem fio. Depois que o sistema operacional estiver instalado no Raspberry Pi, você precisará configurar o sistema Ethernet:

  1. Configure eth0 para ter um endereço IP (Internet Protocol) estático de 172.20.0.1 dentro de uma sub-rede /16 (máscara de rede 255.255.0.0) editando a configuração DHCP:
    • sudo nano /etc/dhcpcd.conf
    • Adicione ao fundo do file:
      interface eth0
      endereço IP estático=172.20.0.1/16
    • Reinicialize para permitir que as alterações entrem em vigor.
  2. Verifique se a instalação do sistema operacional está atualizada:
    sudo apt atualização
    sudo apt upgrade completo
  3. O Provisioner é fornecido como um .deb pronto file na página GitHub do Provisionador. Baixe a versão mais recente dessa página ou usando wget e instale-a usando o seguinte comando:
    sudo apt install ./cmprovision4_*_all.deb
  4. Defina o web nome de usuário e senha do aplicativo:
    sudo /var/lib/cmprovision/artisan auth:create-user

Agora você pode acessar o web interface do provedor com um web navegador usando o endereço IP sem fio do Raspberry Pi e o nome de usuário e a senha inseridos na seção anterior. Basta digitar o endereço IP na barra de endereço do seu navegador e pressionar Enter.

Uso

Quando você se conecta pela primeira vez ao Provisioner web aplicação com o seu web navegador, você verá a tela do Dashboard, que será mais ou menos assim:Provisionando-o-Raspberry-Pi-Compute-Module-FIG-5

Esta página inicial simplesmente fornece algumas informações sobre a última ação executada pelo provedor (no example acima, um único CM4 foi provisionado).

Upload de imagens

A primeira operação necessária ao configurar é carregar sua imagem no servidor, de onde ela pode ser usada para provisionar suas placas CM4. Clique no item de menu 'Imagens' na parte superior da web página e você deve obter uma tela semelhante à mostrada abaixo, mostrando uma lista de imagens atualmente carregadas (que inicialmente estarão vazias).Provisionando-o-Raspberry-Pi-Compute-Module-FIG-6

Selecione o botão Adicionar imagem para carregar uma imagem; você verá esta tela:
Provisionando-o-Raspberry-Pi-Compute-Module-FIG-7

A imagem precisa estar acessível no dispositivo onde o web navegador está em execução e em um dos formatos de imagem especificados. Selecione a imagem de sua máquina usando o padrão file caixa de diálogo e clique em 'Carregar'. Isso agora copiará a imagem de sua máquina para o servidor Provisioner em execução no Raspberry Pi. Isso pode levar um tempo. Depois que a imagem for carregada, você a verá na página Imagens.

Adicionando um projeto

Agora você precisa criar um projeto. Você pode especificar qualquer número de projetos e cada um pode ter uma imagem diferente, conjunto de scripts ou rótulo. O projeto ativo é aquele que é usado atualmente para provisionamento.
Clique no item de menu 'Projetos' para abrir a página Projetos. o seguinte example já tem um projeto, chamado 'Test project', configurado.

Provisionando-o-Raspberry-Pi-Compute-Module-FIG-8Agora clique em 'Adicionar projeto' para configurar um novo projetoProvisionando-o-Raspberry-Pi-Compute-Module-FIG-9

  • Dê ao projeto um nome apropriado e selecione qual imagem você deseja que este projeto use na lista suspensa. Você também pode definir uma série de outros parâmetros neste stage, mas muitas vezes apenas a imagem será suficiente.
  • Se você estiver usando a versão 1.5 ou mais recente do Provisioner, terá a opção de verificar se o flash foi concluído corretamente. Selecionar isso fará a leitura dos dados do dispositivo CM após o flash e confirmará se ele corresponde à imagem original. Isso adicionará tempo extra ao provisionamento de cada dispositivo, a quantidade de tempo adicionada dependerá do tamanho da imagem.
  • Se você selecionar o firmware para instalar (isso é opcional), também poderá personalizar esse firmware com algumas entradas de configuração específicas que serão mescladas no binário do carregador de inicialização. As opções disponíveis podem ser encontradas no Raspberry Pi website.
  • Clique em 'Salvar' quando tiver definido completamente seu novo projeto; você retornará à página Projetos e o novo projeto será listado. Observe que apenas um projeto pode estar ativo por vez e você pode selecioná-lo nessa lista.

Roteiros
Um recurso realmente útil do Provisioner é a capacidade de executar scripts na imagem, antes ou depois da instalação. Três scripts são instalados por padrão no Provisioner e podem ser selecionados ao criar um novo projeto. Eles estão listados na página de scripts

Provisionando-o-Raspberry-Pi-Compute-Module-FIG-10

Um exampO uso de scripts pode ser para adicionar entradas personalizadas ao config.txt. O script padrão Add dtoverlay=dwc2 to config.txt faz isso, usando o seguinte código shell:Provisionando-o-Raspberry-Pi-Compute-Module-FIG-11

Clique em 'Adicionar script' para adicionar suas próprias personalizações:Provisionando-o-Raspberry-Pi-Compute-Module-FIG-12

Etiquetas
O Provisionador tem a facilidade de imprimir etiquetas para o dispositivo que está sendo provisionado. A página Etiquetas mostra todas as etiquetas predefinidas que podem ser selecionadas durante o processo de edição do projeto. por example, você pode querer imprimir códigos DataMatrix ou de resposta rápida (QR) para cada placa provisionada, e esse recurso torna isso muito fácil.Provisionando-o-Raspberry-Pi-Compute-Module-FIG-13

Clique em 'Adicionar rótulo' para especificar o seu: Provisionando-o-Raspberry-Pi-Compute-Module-FIG-14

Firmware

O Provisioner fornece a capacidade de especificar qual versão do firmware do bootloader você deseja instalar no CM4. Na página Firmware há uma lista de todas as opções possíveis, mas a mais recente costuma ser a melhor.Provisionando-o-Raspberry-Pi-Compute-Module-FIG-15Para atualizar a lista com as versões mais recentes do gerenciador de inicialização, clique no botão 'Baixar novo firmware do github'.

Possíveis problemas

Firmware do bootloader desatualizado
Se o seu CM4 não for detectado pelo sistema Provisioner quando estiver conectado, é possível que o firmware do bootloader esteja desatualizado. Observe que todos os dispositivos CM4 fabricados a partir de fevereiro de 2021 possuem o bootloader correto instalado de fábrica, portanto, isso só acontecerá com dispositivos fabricados antes dessa data.

eMMC já programado
Se o módulo CM4 já tiver inicialização files no eMMC de uma tentativa de provisionamento anterior, ele será inicializado a partir do eMMC e a inicialização de rede necessária para o provisionamento não ocorrerá.
Se você deseja reprovisionar um módulo CM4, você precisará:

  • Conecte um cabo USB entre o servidor de provisionamento e a porta micro USB da placa CM4 IO (identificada como 'escravo USB').
  • Coloque um jumper na placa CM4 IO (J2, 'Fit jumper to disable eMMC boot').

Isso fará com que o módulo CM4 execute uma inicialização USB, caso em que o servidor de provisionamento transferirá o files do sistema operacional utilitário por USB.
Depois que o sistema operacional do utilitário for inicializado, ele entrará em contato com o servidor de provisionamento pela Ethernet para receber mais instruções e baixar files (por exemplo, a imagem do sistema operacional a ser gravada no eMMC) como de costume. Portanto, uma conexão Ethernet além do cabo USB ainda é necessária.

Spanning Tree Protocol (STP) em switches Ethernet gerenciados
A inicialização PXE não funcionará corretamente se o STP estiver habilitado em um switch Ethernet gerenciado. Isso pode ser o padrão em alguns switches (por exemplo, Cisco) e, se for o caso, precisará ser desativado para que o processo de provisionamento funcione corretamente.
Raspberry Pi é uma marca comercial da Raspberry Pi Foundation
Raspberry Pi Ltda

Documentos / Recursos

Raspberry Pi Provisionando o Raspberry Pi Compute Module [pdf] Guia do Usuário
Provisioning Raspberry Pi Compute Module, Provisioning, Raspberry Pi Compute Module, Compute Module

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *