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

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

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

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

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

RCP बनाएं और फ़्लैश करें

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

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

GNU Autotools की मदद से काम करने वाले प्लैटफ़ॉर्म बनाने से जुड़े खास निर्देश हर उदाहरण#39;प्लैटफ़ॉर्म फ़ोल्डर पर देखे जा सकते हैं.

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
    
  • नेटवर्क मैनेजर के साथ 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
    
  • BeagleBone Black. नेटवर्क मैनेजर का उपयोग करें (वैकल्पिक):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP डिवाइस को अटैच और कॉन्फ़िगर करना

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

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

ls /dev/tty*

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

cd /etc/default
cat otbr-agent

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

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 प्लैटफ़ॉर्म का इस्तेमाल कर रहे हैं, तो ऐसा करते समय बूट बटन दबाकर रखें.

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

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

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

sudo ot-ctl state

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

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

disabled

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

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

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

sudo ot-ctl state के साथ, आरएसपी स्थिति की फिर से जांच करें.