¿Existe la posibilidad de almacenar una identificación de hardware para cada dispositivo basado en Raspberry Pi?
Digamos que tengo 10 dispositivos personalizados basados en la plataforma Raspberry Pi que se utilizan para tareas distribuidas. En algún momento, por alguna razón, quiero borrar todo de uno de ellos. ¿Cómo puedo volver a identificar el tablero después de eso?
¿Pi tiene un chip que almacena una identificación única como un número de serie para cada placa? Si no es así, ¿puedo agregar una memoria (de solo lectura) (que puede almacenar un valor simple incluso cuando no está encendida) para poder comunicarme a través de GPIO en cualquier momento?
Cuales son las alternativas?
Respuestas:
Sí, cada placa tiene un número de serie. Los métodos para recuperar esto se describen aquí: ¿Cómo obtengo el número de serie?
fuente
Aquí hay uno más fácil de usar: dirección MAC a través de la configuración automática de IPv6 NDP. Este es un método universal que se aplica a cualquier interfaz de red.
Cada NIC, incluido el USB utilizado en el Pi, tiene una dirección MAC de 48 bits, por ejemplo
14:cf:92:20:26:3c
.Cada dirección MAC de 48 bits tiene una asignación única de uno a uno a una dirección EUI-64 enmascarando los dos últimos bits en el tercer byte (
92
a90
) e inserta los bytesfeff
entre el tercer y el cuarto byte. El antes mencionado de 48 bits MAC se puede asignar a la EUI-64:14cf:90fe:ff20:263c
.El proceso de configuración automática de la dirección IPv6 utiliza el protocolo NDP para descubrir la dirección de red de 64 bits en la dirección de 128 bits. Este proceso le dará a todos sus dispositivos dentro de la misma red el mismo prefijo de 64 bits. El mencionado EUI-64 se utiliza para completar la dirección de la estación de 64 bits, lo que da como resultado una dirección IPv6 global de 128 bits. Entonces, si tiene el prefijo de red IPv6
2001:470:d:472::/64
, la tarjeta de red mencionada anteriormente, cuando se use en esta red, tendrá una dirección IPv6 globalmente enrutable2001:470:d:472:14cf:90fe:ff20:263c
. Mientras su herramienta de administración esté configurada para usar IPv6, simplemente conecte esta dirección y debería estar lista.fuente
Como en la otra respuesta, el Pi tiene una identificación única, que está relacionada con el MAC.
En la práctica, es más conveniente que las redes tengan un carácter único
hostname
. Utilizo el siguiente script para establecer los nombres en función deCPUID
.fuente
/sys/class/net/eth0/address
cat /var/lib/dbus/machine-id
de lectura másSi no tuviera una identificación (que tiene, como parece, ver la respuesta de Ralph ), una alternativa podría ser un chip de número de serie I2C. Esos son realmente fáciles de conectar (interfaz en serie) y proporcionan un número de serie único.
Algunos ejemplos:
fuente