इस गाइड में, 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
है, तो इनमें से कोई समस्या हल करें:
- यह पक्का करें कि बॉर्डर राऊटर में ज़रूरत के मुताबिक बिजली हो (बाहरी बाहरी एसी अडैप्टर का इस्तेमाल करें).
- आरसीपी बोर्ड को बॉर्डर राऊटर प्लैटफ़ॉर्म से डिसकनेक्ट करके फिर से कनेक्ट करें.
पुष्टि करें कि आरसीपी सीरियल डिवाइस मौजूद है. उदाहरण के लिए, अगर डिवाइस को
/dev/ttyUSB0
से अटैच किया जाना चाहिए:ls /dev/ttyUSB*
/dev/ttyUSB0sudo ot-ctl reset
के साथ आरसीपी रीसेट करें.
sudo ot-ctl state
के साथ आरसीपी की स्थिति फिर से देखें.