Raspberry Pi 4B에서 장치 고유 식별자인 시리얼 번호를 얻는 방법을 정리했습니다.
Python을 사용하면 ssh에서도 훨씬 깔끔하고 명확하게 처리할 수 있습니다.
라즈베리파이에서 시리얼 번호를 얻는 대표적인 방법은 /sys
, /proc
, 그리고 vcgencmd
를 활용하는 세 가지가 있습니다.
1. /sys
경로 접근 방법 (추천)
cat /sys/firmware/devicetree/base/serial-number | tr -d '\0'
- null 문자 제거 안 하면 다음과 같은 경고가 뜰 수 있습니다:
-bash: warning: command substitution: ignored null byte in input
tr -d '\0'
을 뒤에 붙이면 깔끔하게 출력됩니다.
2. /proc/cpuinfo
활용 (전통 방식)
grep Serial /proc/cpuinfo | awk -F '[: ]' '{print $3}'
또는
grep Serial /proc/cpuinfo | cut -d ' ' -f 2
- 예전부터 자주 쓰던 방식이지만, ssh 명령 전송 시 따옴표/특수문자 처리 귀찮음
- 예:
ssh pi@192.168.0.10 "grep Serial /proc/cpuinfo | awk -F '[: ]' '{print \$3}'"
3. vcgencmd
명령 사용 (OTP 영역 확인)
vcgencmd otp_dump | grep 28:
출력 예시:
28:00000000abc12345
00000000abc12345
가 시리얼 번호입니다.vcgencmd
가 없으면 아래로 설치 가능:sudo apt install libraspberrypi-bin
4. Python으로 깔끔하게 추출하기 (추천)
from pathlib import Path
def get_serial():
path = Path('/sys/firmware/devicetree/base/serial-number')
return path.read_text().replace('\x00', '').strip()
print(get_serial())
ssh에서도 한 줄로 실행 가능:
ssh pi@host "python3 -c 'from pathlib import Path; print(Path(\"/sys/firmware/devicetree/base/serial-number\").read_text().replace(\"\\x00\", \"\"))'"
사실 ssh 보다는 이 값을 가져오는 기능 구현시 함수 버전 참고하면 좋습니다. :)
🔍 요약
/sys
+ Python 조합이 요즘 기준 가장 깔끔함/proc
방식은 여전히 동작하지만, ssh 처리할 때 귀찮음vcgencmd
는 보조 수단으로 좋지만 기본 설치 안 돼 있을 수도 있음
혹시 /boot
, udevadm
, DMI
등 다른 방식으로도 추출해보신 분 있다면 댓글로 공유 부탁드립니다 😊
'IT > RaspberryPi' 카테고리의 다른 글
[raspberry pi 4B][python3] 라즈베리 파이 csi 카메라 체크하기 (0) | 2023.11.17 |
---|---|
[raspberrypi 4b] wifi 비번 설정 및 활성화 하기 (0) | 2023.09.06 |
[raspberrypi][4b] raspi-config cli 로 명령하기 (0) | 2022.09.27 |
[linux] ip 주소 @ Raspberry pi (0) | 2022.05.06 |
rp4 에서 usb 카메라 고정 포커스 지정하기 (0) | 2021.12.06 |