मैं वर्तमान में उपयोग किए जा रहे रास्पबेरी पाई के सीरियल नंबर को कहां से पा सकता हूं?
मैं वर्तमान में उपयोग किए जा रहे रास्पबेरी पाई के सीरियल नंबर को कहां से पा सकता हूं?
जवाबों:
क्रम संख्या में पाया जा सकता है /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
आप बहुत ही बेसिक बैश पाइपिंग का उपयोग कर सकते हैं
cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
चूंकि बृहदान्त्र के बाईं ओर टैब का उपयोग किया जाता है, इसलिए अंतरिक्ष चरित्र पर कटाई मज़बूती से केवल सीरियल नंबर को पकड़ेगी।
इस उत्तर के पूर्व संस्करणों ने बृहदान्त्र पर कटौती की, जिसने चर में एक अग्रणी स्थान का उत्पादन किया। वैसा प्रमुख स्थान वैरिएबल असाइनमेंट के दौरान हटाया नहीं गया है जैसा कि पहले सुझाया गया था।
बैश में, पर्ल का उपयोग करके इसे निकालना बहुत सरल है ... उपयोग
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
किसी भी बाहरी उपयोगिताओं का उपयोग किए बिना शुद्ध बैश का उपयोग करना:
pattern='^Serial.*([[:xdigit:]]{16})$'
while read -r line
do
if [[ $line =~ $pattern ]]
then
echo "${BASH_REMATCH[1]}"
fi
done < /proc/cpuinfo
दोनों में से कोई एक ही है।
-P
(पर्ल regex) जीएनयू के आधुनिक संस्करणों के एक विकल्प है grep
।
यहां रुचि रखने वाले किसी व्यक्ति के लिए 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
हाँ। वास्तव में इसे पाने का तरीका।
यह हास्यास्पद है कि मेरे Pi0 में उपरोक्त उदाहरण के समान डेटा (धारावाहिक) है। मेरे PI0 सीरियल और एलेक्स चेम्बरलेन द्वारा पोस्ट किए गए के बीच कोई अंतर नहीं है
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 -n '/^Serial/{s/.* //;p}' /proc/cpuinfo
अर्थ:
sed -n
- हर लाइन को प्रिंट किए बिना स्ट्रीम एडिटर को चलाएं/^Serial/
- केवल उन पंक्तियों से मेल करें जो "सीरियल" शब्द से शुरू होती हैंs/.* //;
- कुछ भी नहीं के साथ अंतिम स्थान तक सब कुछ बदलें (sedge regexes लालची , btw हैं)p
- रिजल्ट प्रिंट कर लें।sed कभी-कभी उपयोग करने में मुश्किल और क्रिप्टोकरंसी के लिए एक बुरा नाम हो जाता है, लेकिन यह उपलब्ध है और कई तरह के लिनक्स और यूनिक्स पर (जब तक आप POSIX सम्मेलनों से चिपके रहते हैं) उसी तरह से काम करता है।
sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo