OpenThread ボーダー ルーターのビルドと構成

<ph type="x-smartling-placeholder"></ph> GitHub のソースを表示

このガイドでは、OpenThread ボーダー ルーターの基本的なビルドと構成について説明します。 (OTBR)。この手続きが完了すると、機能する OTBR ができあがります。 フルスレッドデバイス(FTD)として 開発されました

プラットフォームの構成

サポートされているハードウェア プラットフォームを構成します。

RCP のビルドとフラッシュ

OTBR は RCP 設計で動作します。サポートされている OpenThread を選択 プラットフォームを RCP として使用し、建物と点滅する 手順をご覧ください。

OpenThread のビルドの概要については、 作成ガイド

GNU Autotools でサポートされているプラットフォームをビルドするための具体的な手順は、 各サンプルの platform フォルダに移動します。

OTBR のインストール

OTBR はスピネル経由で RCP と通信します。設定済みの VM に OTBR をインストールするには、 次の手順を完了します。

OTBR リポジトリのクローンを作成します。

git clone https://github.com/openthread/ot-br-posix

依存関係のインストール

デフォルトの構成では、ほとんどのプラットフォームで BORDER_ROUTING が有効になります。1 つの 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 のコンパイルとインストール

  • デフォルトの使用方法。このセットアップ スクリプトにより、ボーダー ルーティングがデフォルトで有効になります。有効にするには ボーダー ルーティングで、プラットフォームのイーサネット インターフェースまたは Wi-Fi インターフェースを指定します。

    イーサネットの使用:

    INFRA_IF_NAME=eth0 ./script/setup
    

    Wi-Fi を使用する:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • BeagleBone Black。Network Manager を使用する(省略可):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP デバイスの接続と設定

フラッシュした RCP デバイスを USB でボーダー ルーター プラットフォームに接続します。

otbr-agent で RCP デバイスのシリアルポートを設定するには、まず /dev を確認して、RCP デバイスのシリアルポート名を指定します。

ls /dev/tty*

次に、otbr-agent の設定を確認します。

cd /etc/default
cat otbr-agent

otbr-agent 構成ファイルには、Thread インターフェース名(Ethernet)が含まれます。 Wi-Fi インターフェース名と RCP シリアルポート名を 入力してください

OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"

すべてのデバイスが同じシリアルポート名で接続しているわけではありません。最も 一般的なポート名は ttyACM*ttyUSB* です。詳細については、このモジュールの デバイスを調べて、想定されるシリアルポート名を特定します。

必要に応じて、otbr-agent 構成ファイルを更新します。たとえば、Wi-Fi 接続では インターフェースとシリアルポート名 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 ボタンを長押ししながら できます。

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

これらのサービスが実行されているものの、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

RCP の確認

RCP が正しい状態であることを確認します。

sudo ot-ctl state

ot-ctl は、OTBR に付属のコマンドライン ユーティリティです。目的 otbr-agent を行う Thread PAN インターフェース(デフォルトは wpan0)と通信する RCP の設計に必ず沿うことです

RCP が正常に実行されていて、ノードが Thread のメンバーでない場合 出力は次のようになります。

disabled

出力が OpenThread daemon is not running の場合は、次のコマンドでトラブルシューティングを行います。

  1. ボーダー ルーターに十分な電力が供給されていることを確認します(適切な外部 AC を使用します)。 設定されます。
  2. RCP ボードを取り外して、ボーダー ルーター プラットフォームに接続し直します。
  3. RCP シリアル デバイスが存在することを確認します。たとえば、 /dev/ttyUSB0 に接続する必要があります。

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. sudo ot-ctl reset で RCP をリセットします。

sudo ot-ctl state で RCP のステータスを再度確認してください。