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

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

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

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

ऐसे हार्डवेयर प्लैटफ़ॉर्म को कॉन्फ़िगर करें जिस पर ये सुविधाएं काम करती हैं:

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

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

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

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

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

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

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

ls /dev/tty*

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

cd /etc/default
cat otbr-agent

otbr-agent कॉन्फ़िगरेशन फ़ाइल में आपके थ्रेड इंटरफ़ेस का नाम, ईथरनेट या वाई-फ़ाई इंटरफ़ेस का नाम, और 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 कॉन्फ़िगरेशन फ़ाइल को अपडेट करें. उदाहरण के लिए, वाई-फ़ाई इंटरफ़ेस और 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

RCP सत्यापित करें

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

sudo ot-ctl state

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

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

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 स्थिति फिर से देखें.