현재 사용중인 Raspberry Pi의 일련 번호는 어디서 찾을 수 있습니까?
현재 사용중인 Raspberry Pi의 일련 번호는 어디서 찾을 수 있습니까?
답변:
일련 번호는 /proc/cpuinfo
; 예를 들어
pi@raspberrypi:~$ cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 1000002
Serial : 000000000000000d
매우 기본적인 bash 배관을 사용할 수 있습니다
cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
탭은 콜론의 왼쪽에 사용되므로 공백 문자를 자르면 일련 번호 만 안정적으로 잡을 수 있습니다.
이 답변의 이전 버전은 변수에서 선행 공간을 생성하는 콜론을 줄였습니다. 선행 공간은 이전에 제안 된대로 변수 할당 중에 제거되지 않습니다.
Bash에서는 Perl을 사용하여 추출하는 것이 매우 간단합니다. 사용하다
cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
예를 들어
$ cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
000000000000000d
라즈베리 스파이 는 매우 유용한 파이썬 예제를 제공합니다.
def getserial():
# Extract serial from cpuinfo file
cpuserial = "0000000000000000"
try:
f = open('/proc/cpuinfo','r')
for line in f:
if line[0:6]=='Serial':
cpuserial = line[10:26]
f.close()
except:
cpuserial = "ERROR000000000"
return cpuserial
cat
.
사용 grep
:
grep -Po '^Serial\s*:\s*\K[[:xdigit:]]{16}' /proc/cpuinfo
외부 유틸리티를 사용하지 않고 순수 Bash 사용 :
pattern='^Serial.*([[:xdigit:]]{16})$'
while read -r line
do
if [[ $line =~ $pattern ]]
then
echo "${BASH_REMATCH[1]}"
fi
done < /proc/cpuinfo
위의 결과는 동일합니다.
-P
(펄 정규식) GNU의 현대 버전의 옵션입니다 grep
.
NodeJS를 사용하여 Raspberry 일련 번호를 얻는 방법은 다음과 같습니다.
function getserial(){
var fs = require('fs');
var content = fs.readFileSync('/proc/cpuinfo', 'utf8');
var cont_array = content.split("\n");
var serial_line = cont_array[cont_array.length-2];
var serial = serial_line.split(":");
return serial[1].slice(1);
}
grep -i serial /proc/cpuinfo | cut -d : -f2
예. 실제로 이것은 그것을 얻는 방법입니다.
내 Pi0에 위의 예와 동일한 데이터 (직렬)가 있다는 것은 재미 있습니다. PI0 시리얼과 Alex Chamberlain이 게시 한 시리얼 사이에는 구분 기가 없습니다.
PI3의 경우 4 명의 프로세서가 있습니다.
#cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 1
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 2
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 3
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : BCM2709
Revision : a02082
Serial : 000000003d1d1c36
가장 짧고 간단한 것은 아직 답변으로 제공되지 않았습니다. 이것은 sed에서 :
sed -n '/^Serial/{s/.* //;p}' /proc/cpuinfo
의미:
sed -n
— 모든 줄을 인쇄하지 않고 스트림 편집기를 실행/^Serial/
— 단어 "Serial"로 시작 하는 줄만 일치s/.* //;
— 마지막 공간까지 모든 것을 아무것도없는 것으로 교체하십시오 (정규식은 탐욕 스럽습니다 , btw)p
— 결과를 인쇄하십시오.sed는 때때로 사용하기 어렵고 암호로 인해 나쁜 이름을 얻지 만, 많은 유형의 Linux 및 Unix에서 사용 가능하고 POSIX 규칙을 따르는 한 동일한 방식으로 작동합니다.
sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo