ওপেন থ্রেড বর্ডার রাউটার বিল্ড এবং কনফিগারেশন

GitHub-এ উৎস দেখুন

এই নির্দেশিকাটি 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 হলে, নিম্নলিখিত দিয়ে সমস্যা সমাধান করুন:

  1. বর্ডার রাউটারে পর্যাপ্ত শক্তি আছে কিনা যাচাই করুন (সঠিক এক্সটার্নাল এসি অ্যাডাপ্টার ব্যবহার করুন)।
  2. RCP বোর্ড বর্ডার রাউটার প্ল্যাটফর্মের সাথে সংযোগ বিচ্ছিন্ন করুন এবং পুনরায় সংযোগ করুন।
  3. RCP সিরিয়াল ডিভাইস উপস্থিত আছে কিনা তা যাচাই করুন। উদাহরণস্বরূপ, যদি ডিভাইসটি /dev/ttyUSB0 এর সাথে সংযুক্ত করা উচিত:

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. sudo ot-ctl reset দিয়ে RCP রিসেট করুন।

sudo ot-ctl state দিয়ে আবার RCP স্থিতি পরীক্ষা করুন।