এই নির্দেশিকাটি OpenThread Border Router (OTBR)-এর মৌলিক বিল্ড এবং কনফিগারেশন কভার করে। এই প্রক্রিয়াটি সম্পন্ন করার পরে, আপনার কাছে একটি OTBR থাকবে যা একটি RCP ডিজাইনে একটি ফুল থ্রেড ডিভাইস (FTD) হিসাবে কাজ করে।
প্ল্যাটফর্ম কনফিগার করুন
একটি সমর্থিত হার্ডওয়্যার প্ল্যাটফর্ম কনফিগার করুন:
RCP তৈরি করুন এবং ফ্ল্যাশ করুন
OTBR একটি RCP ডিজাইনে চলে। RCP হিসাবে ব্যবহার করার জন্য একটি সমর্থিত OpenThread প্ল্যাটফর্ম নির্বাচন করুন এবং সেই প্ল্যাটফর্মের জন্য বিল্ডিং এবং ফ্ল্যাশিং নির্দেশাবলী অনুসরণ করুন।
OpenThread নির্মাণের একটি সংক্ষিপ্ত বিবরণের জন্য, বিল্ডিং গাইড দেখুন।
GNU Autotools-এর সাহায্যে সমর্থিত প্ল্যাটফর্ম তৈরির বিষয়ে নির্দিষ্ট নির্দেশাবলী প্রতিটি উদাহরণের প্ল্যাটফর্ম ফোল্ডারে পাওয়া যাবে।
OTBR ইনস্টল করুন
OTBR স্পিনেলের মাধ্যমে RCP এর সাথে যোগাযোগ করে। কনফিগার করা হার্ডওয়্যার প্ল্যাটফর্মে OTBR ইনস্টল করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন৷
OTBR সংগ্রহস্থল ক্লোন করুন:
git clone https://github.com/openthread/ot-br-posix
নির্ভরতা ইনস্টল করুন
ডিফল্ট কনফিগারেশন বেশিরভাগ প্ল্যাটফর্মের জন্য BORDER_ROUTING
সক্ষম করে৷ OTBR ডিফল্ট পতাকার একটি সম্পূর্ণ তালিকার জন্য, GitHub-এ প্ল্যাটফর্মের উদাহরণগুলি পড়ুন। আপনার প্ল্যাটফর্ম নির্বাচন করুন, তারপর default
ক্লিক করুন, যদি উপলব্ধ থাকে।
ডিফল্ট ব্যবহার:
cd ot-br-posix
./script/bootstrap
নেটওয়ার্ক ম্যানেজার সহ বিগলবোন কালো (ঐচ্ছিক):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
OTBR কম্পাইল এবং ইনস্টল করুন
ডিফল্ট ব্যবহার. সেটআপ স্ক্রিপ্ট ডিফল্টরূপে বর্ডার রাউটিং সক্ষম করে। বর্ডার রাউটিং সক্ষম করতে, আপনার প্ল্যাটফর্মের ইথারনেট বা ওয়াই-ফাই ইন্টারফেস নির্দিষ্ট করুন:
ইথারনেট ব্যবহার করুন:
INFRA_IF_NAME=eth0 ./script/setup
Wi-Fi ব্যবহার করুন:
INFRA_IF_NAME=wlan0 ./script/setup
বিগলবোন কালো । নেটওয়ার্ক ম্যানেজার ব্যবহার করুন (ঐচ্ছিক):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
RCP ডিভাইস সংযুক্ত এবং কনফিগার করুন
ফ্ল্যাশ করা RCP ডিভাইসটিকে USB এর মাধ্যমে বর্ডার রাউটার প্ল্যাটফর্মে সংযুক্ত করুন।
otbr-agent
এ RCP ডিভাইসের সিরিয়াল পোর্ট কনফিগার করতে, প্রথমে /dev
চেক করে RCP ডিভাইসের সিরিয়াল পোর্টের নাম নির্ধারণ করুন:
ls /dev/tty*
এরপরে, আপনার otbr-agent
সেটিংস চেক করুন।
cd /etc/default
cat otbr-agent
otbr-agent
কনফিগারেশন ফাইলে আপনার থ্রেড ইন্টারফেসের নাম, ইথারনেট বা Wi-Fi ইন্টারফেসের নাম এবং RCP সিরিয়াল পোর্টের নাম রয়েছে।
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
সমস্ত ডিভাইস একই সিরিয়াল পোর্ট নামের সাথে সংযুক্ত হয় না। সবচেয়ে সাধারণ পোর্টের নাম হল ttyACM*
এবং ttyUSB*
। প্রত্যাশিত সিরিয়াল পোর্টের নাম নির্ধারণ করতে আপনার ডিভাইসের ডকুমেন্টেশন পড়ুন।
প্রয়োজন হলে, otbr-agent
কনফিগারেশন ফাইল আপডেট করুন। উদাহরণস্বরূপ, একটি Wi-Fi ইন্টারফেস এবং ttyUSB0
এর একটি সিরিয়াল পোর্ট নামের জন্য:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
একটি ইথারনেট ইন্টারফেস আপডেট করতে:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
বর্ডার রাউটারকে পাওয়ার সাইকেল করুন। বিগলবোন ব্ল্যাক প্ল্যাটফর্ম ব্যবহার করলে, এটি করার সময় বুট বোতামটি ধরে রাখতে ভুলবেন না।
OTBR পরিষেবা বুট করা উচিত।
পরিষেবাগুলি যাচাই করুন
সমস্ত প্রয়োজনীয় পরিষেবাগুলি সক্ষম করা হয়েছে তা যাচাই করুন:
sudo systemctl status
setup
স্ক্রিপ্ট সফল হলে, নিম্নলিখিত পরিষেবাগুলি আউটপুটে উপস্থিত হয়:
-
mdns.service
-
otbr-agent.service
-
otbr-web.service
যেমন:
● raspberrypi State: running Jobs: 0 queued Failed: 0 units Since: Thu 1970-01-01 00:00:01 UTC; 47 years 7 months ago CGroup: / ├─user.slice │ └─user-1000.slice │ ├─user@1000.service │ │ └─init.scope │ │ ├─576 /lib/systemd/systemd --user │ │ └─580 (sd-pam) │ └─session-c1.scope │ ├─480 /bin/login -- │ └─585 -bash ├─init.scope │ └─1 /sbin/init └─system.slice ├─systemd-timesyncd.service │ └─334 /lib/systemd/systemd-timesyncd ├─dbus.service │ └─339 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation ├─hciuart.service │ └─442 /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow - ├─ssh.service │ └─621 /usr/sbin/sshd -D ├─avahi-daemon.service │ ├─341 avahi-daemon: running [raspberrypi.local] │ └─361 avahi-daemon: chroot helper # enabled ├─otbr-web.service │ └─472 /usr/sbin/otbr-web ├─triggerhappy.service │ └─354 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event* ├─systemd-logind.service │ └─353 /lib/systemd/systemd-logind # enabled ├─otbr-agent.service │ └─501 /usr/sbin/otbr-agent -I wpan0 ├─cron.service │ └─350 /usr/sbin/cron -f ├─systemd-udevd.service │ └─154 /lib/systemd/systemd-udevd ├─rsyslog.service │ └─345 /usr/sbin/rsyslogd -n ├─bluetooth.service │ └─445 /usr/lib/bluetooth/bluetoothd # enabled ├─mdns.service │ └─725 /usr/sbin/mdnsd ├─systemd-journald.service │ └─136 /lib/systemd/systemd-journald └─dhcpcd.service ├─409 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 └─466 /sbin/dhcpcd -q -w
যদি এই পরিষেবাগুলি চলমান থাকে, কিন্তু আরপিআই একটি অধঃপতন অবস্থায় থাকে, অন্য কিছু পরিষেবা চালু করতে ব্যর্থ হয়েছে। কোনটি দেখতে পরীক্ষা করুন:
sudo systemctl --failed
এছাড়াও আপনি প্রতিটি পরিষেবা পৃথকভাবে পরীক্ষা করতে পারেন:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
বেশিরভাগ প্ল্যাটফর্মের জন্য otbr-web
ডিফল্টরূপে সক্রিয় থাকে। যদি otbr-web
ইনস্টল করা না থাকে, তাহলে WEB_GUI
পতাকা পাস করার চেষ্টা করুন:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
RCP যাচাই করুন
RCP সঠিক অবস্থায় আছে কিনা যাচাই করুন:
sudo ot-ctl state
ot-ctl
হল একটি কমান্ড লাইন ইউটিলিটি যা OTBR দিয়ে দেওয়া হয়। এটি থ্রেড প্যান ইন্টারফেসের সাথে যোগাযোগ করতে ব্যবহৃত হয় (ডিফল্ট হল wpan0
) যেটি RCP ডিজাইনে otbr-agent
আবদ্ধ।
যদি RCP সফলভাবে চলমান থাকে এবং নোডটি থ্রেড নেটওয়ার্কের সদস্য না হয়, তাহলে আউটপুটটি নীচের মত হওয়া উচিত:
disabled
আউটপুট OpenThread daemon is not running
হলে, নিম্নলিখিত দিয়ে সমস্যা সমাধান করুন:
- বর্ডার রাউটারে পর্যাপ্ত শক্তি আছে কিনা যাচাই করুন (সঠিক এক্সটার্নাল এসি অ্যাডাপ্টার ব্যবহার করুন)।
- RCP বোর্ড বর্ডার রাউটার প্ল্যাটফর্মের সাথে সংযোগ বিচ্ছিন্ন করুন এবং পুনরায় সংযোগ করুন।
RCP সিরিয়াল ডিভাইস উপস্থিত আছে কিনা তা যাচাই করুন। উদাহরণস্বরূপ, যদি ডিভাইসটি
/dev/ttyUSB0
এর সাথে সংযুক্ত করা উচিত:ls /dev/ttyUSB*
/dev/ttyUSB0sudo ot-ctl reset
দিয়ে RCP রিসেট করুন।
sudo ot-ctl state
দিয়ে আবার RCP স্থিতি পরীক্ষা করুন।