রাস্পবেরি পাই হার্ডওয়্যার আইডি


22

প্রতিটি রাস্পবেরি পাই ভিত্তিক ডিভাইসের জন্য একটি হার্ডওয়্যার আইডি সঞ্চয় করার কোনও সম্ভাবনা আছে কি?

আসুন ধরা যাক আমার কাছে রাস্পবেরি পাই প্ল্যাটফর্মের উপর ভিত্তি করে 10 টি কাস্টম ডিভাইস রয়েছে যা বিতরণকৃত কাজের জন্য ব্যবহৃত হয়। এক পর্যায়ে, কোনও কারণে আমি তাদের মধ্যে থেকে সমস্ত কিছু মুছতে চাই। এর পরে বোর্ডকে কীভাবে নতুন করে সনাক্ত করব?

পাইতে কি এমন চিপ থাকে যা প্রতিটি বোর্ডের জন্য সিরিয়াল নম্বরের মতো একটি অনন্য আইডি সঞ্চয় করে? যদি তা না হয় তবে যেকোন সময় জিপিআইওর মাধ্যমে যোগাযোগের জন্য সক্ষম হতে আমি কোনও (কেবল পঠনযোগ্য) মেমরিটি (যা চালিত না হয়েও একটি সাধারণ মান সংরক্ষণ করতে পারে) যুক্ত করতে পারি?

বিকল্পগুলি কি?


দয়া করে কোনও প্রশ্ন জিজ্ঞাসা করবেন না, তারপরে উত্তরের ভিত্তিতে সিদ্ধান্ত নিন যে আপনি সত্যই জিজ্ঞাসা করতে চেয়েছিলেন, বা অন্য কোনও প্রশ্ন রাখতে চান। আপনি যে সকল লোকের কাছে সাহায্য চাচ্ছেন তার সময় এটি নষ্ট করে। এই কারণে, আমি আপনার সম্পাদনাটি আবার ঘুরিয়েছি। আপনার যদি অন্য প্রশ্ন থাকে তবে অন্য একটি প্রশ্ন জিজ্ঞাসা করুন।
স্বর্ণলোকস

@ গোল্ডিলোকস: আপনি সঠিক বলেছেন। এই প্রশ্নটি আমার দু'ভাগে ভাগ করা উচিত ছিল।
আলেকজান্দ্রু ইরিমিয়া

'জিরো' সম্পর্কে কী? এখানে কোন ম্যাক ঠিকানা নেই ... অন্য কোনও অনন্য আইডি?
এফসিএম

উত্তর:


23

হ্যাঁ প্রতিটি বোর্ডের একটি ক্রমিক নম্বর রয়েছে। এটি পুনরুদ্ধার করার পদ্ধতিগুলি এখানে বর্ণিত হয়েছে: আমি ক্রমিক নম্বরটি কীভাবে পাব?


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

@ সাভিনিখ ... লিনাক্স এবং ম্যাক ওএস। ওওক, গ্রেপ এবং কাট উভয় ওএস এ উপলব্ধ সরঞ্জাম, তবে আমি সম্মত হচ্ছি যে উইন্ডোজটি ছেড়ে দেওয়া হয়েছে কারণ এতে এই হ্যান্ডি কমান্ড লাইনের সরঞ্জামগুলির অভাব রয়েছে।
রিপাত

9
আপনি পাইতে ম্যাক ওএস চালাতে পারবেন না, সুতরাং এটি প্রাসঙ্গিক নয়। আমার বিশ্বাসী পাইতে আপনি কেবল মাথাছাড়া Win10 IOT সংস্করণটি চালাতে পারেন। বাস্তবিকভাবে 99% পাই ব্যবহারকারী লিনাক্স ব্যবহার করছেন।
pjc50

@পিট, আপনি কি রাস্পবেরি পাইতে ম্যাক ওএস চালাতে পারবেন? আমি একরকম সন্দেহ।
অ্যান্ড্রু সাভিনিখ

6

এখানে একটি ব্যবহার করা সহজ: আইপিভি 6 এনডিপি অটো কনফিগারেশনের মাধ্যমে ম্যাক ঠিকানা। এটি একটি সর্বজনীন পদ্ধতি যা কোনও নেটওয়ার্ক ইন্টারফেসের জন্য প্রযোজ্য।

পাইতে ব্যবহৃত ইউএসবি সহ প্রতিটি এনআইসির একটি 48-বিট ম্যাক ঠিকানা রয়েছে, উদাহরণস্বরূপ 14:cf:92:20:26:3c,।

তৃতীয় বাইট ( 92টু 90) এর শেষ দুটি বিটকে মাস্কিং feffকরে তৃতীয় এবং চতুর্থ বাইটের মধ্যে বাইটগুলি সন্নিবেশ করে প্রতিটি 48-বিট ম্যাক ঠিকানার একটি EUI-64 ঠিকানার সাথে এক অনন্য ম্যাপিং থাকে । উপরোক্ত 48-বিট ম্যাক EUI -64 ম্যাপ করা যেতে পারে: 14cf:90fe:ff20:263c

IPv6 ঠিকানা অটো কনফিগারেশন প্রক্রিয়া 128-বিট ঠিকানার 64-বিট নেটওয়ার্ক ঠিকানা আবিষ্কার করতে এনডিপি প্রোটোকল ব্যবহার করে। এই প্রক্রিয়াটি একই নেটওয়ার্কের মধ্যে আপনার সমস্ত ডিভাইসকে একই 64-বিট উপসর্গটি দেবে। পূর্বোক্ত EUI-64 64-বিট স্টেশন ঠিকানাটি পপুলেট করতে ব্যবহৃত হয়, এর ফলে 128-বিট বিশ্বব্যাপী অনন্য IPv6 ঠিকানা তৈরি হয়। সুতরাং আপনার যদি আইপিভি 6 নেটওয়ার্কের উপসর্গ থাকে 2001:470:d:472::/64তবে এই নেটওয়ার্কে ব্যবহৃত হওয়ার সাথে সাথে পূর্বোক্ত নেটওয়ার্ক কার্ডটি আইপিভি 6 গ্লোবাল রাউটেবল অ্যাড্রেস পাওয়ার গ্যারান্টিযুক্ত হবে 2001:470:d:472:14cf:90fe:ff20:263c। যতক্ষণ আপনার পরিচালনা সরঞ্জামটি আইভিভি 6 ব্যবহারের জন্য কনফিগার করা থাকে ততক্ষণ কেবল এই ঠিকানাটি এতে প্লাগ করুন এবং এটি যাওয়া ভাল।


এটি আমার মতে এই প্রশ্নের উত্তর দেওয়ার সর্বোত্তম উপায়। ম্যাক অনন্য। আপনি চাইলে আপনি এটি কিছুটা হ্যাশ করতে পারেন, তবে কেবল ম্যাক ঠিকানার উপর নির্ভর করে যে কোনও প্ল্যাটফর্মে করা যেতে পারে।
হাভনার

@ হাভনার এর চেয়ে আরও ভাল, এটি ম্যাকের ঠিকানাটি সরাসরি বিশ্বব্যাপী রুটেবল আইপিভি 6 ঠিকানায় অনুবাদ করে যা পাইতে সরাসরি প্যাকেট প্রেরণের জন্য ব্যবহার করা যেতে পারে (যে কোনও অ্যাপ্লিকেশন স্তর প্রোটোকল, যতক্ষণ না এটি বেশিরভাগ আইপিভি 6-তে কাজ করে, কাজ করবে) এখানে)
ম্যাক্সথন চান

আমি এমন অনেক লোকের কথা জানি না যারা বাড়িতে বা প্রোডাক্টে আসলে আইপিভি 6 ব্যবহার করে।
হাভনার

@ হাভনার আমি আমার হোম নেটওয়ার্কে আইপিভি 6 টানেলটি এমন স্থানে স্থাপন করেছি যে রাউটার বাদে আমার বাড়ির সমস্ত ডিভাইস আইপিভি 4 সক্ষম না করে কাজ করতে পারে।
ম্যাক্সথন চ্যান

5

অন্য উত্তরের মতো পাইয়ের একটি অনন্য আইডি রয়েছে, যা ম্যাকের সাথে সম্পর্কিত।

অনুশীলনে নেটওয়ার্কিংয়ের একটি অনন্যতা থাকা আরও সুবিধাজনক hostname। নামগুলি ভিত্তিতে সেট করতে আমি নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করি CPUID

#!/bin/bash
# script to set Pi hostname based on MAC (or Serial number)
# 2017-08-18
# This script should be run as root (or with sudo) to change names
# If run by a user it will report changes, but will NOT implement them
# Works for PiB (all models), Pi2, Pi3, PiZeroW with on board networking
# PiA models will set a unique Name based on Serial number

PDIR="$(dirname "$0")"  # directory containing script
CURRENT_HOSTNAME=$(cat /etc/hostname)
# Find MAC of eth0, or if not exist wlan0
if [ -e /sys/class/net/eth0 ]; then
    MAC=$(cat /sys/class/net/eth0/address)
elif [ -e /sys/class/net/enx* ]; then
    MAC=$(cat /sys/class/net/enx*/address)
else
    MAC=$(cat /sys/class/net/wlan0/address)
fi

# NOTE the last 6 bytes of MAC and CPUID are identical
CPUID=$(awk '/Serial/ {print $3}' /proc/cpuinfo | sed 's/^0*//')
echo "Current Name" $CURRENT_HOSTNAME
echo "MAC" $MAC
# If you want to specify hostnames create a file PiNames.txt with MAC hostname list e.g.
# b8:27:eb:01:02:03 MyPi
# If not found a unique Name based on Serial number will be set
NEW_HOSTNAME=$(awk /$MAC/' {print $2}' $PDIR"/PiNames.txt")
echo "Name found" $NEW_HOSTNAME
if [ $NEW_HOSTNAME == "" ]; then
    NEW_HOSTNAME="pi"$CPUID
fi

if [ $NEW_HOSTNAME = $CURRENT_HOSTNAME ]; then
    echo "Name already set"
else
    echo "Setting Name" $NEW_HOSTNAME
    echo $NEW_HOSTNAME > /etc/hostname
    sed -i "/127.0.1.1/s/$CURRENT_HOSTNAME/$NEW_HOSTNAME/" /etc/hosts
fi

যদিও, অবশ্যই ইথারনেট সংযোগ ছাড়াই As এবং Zeros এর ব্যবহারের জন্য কোনও ম্যাক থাকবে না! একটি ওয়াইফাই অ্যাডাপ্টার হবে, তবে পিসের মধ্যে অ্যাডাপ্টারটি সরানো মানে অনন্য আইডি অ্যাডাপ্টারের অনুসরণ করবে!
স্লিএসভেন

@ স্লাইসভেনের আমার কাছে জিরো নেই (এবং এখনও কোনও কার্যকর কারণ সম্পর্কে ভাবতে পারি না), তবে মিস করা ম্যাক উপেক্ষা করার জন্য আমার স্ক্রিপ্টটি পরিবর্তন করা উচিত। আমি ধরে নিই যে নেই/sys/class/net/eth0/address
মিলিওয়েজ

কোনও পাইকে অনন্য আইডির সাথে চিহ্নিত করার আরেকটি উপায় হ'ল তার ডিবিাস মেশিন-আইডি পাওয়া যা ইন্টারফেস নির্ভর নয় cat /var/lib/dbus/machine-id আরও পড়ুন
রিপ্যাট

... উপরের আমার মন্তব্যে "আরও পড়ুন" লিঙ্কটি এর লেখকের কাছে জমা দিতে ভুলে গেছেন: লেনার্ট পয়েটারিং, সিস্টেমডের জনক।
রিপাট

2

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

কিছু উদাহরণ:

  • ম্যাক্সিমের আই²সি / এসএমবাস সিলিকন সিরিয়াল নম্বর, যেমন DS2401, DS28CM00
  • মাইক্রোচিপের অনন্য আইডি চিপ পণ্য, যেমন 24AA02UD, 24AA025UID
  • স্ব-প্রোগ্রামযুক্ত আই²সি ইপ্রোম

পাশাপাশি কেবল একটি সকেটেড আই 2 সি ইপ্রোম চিপ ব্যবহার করুন এবং এতে একটি অনন্য আইডি প্রোগ্রাম করুন। বালুঘরে কেনা গেলে এটি 24 সি 32 মোটামুটি সস্তা।
ম্যাক্সথন চ্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.