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

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

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

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

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

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

OTBR एक 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
    
  • नेटवर्क मैनेजर के साथ 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
    

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

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

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

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 के साथ दी गई कमांड लाइन यूटिलिटी है. इसका इस्तेमाल, Thread पैन इंटरफ़ेस के साथ कम्यूनिकेट करने के लिए किया जाता है (डिफ़ॉल्ट तौर पर, wpan0) आरसीपी डिज़ाइन में ही otbr-agent होता है.

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

disabled

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

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

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

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