Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

OpenThreadボーダールーターの構築と構成

このガイドでは、OpenThread Border Router(OTBR)の基本的なビルドと構成について説明します。この手順を完了すると、RCP設計でフルスレッドデバイス(FTD)として機能するOTBRが作成されます。

プラットフォームの構成

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

RCPの構築とフラッシュ

OTBRはRCP設計で実行されます。選択サポートOpenThreadプラットフォームRCPとして使用し、そのプラットフォーム用の建物や点滅の指示に従うことを。

OpenThread構築の概要については、参照ビルガイド

GNU Autotool群でサポートされるプラットフォームの構築に関する具体的な手順は、各例の中に見つけることができるプラットフォームフォルダ

ボーダールーターを設定する

OTBRはスピネルを介してRCPと通信します。上に構成されたハードウェアプラットフォーム

  1. クローンOTBRリポジトリ:
    git clone https://github.com/openthread/ot-br-posix
  2. 依存関係をインストールします。
    cd ot-br-posix
    ./script/bootstrap
  3. OTBRをコンパイルしてインストールします。セットアップスクリプトはデフォルトでボーダールーティングを有効にしていることに注意してください。ボーダールーティングを有効にするには、プラットフォームのイーサネットまたはWi-Fiインターフェイスを指定します。

    イーサネット

    INFRA_IF_NAME=eth0 ./script/setup

    Wi-Fi

    INFRA_IF_NAME=wlan0 ./script/setup
  4. アタッチ点滅RCPデバイスをUSB経由で境界ルータプラットフォームに。
  5. 中RCPデバイスのシリアルポートを設定しotbr-agent
    1. チェックすることにより、RCPデバイスのシリアルポート名を決定する/dev
      ls /dev/tty*
    2. 追加これに/etc/default/otbr-agent 。例えば、シリアルポート名のttyUSB0
      OTBR_AGENT_OPTS="-I wpan0 spinel+hdlc+uart:///dev/ttyUSB0"
  6. BorderRouterの電源を入れ直します。 BeagleBoneブラックプラットフォームを使用している場合は、することを忘れないでくださいBOOTボタンを押したままにそうしています。
  7. OTBRサービスは起動時に開始する必要があります。

サービスを確認する

必要なすべてのサービスが有効になっていることを確認します。

sudo systemctl status

場合はsetupスクリプトが成功した、以下のサービスが出力に表示されます:

  • avahi-daemon.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
             ├─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
             ├─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
             ├─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

RCPを確認する

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

sudo ot-ctl state

ot-ctl OTBRで提供されるコマンドラインユーティリティです。 (デフォルトではスレッドPANインターフェースとの通信に使用されるwpan0こと) otbr-agent RCPのデザインににバインドされています。

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

disabled

出力された場合OpenThread daemon is not running以下で、トラブルシューティングを:

  1. ボーダールーターに十分な電力があることを確認します(適切な外部ACアダプターを使用します)。
  2. RCPボードを切断してBorderRouterプラットフォームに再接続します。
  3. RCPシリアルデバイスが存在することを確認します。例えば、デバイスは、に付着する必要がある場合/dev/ttyUSB0
    ls /dev/ttyUSB*
    /dev/ttyUSB0
  4. でRCPをリセットsudo ot-ctl reset

再びRCPの状態を確認してくださいsudo ot-ctl state