OpenThread बॉर्डर राऊटर का बिल्ड और कॉन्फ़िगरेशन

GitHub पर सोर्स देखें

इस गाइड में OpenThread Border राऊटर के बिल्ड और कॉन्फ़िगरेशन के बारे में बताया गया है (ओटीबीआर). इस प्रोसेस को पूरा करने के बाद, आपके पास एक ओटीबीआर होगा जो काम करेगा आरसीपी डिज़ाइन में, Full Thread डिवाइस (FTD) के तौर पर काम कर रहा हूं.

प्लैटफ़ॉर्म कॉन्फ़िगर करें

साथ काम करने वाले हार्डवेयर प्लैटफ़ॉर्म को कॉन्फ़िगर करें:

आरसीपी बनाएं और उसे फ़्लैश करें

OTBR, आरसीपी डिज़ाइन पर चलता है. काम करने वाला OpenThread चुनें प्लैटफ़ॉर्म का इस्तेमाल करके आरसीपी के तौर पर इस्तेमाल किया जा सकता है. साथ ही, इमारत और फ़्लैशिंग की प्रोसेस को फ़ॉलो किया जा सकता है निर्देश देखें.

OpenThread बनाने की खास जानकारी के लिए, बिल्डिंग गाइड.

GNU Autotools के साथ काम करने वाले प्लैटफ़ॉर्म बनाने के लिए, ये खास निर्देश मिले हर उदाहरण में प्लैटफ़ॉर्म फ़ोल्डर पर जाएं.

OTBR इंस्टॉल करें

ओटीबीआर, स्पिनल के ज़रिए आरसीपी से संपर्क करता है. कॉन्फ़िगर किए गए डिवाइस पर OTBR इंस्टॉल करने के लिए हार्डवेयर प्लैटफ़ॉर्म पर एक्सपोर्ट करने के लिए, नीचे दिए गए चरणों को पूरा करें.

OTBR डेटा स्टोर करने की जगह का क्लोन बनाएं:

git clone https://github.com/openthread/ot-br-posix

डिपेंडेंसी इंस्टॉल करें

डिफ़ॉल्ट कॉन्फ़िगरेशन की मदद से, ज़्यादातर प्लैटफ़ॉर्म के लिए BORDER_ROUTING का इस्तेमाल किया जा सकता है. OTBR डिफ़ॉल्ट फ़्लैग की पूरी सूची, देखें GitHub पर प्लैटफ़ॉर्म के उदाहरण. अपना प्लैटफ़ॉर्म चुनें. इसके बाद, अगर उपलब्ध हो, तो default पर क्लिक करें.

  • डिफ़ॉल्ट रूप से इस्तेमाल के लिए:

    cd ot-br-posix
    ./script/bootstrap
    
  • Network Manager के साथ BeagleBone Black (ज़रूरी नहीं):

    cd ot-br-posix
    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
    

OTBR को कंपाइल और इंस्टॉल करें

  • डिफ़ॉल्ट इस्तेमाल. सेटअप स्क्रिप्ट, बॉर्डर रूटिंग को डिफ़ॉल्ट रूप से चालू करती है. चालू करने के लिए बॉर्डर रूटिंग, अपने प्लैटफ़ॉर्म के ईथरनेट या वाई-फ़ाई इंटरफ़ेस की जानकारी दें:

    ईथरनेट का इस्तेमाल करें:

    INFRA_IF_NAME=eth0 ./script/setup
    

    वाई-फ़ाई का इस्तेमाल करें:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • बीगलबोन ब्लैक. नेटवर्क मैनेजर का इस्तेमाल करें (ज़रूरी नहीं):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

आरसीपी डिवाइस को अटैच और कॉन्फ़िगर करें

फ़्लैश किए गए आरसीपी डिवाइस को यूएसबी के ज़रिए बॉर्डर राऊटर प्लैटफ़ॉर्म से जोड़ें.

otbr-agent में आरसीपी डिवाइस का सीरियल पोर्ट कॉन्फ़िगर करने के लिए, सबसे पहले यह तय करें कि /dev की जांच करके RCP डिवाइस के सीरियल पोर्ट का नाम:

ls /dev/tty*

इसके बाद, अपने otbr-agent की सेटिंग देखें.

cd /etc/default
cat otbr-agent

otbr-agent कॉन्फ़िगरेशन फ़ाइल में आपके Thread इंटरफ़ेस का नाम, ईथरनेट है या वाई-फ़ाई इंटरफ़ेस का नाम, और आरसीपी सीरियल पोर्ट नाम.

OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"

सभी डिवाइस एक ही सीरियल पोर्ट नाम से अटैच नहीं होते. सबसे ज़्यादा सामान्य पोर्ट नाम ttyACM* और ttyUSB* हैं. इसके लिए दस्तावेज़ देखें अपने डिवाइस को अपेक्षित सीरियल पोर्ट नाम का पता लगाने के लिए.

अगर ज़रूरी हो, तो otbr-agent कॉन्फ़िगरेशन फ़ाइल को अपडेट करें. उदाहरण के लिए, वाई-फ़ाई के लिए 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"

बॉर्डर राऊटर को बंद करके फिर से चालू करें. अगर BeagleBone Black प्लैटफ़ॉर्म का इस्तेमाल किया जा रहा है, तो समय-समय पर बूट बटन को दबाकर रखना न भूलें नहीं किया है.

ओटीबीआर सेवा बूट होने पर शुरू होनी चाहिए.

सेवाओं की पुष्टि करें

पुष्टि करें कि सभी ज़रूरी सेवाएं चालू हैं:

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

आरसीपी की पुष्टि करें

पुष्टि करें कि आरसीपी सही स्थिति में है:

sudo ot-ctl state

ot-ctl, OTBR के साथ दी जाने वाली कमांड लाइन सुविधा है. इसका इस्तेमाल इन कामों के लिए किया जाता है Thread PAN इंटरफ़ेस से संपर्क करें (डिफ़ॉल्ट रूप से यह wpan0 है) कि otbr-agent आरसीपी डिज़ाइन के मुताबिक होना चाहिए.

अगर आरसीपी सही से चल रहा है और नोड, Thread का सदस्य नहीं है नेटवर्क है, तो आउटपुट नीचे दिए गए आउटपुट जैसा होना चाहिए:

disabled

अगर आउटपुट OpenThread daemon is not running है, तो इन समस्याओं को हल करें:

  1. पुष्टि करें कि बॉर्डर राऊटर में ज़रूरत के मुताबिक पावर सप्लाई हो रही है. इसके लिए, बाहरी एसी का इस्तेमाल करें अडैप्टर).
  2. आरसीपी बोर्ड को डिसकनेक्ट करके, बॉर्डर राऊटर प्लैटफ़ॉर्म से दोबारा जोड़ें.
  3. पुष्टि करें कि RCP सीरियल डिवाइस मौजूद है. उदाहरण के लिए, अगर डिवाइस /dev/ttyUSB0 के साथ अटैच होना चाहिए:

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. sudo ot-ctl reset की मदद से आरसीपी को रीसेट करें.

sudo ot-ctl state की मदद से, आरसीपी की स्थिति फिर से देखें.