इस गाइड में OpenThread Border Router (OTBR) के बिल्ड और कॉन्फ़िगरेशन के बारे में बताया गया है. यह प्रोसेस पूरी करने के बाद, आपके पास एक OTBR होगा, जो आरसीपी डिज़ाइन में फ़ुल थ्रेड डिवाइस (एफ़टीडी) के तौर पर काम करता है.
प्लैटफ़ॉर्म कॉन्फ़िगर करना
इस्तेमाल किए जा सकने वाले हार्डवेयर प्लैटफ़ॉर्म को कॉन्फ़िगर करना:
आरसीपी बनाएं और उसे फ़्लैश करें
ओटीबीआर, आरसीपी डिज़ाइन पर काम करता है. आरसीपी के तौर पर इस्तेमाल करने के लिए, OpenThread पर काम करने वाला कोई प्लैटफ़ॉर्म चुनें. इसके बाद, उस प्लैटफ़ॉर्म के लिए, फ़्लैश करने और बिल्ड करने के निर्देशों का पालन करें.
OpenThread बनाने के बारे में खास जानकारी के लिए, बिल्डिंग गाइड देखें.
GNU Autotools के साथ काम करने वाले प्लैटफ़ॉर्म बनाने के खास निर्देश, हर उदाहरण के प्लैटफ़ॉर्म फ़ोल्डर में देखे जा सकते हैं.
OTBR इंस्टॉल करना
OTBR, स्पिनल के ज़रिए आरसीपी से संपर्क करता है. कॉन्फ़िगर किए गए हार्डवेयर प्लैटफ़ॉर्म पर 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
बीगलबोन ब्लैक. नेटवर्क मैनेजर का इस्तेमाल करें (ज़रूरी नहीं):
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
कॉन्फ़िगरेशन फ़ाइल में, आपके 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 प्लैटफ़ॉर्म का इस्तेमाल करते समय, BOOT बटन को दबाकर रखना न भूलें.
ओटीबीआर सेवा चालू होने पर चालू होनी चाहिए.
सेवाओं की पुष्टि करें
पुष्टि करें कि सभी ज़रूरी सेवाएं चालू हैं:
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
अगर ये सेवाएं चल रही हैं, लेकिन RPi खराब स्थिति में है, तो इसका मतलब है कि कोई दूसरी सेवा शुरू नहीं हो पाई है. देखें कि:
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 के साथ मिलने वाली कमांड लाइन की सुविधा है. इसका इस्तेमाल, otbr-agent
के आरसीपी डिज़ाइन में wpan0
के तौर पर बाउंड किए गए Thread PAN इंटरफ़ेस से कम्यूनिकेट करने के लिए किया जाता है.
अगर आरसीपी सही तरीके से चल रहा है और नोड किसी थ्रेड नेटवर्क का सदस्य नहीं है, तो आउटपुट कुछ ऐसा दिखेगा:
disabled
अगर आउटपुट OpenThread daemon is not running
है, तो समस्या हल करने के लिए यह तरीका अपनाएं:
- पुष्टि करें कि बॉर्डर राऊटर में ज़रूरत के मुताबिक पावर हो. इसके लिए, सही बाहरी एसी एडाप्टर का इस्तेमाल करें.
- आरसीपी बोर्ड को बॉर्डर राऊटर प्लैटफ़ॉर्म से डिसकनेक्ट करके फिर से कनेक्ट करें.
पुष्टि करें कि RCP सीरियल डिवाइस मौजूद है. उदाहरण के लिए, अगर डिवाइस को
/dev/ttyUSB0
से अटैच किया जाना चाहिए, तो:ls /dev/ttyUSB*
/dev/ttyUSB0sudo ot-ctl reset
की मदद से आरसीपी को रीसेट करें.
sudo ot-ctl state
की मदद से, आरसीपी का स्टेटस फिर से देखें.