OpenThread को बनाने का तरीका
OpenThread बनाने के तरीके, टूलचेन, उपयोगकर्ता के डिवाइस, और टारगेट प्लैटफ़ॉर्म के हिसाब से अलग-अलग होते हैं.
आम तौर पर, वर्कफ़्लो ऐसा होता है:
- बिल्ड एनवायरमेंट सेट अप करें और मनचाही टूलचेन इंस्टॉल करें:
- किसी मशीन पर सीधे तौर पर बनाने के लिए, सिलसिलेवार निर्देशों के लिए सिमुलेशन कोडलैब देखें
- पहले से कॉन्फ़िगर किए गए एनवायरमेंट के साथ Docker कंटेनर का इस्तेमाल करने के लिए,
OpenThread
environmentइमेज डाउनलोड करें और उसे चलाएं:docker pull openthread/environment:latestdocker run -it --rm openthread/environment bash
- अपने चुने गए एनवायरमेंट में, प्लैटफ़ॉर्म के हिसाब से OpenThread Git repository को क्लोन करें. CC2538 को उदाहरण के तौर पर लेते हुए:
git clone https://github.com/openthread/ot-cc2538.git --recursive - क्लोन की गई रिपॉज़िटरी की रूट डायरेक्ट्री से:
- टूलचेन इंस्टॉल करें:
./script/bootstrap - कॉन्फ़िगरेशन बनाएं:
./script/build platform-specific-args cmake-options
- टूलचेन इंस्टॉल करें:
- टारगेट प्लैटफ़ॉर्म पर, अपनी पसंद की बाइनरी फ़्लैश करें. जनरेट की गई सभी बाइनरी,
./build/binमें मौजूद होती हैं.
कॉन्फ़िगरेशन
बिल्ड प्रोसेस के दौरान, अलग-अलग फ़ंक्शन और व्यवहार के लिए OpenThread को कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन के उपलब्ध विकल्पों के बारे में यहां ज़्यादा जानकारी दी गई है:
| टाइप | जगह |
|---|---|
| कंपाइल-टाइम कॉन्स्टेंट | /src/core/config में मौजूद सभी हेडर फ़ाइलों में शामिल है |
| cmake बिल्ड के विकल्प | /etc/cmake/options.cmake में लिस्ट किया गया |
उदाहरण बनाना
प्लैटफ़ॉर्म के लिए सुविधा चालू करने के लिए, cmake के बिल्ड विकल्पों का इस्तेमाल करें. उदाहरण के लिए, CC2538 प्लैटफ़ॉर्म के लिए, कमिश्नर और जॉइनर की सुविधा चालू करके बाइनरी बनाने के लिए:
./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON
इसके अलावा, अगर आपको फ़्रीक्वेंसी जैमिंग का पता लगाने की सुविधा चालू करके, nRF52840 प्लैटफ़ॉर्म बनाना है, तो:
./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON
बाइनरी
बिल्ड प्रोसेस के दौरान, ./build/bin में ये बाइनरी जनरेट होती हैं. कौनसी बाइनरी जनरेट की जाती हैं, यह तय करने के लिए ./script/build कमांड के साथ फ़्लैग का इस्तेमाल करें. उदाहरण के लिए, OpenThread बनाने और सिर्फ़ FTD CLI बाइनरी जनरेट करने के लिए:
./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
| Binary | ब्यौरा | विकल्प |
|---|---|---|
ot-cli-ftd |
SoC डिज़ाइन के लिए, Thread की पूरी सुविधा वाला डिवाइस | -DOT_APP_CLI=ON-DOT_FTD=ON |
ot-cli-mtd |
SoC डिज़ाइन के लिए कम से कम Thread डिवाइस | -DOT_APP_CLI=ON-DOT_MTD=ON |
ot-ncp-ftd |
नेटवर्क को-प्रोसेसर (एनसीपी) डिज़ाइन के लिए, Thread की पूरी सुविधा वाला डिवाइस | -DOT_APP_NCP=ON-DOT_FTD=ON |
ot-ncp-mtd |
एनसीपी डिज़ाइन के लिए कम से कम Thread डिवाइस | -DOT_APP_NCP=ON-DOT_MTD=ON |
ot-rcp |
रेडियो को-प्रोसेसर (आरसीपी) डिज़ाइन | -DOT_APP_RCP=ON-DOT_RCP=ON |
डिफ़ॉल्ट रूप से, ऊपर दिए गए सभी फ़्लैग चालू होते हैं. सभी फ़्लैग को साफ़ तौर पर बंद करने पर, ऐप्लिकेशन नहीं बनाए जाते. हालांकि, OpenThread लाइब्रेरी फ़ाइलें अब भी ./build/lib में जनरेट होती हैं, ताकि उन्हें किसी प्रोजेक्ट में इस्तेमाल किया जा सके.
examples/platforms डायरेक्ट्री में जाकर देखें कि हर प्लैटफ़ॉर्म कौनसे फ़्लैग इस्तेमाल कर सकता है. एफटीडी और एमटीडी के बारे में ज़्यादा जानने के लिए, थ्रेड प्राइमर देखें. SoC और NCP डिज़ाइन के बारे में ज़्यादा जानकारी के लिए, प्लैटफ़ॉर्म देखें.
इन बाइनरी को फ़्लैश करने की प्रोसेस, उदाहरण के तौर पर दिए गए प्लैटफ़ॉर्म के हिसाब से अलग-अलग होती है. निर्देशों के बारे में ज़्यादा जानने के लिए, हर प्लैटफ़ॉर्म के उदाहरण फ़ोल्डर में मौजूद README फ़ाइलें देखें.
OpenThread Daemon
OpenThread Daemon (OT Daemon), OpenThread का POSIX बिल्ड मोड है. यह OpenThread को एक सेवा के तौर पर चलाता है और इसका इस्तेमाल RCP डिज़ाइन के साथ किया जाता है. इसे बनाने और इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, OpenThread Daemon देखें.
सपोर्ट पैकेज बनाना
Build Support Packages (BSPs) /third_party में मिलते हैं. बीएसपी, तीसरे पक्ष का अतिरिक्त कोड होता है. इसका इस्तेमाल OpenThread, हर प्लैटफ़ॉर्म पर करता है. आम तौर पर, इसे OpenThread को नए हार्डवेयर प्लैटफ़ॉर्म पर पोर्ट करते समय शामिल किया जाता है.