OpenThread の構築方法
OpenThread をビルドする手順は、ツールチェーン、ユーザーマシン、ターゲット プラットフォームによって異なります。
最も一般的なワークフローは次のとおりです。
- ビルド環境を設定し、必要なツールチェーンをインストールします。
- マシン上で直接ビルドする場合、詳細な手順については、シミュレーション Codelab をご覧ください。
- 事前構成済みの環境で Docker コンテナを使用するには、OpenThread
environment
イメージをダウンロードして実行します。docker pull openthread/environment:latest
docker run -it --rm openthread/environment bash
- 選択した環境内で、プラットフォーム固有の OpenThread Git リポジトリのクローンを作成します。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 ビルド オプション | openthread/examples/README.md に記載 |
ビルドの例
cmake ビルド オプションを使用して、プラットフォームの機能を有効にします。たとえば、コミッショナーと Joiner のサポートを有効にして CC2538 プラットフォームのバイナリをビルドするには、次のようにします。
./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON
リポジトリで Jam 検出機能を有効にして 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
バイナリ | 説明 | オプション |
---|---|---|
ot-cli-ftd |
SoC 設計用のフルスレッド デバイス | -DOT_APP_CLI=ON -DOT_FTD=ON |
ot-cli-mtd |
SoC 設計用の最小限の Thread デバイス | -DOT_APP_CLI=ON -DOT_MTD=ON |
ot-ncp-ftd |
ネットワーク コプロセッサ(NCP)設計のフルスレッド デバイス | -DOT_APP_NCP=ON -DOT_FTD=ON |
ot-ncp-mtd |
NCP 設計に対応したミニスレッド デバイス | -DOT_APP_NCP=ON -DOT_MTD=ON |
ot-rcp |
無線コプロセッサ(RCP)の設計 | -DOT_APP_RCP=ON -DOT_RCP=ON |
デフォルトでは、上記のフラグはすべて有効になっています。すべてのフラグを明示的に無効にすると、アプリケーションはビルドされませんが、プロジェクトで使用する ./build/lib
で OpenThread ライブラリ ファイルが生成されます。
各プラットフォームでサポートされているフラグについては、examples/platforms
ディレクトリをご覧ください。FTD と MTD の詳細については、Thread Primer をご覧ください。SoC と NCP の設計の詳細については、プラットフォームをご覧ください。
これらのバイナリをフラッシュするプロセスは、サンプル プラットフォームによって異なります。詳しい手順については、各プラットフォームのサンプル フォルダにある README をご覧ください。
OpenThread デーモン
OpenThread Daemon(OT デーモン)は、OpenThread をサービスとして実行し、RCP 設計で使用される OpenThread POSIX ビルドモードです。ビルド方法と使用方法の詳細については、OpenThread デーモンをご覧ください。
サポート パッケージの構築
Build Support Package(BSP)は /third_party
にあります。BSP は、各プラットフォーム上で OpenThread が使用する追加のサードパーティ コードであり、通常は新しいハードウェア プラットフォームに OpenThread を移植するときに含まれます。