MAC 주소에 의존하지 않고 ARM 장치를 고유하게 식별하는 방법은 무엇입니까?

MAC 주소에 의존하지 않고 ARM 장치를 고유하게 식별하는 방법은 무엇입니까?

나는 많은 ARM 장치를 가지고 있습니다. 하드웨어에는 차이가 없습니다. MAC 주소를 사용하지 않고 각 장치의 고유 ID를 얻을 수 있나요? 새 커널과 rootfs로 NAND를 다시 플래시하더라도 이 ID는 동일하게 유지되어야 합니다. 하드웨어는 Atmel AT91SAM9를 기반으로 합니다.

답변1

/proc/cpuinfo에서 장치의 일련 번호를 가져옵니다.

grep Serial /proc/cpuinfo 
Serial      : 1651660a0642ebb0

(A20 기반 SoC에서 가져온 것입니다.라모보 R1Banana Pi R1 및 ArmBian/Jessie, 커널 4.5.2라고도 함)

grep Serial /proc/cpuinfo 
Serial          : 64355040058f0d000000

(내 H3 기반 Soc에서 가져온 것입니다.오렌지필 No.1Armbian/Jessie 커널 3.4 사용)

Python을 사용하여 Raspberry Pi 일련번호 얻기

일련번호 정보: 고유해야 하지만 SoC마다 다르게 읽혀집니다. 때때로 소프트웨어 또는 구성이 실패합니다.

SID 등록 안내

SID의 일부 사용 사례는 다음을 포함하지만 이에 국한되지는 않습니다.
- 장치별로 고유한 MAC 주소 생성
- RSA와 같은 키로 저장/사용
- 내부 일련 번호 쓰기

Raspberry Pi에서는 일반적으로 이 번호를 비디오 코덱 라이선스 구매 시 SN으로 사용합니다. 또한 읽기가 실패할 수도 있음을 알아 두십시오.u-boot가 올바르게 구성되지 않은 경우.

모든 ARM SoC가 이 기능을 지원하는 것은 아닙니다. 업데이트된 질문에 따르면 Atmel AT91SAM9에는 이 기능이 없는 것 같습니다. 그러나 다른 사람들이 검색할 수 있도록 이 답변을 여기에 남겨 두겠습니다.

답변2

많은 장치의 칩이 고유 ID를 제공할 수도 있습니다. 장치 보드에 eMMC 칩이 있을 수 있으며 Linux 커널에 sys 항목이 있을 수 있습니다. 경로는 다음과 같습니다.

/sys/bus/mmc/devices/mmc1:0000/serial

여러 장치를 확인하고 데이터시트를 참조하여 번호가 실제로 고유한지 확인하세요. 또한 칩 제조업체는 실수를 할 수 있습니다. 칩 제조 과정에서 우연히 동일한 고유 ID를 가진 여러 칩을 생산한 사례를 본 적이 있으므로 가능하면 두 개의 칩 일련 번호를 연결하십시오.

답변3

보다 이식 가능한 접근 방식을 찾는 독자에게는 다음 dmidecode이 유용할 수 있습니다.

pi : 12:26:23 /root# dmidecode -s system-serial-number
1000000059d267e5

관련 정보