Kullanmakta olduğum Raspberry Pi'nin seri numarasını nereden bulabilirim?
Kullanmakta olduğum Raspberry Pi'nin seri numarasını nereden bulabilirim?
Yanıtlar:
Seri numarası şurada bulunabilir /proc/cpuinfo
; Örneğin,
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
Çok basit bash borularını kullanabilirsiniz
cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
Sekmeler kolonun sol tarafında kullanıldığından, boşluk karakterinin kesilmesi yalnızca seri numarasını güvenilir bir şekilde yakalar.
Bu cevabın önceki sürümlerinde, değişkende öncü bir boşluk oluşturan iki nokta üst üste kesilir. Bu öncü alan, daha önce önerildiği gibi değişken ataması sırasında kaldırılmaz.
Bash'de Perl'i kullanarak çıkarmak çok kolaydır. kullanım
cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
Örneğin,
$ cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
000000000000000d
Ahududu Spy çok kullanışlı bir Python örneği sağlar.
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
.
Kullanarak grep
:
grep -Po '^Serial\s*:\s*\K[[:xdigit:]]{16}' /proc/cpuinfo
Herhangi bir harici yardımcı program kullanmadan saf Bash kullanımı:
pattern='^Serial.*([[:xdigit:]]{16})$'
while read -r line
do
if [[ $line =~ $pattern ]]
then
echo "${BASH_REMATCH[1]}"
fi
done < /proc/cpuinfo
Yukarıdakilerden herhangi birinin çıktısı aynıdır.
-P
(Perl regex) GNU modern versiyonları bir seçenektir grep
.
Burada ilgilenen herkes için NodeJS kullanarak Ahududu Seri Numarası almanın bir yoludur:
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
Evet. Gerçekten de bunu elde etmenin yolu.
Benim Pi0 benim yukarıdaki örnek ile aynı veri (seri) olması komik. PI0 dizim ile Alex Chamberlain tarafından yayınlanan arasında hiçbir fark yok
PI3 için 4 proces var
#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
En kısa ve en basit henüz bir cevap olarak sağlanmamıştır. Bu, sed içinde:
sed -n '/^Serial/{s/.* //;p}' /proc/cpuinfo
anlamı:
sed -n
- Her satırı yazdırmadan akış editörünü çalıştır/^Serial/
- sadece “Seri” kelimesiyle başlayan satırları eşleştirins/.* //;
- son boşluğa kadar hiçbir şeyin olmadığı her şeyi değiştir (sed regexes açgözlü , btw)p
- sonucu yazdırın.sed bazen kullanımı zor ve şifreli olduğu için kötü bir ad alır, ancak birçok Linux ve Unix türünde kullanılabilir ve aynı şekilde çalışır (POSIX sözleşmelerine sadık kaldığınız sürece).
sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo