Existe a possibilidade de armazenar um ID de hardware para cada dispositivo baseado em Raspberry Pi?
Digamos que eu tenha 10 dispositivos personalizados baseados na plataforma Raspberry Pi usados para tarefas distribuídas. Em algum momento, por algum motivo, quero apagar tudo de um deles. Como posso identificar novamente o quadro depois disso?
O Pi possui um chip que armazena um ID exclusivo, como um número de série, para cada placa? Caso contrário, posso adicionar uma memória (somente leitura) (que pode armazenar um valor simples, mesmo quando não estiver ligado), para poder me comunicar com ela através do GPIO a qualquer momento?
Quais são as alternativas?
Respostas:
Sim, cada placa possui um número de série. Os métodos para recuperar isso são descritos aqui: Como obtenho o número de série?
fonte
A seguir, é mais fácil usar um: Endereço MAC via configuração automática NDP IPv6. Este é um método universal aplicável a qualquer interface de rede.
Cada placa de rede, incluindo a USB usada no Pi, tem um endereço MAC de 48 bits, por exemplo
14:cf:92:20:26:3c
.Cada endereço MAC de 48 bits possui um mapeamento um para um exclusivo para um endereço EUI-64, mascarando os dois últimos bits no terceiro byte (
92
para90
) e inserindo os bytesfeff
entre o terceiro e o quarto byte. A descrição acima de 48 bits MAC pode ser mapeado para o EUI-64:14cf:90fe:ff20:263c
.O processo de configuração automática de endereço IPv6 usa o protocolo NDP para descobrir o endereço de rede de 64 bits no endereço de 128 bits. Esse processo concederá a todos os seus dispositivos na mesma rede o mesmo prefixo de 64 bits. O EUI-64 mencionado acima é usado para preencher o endereço da estação de 64 bits, resultando em um endereço IPv6 globalmente exclusivo de 128 bits. Portanto, se você tiver o prefixo de rede IPv6
2001:470:d:472::/64
, a placa de rede mencionada acima, quando usada nesta rede, terá um endereço IPv6 roteável globalmente2001:470:d:472:14cf:90fe:ff20:263c
. Desde que sua ferramenta de gerenciamento esteja configurada para usar o IPv6, basta conectar esse endereço a ele e deve ser bom.fonte
Como na outra resposta, o Pi tem um ID exclusivo, relacionado ao MAC.
Na prática, é mais conveniente que a rede tenha um único
hostname
. Eu uso o seguinte script para definir os nomes com baseCPUID
.fonte
/sys/class/net/eth0/address
cat /var/lib/dbus/machine-id
leitura maisSe não tivesse um ID (que, como parece, veja a resposta de Ralph ), uma alternativa poderia ser um chip de número de série I2C. Eles são realmente fáceis de conectar (interface serial) e fornecem um número de série exclusivo.
Alguns exemplos:
fonte