আমি কীভাবে সিরিয়াল নম্বর পাব?


69

আমি বর্তমানে যে রাস্পবেরি পাই ব্যবহার করছি তার ক্রমিক নম্বরটি কোথায় পাওয়া যাবে?


2
সিরিয়াল নম্বরটি কি ডিভাইসে প্রিন্ট করা হয়েছে বা এটি কেবল সফটওয়্যার দ্বারা উপলব্ধ? আমি দেখতে পাচ্ছি ডিভাইসে একটি স্টিকার রয়েছে তবে আমি মনে করি না এটি সিরিয়াল নম্বরটির সাথে সম্পর্কিত। ডিভাইসটি চালিত করে এবং এটি সংযুক্ত না করেই আইডিটি জেনে রাখা ভাল।
স্কুপ করুন

3
@ অ্যালেক্সিস্ক এটি কেবল সফ্টওয়্যারেই উপলব্ধ।
অ্যালেক্স চেম্বারলাইন

2
ঠিক আছে, স্টিকার এবং সিরিয়াল নম্বরটির সাথে কোনও সম্পর্ক নেই বলে মনে হচ্ছে। আমি অনেকগুলি পাই এর স্টিকার পড়েছি এবং এটি ডিকোড করার চেষ্টা করেছি। যদিও রাস্পবেরিতে সম্ভবত উভয়কেই সংযুক্ত করার জন্য অভ্যন্তরীণ তালিকা রয়েছে, মনে হচ্ছে না এটি থেকে সিরিয়াল বা ম্যাক গণনা করার কোনও উপায় আছে।
ইডিপি

উত্তর:


78

ক্রমিক নম্বর পাওয়া যাবে /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

তথ্যসূত্র

  1. লাইসেন্স কী পণ্য পৃষ্ঠা
  2. রাস্পবেরি স্পাই: পাইথন ব্যবহার করে আপনার রাস্পবেরি পাই সিরিয়াল নম্বর প্রাপ্ত

6
পার্ল ফাইল নামগুলি আর্গুমেন্ট হিসাবে গ্রহণ করবে। এটি ব্যবহার করার প্রয়োজন নেই cat
ডেনিস উইলিয়ামসন

3
আমার ক্রমিক নম্বরটির শেষ 6 টি সংখ্যা আমার ম্যাক ঠিকানার শেষ 6 ডিজিটের সমান। এটা কি আপনার পক্ষে সত্য?
স্কুপ করুন

6
<পুনর্নির্দেশটিও কাজ করে, সুতরাং এটি বিড়ালের অকেজো ব্যবহার।
এক্সটিএল

3
শারীরিকভাবে এই তথ্য পাওয়ার কোনও উপায় আছে কি? আমি বোর্ডে বোঝাতে চাইছি, সুতরাং এই তথ্য পেতে আমাকে প্রতিটি পাই বুট করতে হবে না।
জিজ্জার

3
এটা কি অনন্য? কিছুটা ছোট মনে হচ্ছে ... আমার সিরিয়ালে কেবল 4 বাইট ব্যবহৃত হয়েছে, সমস্ত
ফ্ল্যাশ থান্ডার

11

ব্যাশ / Grep

ব্যবহার 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

উপরের যে কোনওটির আউটপুট একই।


এই কেবলমাত্র আমার জন্যই কাজ করেছেন
সিডব্লুডে ২ '

এটি কাজ করে না: 'পি' একটি অবৈধ বিকল্প। PcpAudioCore মধ্যে অন্তত
theking2

1
@ থিংকিং ২: আমি ভয় করি যে আমি পিসিপি অডিওকোরের সাথে অপরিচিত। -P(পার্ল Regex) গনুহ আধুনিক সংস্করণ একটি বিকল্পের grep
ডেনিস উইলিয়ামসন

7

ব্যাশ / awk

যেহেতু এটি কোনও ধরণের "আপনি কতটা উপায়ে সিরিয়াল পেতে পারেন" এ রূপান্তরিত সংস্করণটি

  awk '/ ^ সিরিয়াল \ গুলি *: \ গুলি / {প্রিন্ট $ 3}' / প্রোক / সিপুইনফো

6

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);

}

যে কারণেই হোক না কেন, কন্টেন্ট_আরয়ে.লেন্থ -২ সর্বদা আমার পক্ষে কাজ করে না। কখনও কখনও এটি আমাকে "রাস্পবেরি পাই 4 মডেল বি রেভ 1.1" দেয় যা "সিরিয়াল" লাইনের ঠিক পরে "মডেল" লাইন। সুতরাং নিশ্চিত করার জন্য আমি আপনার ফাংশনটিকে এটি (পরবর্তী মন্তব্য দেখুন) এ পরিবর্তন করেছি।
পাঁচডোগিট

ফাংশন getserial () f var fs = প্রয়োজনীয় ('fs'); var সামগ্রী = fs.readFileSync ('/ proc / cpuinfo', 'utf8'); var cont_array = কন্টেন্ট.স্প্লিট ("\ n"); var x = 0; var সিরিয়াল_লাইন = ""; যখন (x <cont_array.length) {সিরিয়াল_লাইন = কনট_আরে [এক্স]; যদি (সিরিয়াল_লাইন.স্টার্টস উইথ ("সিরিয়াল")) {সিরিয়াল_লাইন.স্প্লিট (":") [1] .স্লাইস (1); } x ++; }}
পাঁচডোগিট

4
grep -i serial /proc/cpuinfo | cut -d : -f2

1
প্রোগ্রামিং গল্ফকে ওয়েব সাইটে উত্সাহ দেওয়া হয় না, কারণ প্রাথমিকভাবে আপনার উত্তরটি অনুসরণ করা খুব কঠিন, বিশেষত যদি আপনি কোনও ব্যাখ্যা বা বিস্তারিত মন্তব্য না লিখে থাকেন।
লেনিক

1
আমি এই উত্তরটিকে "প্রোগ্রামিং গল্ফ" বলার বিরোধিতা করব, "বাশ / অ্যাওক" এর মতো আরও ক্রিপ্টিকের সাথে তুলনা করে। প্রকৃতপক্ষে, আমি এই উত্তরটি সাম্যের জন্য উত্থাপন করার উদ্দেশ্যেছিলাম, তবে এটি আমার পিআইতে চালানোর পরে এবং অন্যান্য সংস্করণের সাথে তুলনা করার পরে, এটি করবে না কারণ স্বীকার করতে হবে, এই উত্তরটি অতিরিক্ত নেতৃস্থানীয় স্থান সন্নিবেশ করে সুনির্দিষ্ট আউটপুট দিচ্ছে না। পিএস: আমি যদিও এটি বিয়োগ করব না
ভ্যান জোন

4

ব্যবহার awk:

cat /proc/cpuinfo | grep Serial | awk ' {print $3}'

6
এটি ইউইউসির একটি দুর্দান্ত উদাহরণ । সহজভাবে লেখা যেতে পারেawk '/Serial/{print $3}' /proc/cpuinfo

1

হ্যাঁ. আসলে এটি এটি পেতে।

এটা মজার বিষয় যে আমার পাই 0 এর উপরের উদাহরণের মতো একই ডেটা (সিরিয়াল) রয়েছে। আমার পিআই 0 সিরিয়াল এবং অ্যালেক্স চেম্বারলাইনের পোস্ট করা একটির মধ্যে কোনও ডিফ্রেনটিয়েটর নেই

পিআই 3 এর জন্য আপনি 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

1

উত্তর হিসাবে এখনও সবচেয়ে সংক্ষিপ্ততম এবং সহজতম সরবরাহ করা হয়নি। এটি, সেড ইন:

sed -n '/^Serial/{s/.* //;p}' /proc/cpuinfo

অর্থ:

  • sed -n - প্রতিটি লাইন মুদ্রণ না করে স্ট্রিম সম্পাদক চালান run
  • /^Serial/- "সিরিয়াল" শব্দের সাথে শুরু হওয়া কেবল রেখাগুলি মেলে
  • s/.* //;- শেষ স্থান পর্যন্ত কিছুই না দিয়ে সবকিছু প্রতিস্থাপন করুন (সেড রেজেক্সগুলি লোভী , বিটিডাব্লু )
  • p - ফলাফল মুদ্রণ।

সেড কখনও কখনও কঠোরভাবে ব্যবহার এবং ক্রিপ্টিক হওয়ার জন্য একটি খারাপ নাম পেয়ে যায় তবে এটি উপলব্ধ এবং লিনাক্স এবং ইউনিক্সের অনেক ধরণের ক্ষেত্রে একইভাবে কাজ করে (যতক্ষণ আপনি পসিক্স কনভেনশনগুলিতে অটল থাকেন) works


1
নেতৃস্থানীয় শূন্যগুলি এমনকি অপসারণ করার জন্য আমার ওয়ান-লাইনার:sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo
থোমাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.