Onde posso encontrar o número de série do Raspberry Pi que estou usando atualmente?
Onde posso encontrar o número de série do Raspberry Pi que estou usando atualmente?
Respostas:
O número de série pode ser encontrado em /proc/cpuinfo
; por exemplo,
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
Você pode usar tubulação bash muito básica
cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
Como as guias são usadas no lado esquerdo dos dois pontos, o corte do caractere de espaço capturará apenas o número de série.
As versões anteriores dessa resposta eram cortadas no cólon, o que produzia um espaço à esquerda na variável. Esse espaço inicial não é removido durante a atribuição de variáveis, conforme sugerido anteriormente.
No Bash, é muito simples extrair ... usando Perl. Usar
cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
Por exemplo,
$ cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
000000000000000d
O Raspberry Spy fornece um exemplo muito útil de Python.
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
.
Usando grep
:
grep -Po '^Serial\s*:\s*\K[[:xdigit:]]{16}' /proc/cpuinfo
Usando o Bash puro sem usar utilitários externos:
pattern='^Serial.*([[:xdigit:]]{16})$'
while read -r line
do
if [[ $line =~ $pattern ]]
then
echo "${BASH_REMATCH[1]}"
fi
done < /proc/cpuinfo
A saída de qualquer um dos itens acima é a mesma.
-P
(Perl regex) é uma opção de versões modernas do GNU grep
.
Para qualquer pessoa interessada aqui, é uma maneira de obter o número de série da framboesa usando o NodeJS:
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
Usando awk
:
cat /proc/cpuinfo | grep Serial | awk ' {print $3}'
awk '/Serial/{print $3}' /proc/cpuinfo
O mais curto e mais simples ainda não foi fornecido como resposta. Isto, em sed:
sed -n '/^Serial/{s/.* //;p}' /proc/cpuinfo
significado:
sed -n
- execute o editor de fluxo sem imprimir todas as linhas/^Serial/
- corresponda apenas às linhas que começam com a palavra "Serial"s/.* //;
- substitua tudo até o último espaço por nada (as expressões regulares são gananciosas , aliás)p
- imprima o resultado.Às vezes, o sed recebe um nome ruim por ser difícil de usar e enigmático, mas está disponível e funciona da mesma maneira (desde que você se atenha às convenções do POSIX) em muitos tipos de Linux e Unix.
sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo
Sim. Na verdade, este é o caminho para obtê-lo.
É engraçado que meu Pi0 tenha os mesmos dados (serial) do exemplo acima. Não há diferenciador entre minha série PI0 e a publicada por Alex Chamberlain
Para PI3 você tem 4 procesores
#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