Build und Konfiguration des OpenThread-Border-Routers

<ph type="x-smartling-placeholder"></ph> Quelle auf GitHub ansehen

In dieser Anleitung werden die grundlegende Erstellung und Konfiguration des OpenThread-Border-Routers behandelt (OTBR) Nach Abschluss dieses Vorgangs haben Sie einen OTBR, der funktioniert als Full Thread Device (FTD) in einem RCP-Design.

Plattform konfigurieren

Konfigurieren Sie eine unterstützte Hardwareplattform:

Build- und Flash-RCP

OTBR basiert auf einem RCP-Design. Wählen Sie ein unterstütztes OpenThread aus. als RCP-Plattform verwenden und die Anleitungen für die jeweilige Plattform.

Eine Übersicht über das Erstellen von OpenThread finden Sie in der Erstellungsanleitung.

Spezifische Anweisungen zum Erstellen unterstützter Plattformen mit GNU Autotools finden Sie hier: finden Sie in den Plattformordner.

OTBR installieren

OTBR kommuniziert mit dem RCP über Spinel. So installieren Sie OTBR auf dem konfigurierten Hardwareplattform verwenden, führen Sie die folgenden Schritte aus.

Klonen Sie das OTBR-Repository:

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

Abhängigkeiten installieren

In der Standardkonfiguration wird BORDER_ROUTING für die meisten Plattformen aktiviert. Für eine vollständige Liste der OTBR-Standard-Flags, siehe Plattformbeispiele auf GitHub Wählen Sie Ihre Plattform aus und klicken Sie auf default (falls verfügbar).

  • Standardnutzung:

    cd ot-br-posix
    ./script/bootstrap
    
  • BeagleBone Black mit Netzwerkmanager (optional):

    cd ot-br-posix
    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
    

OTBR kompilieren und installieren

  • Standardnutzung. Das Setupskript aktiviert das Border Routing standardmäßig. Zum Aktivieren Border Routing: Geben Sie die Ethernet- oder WLAN-Schnittstelle Ihrer Plattform an:

    Ethernet verwenden:

    INFRA_IF_NAME=eth0 ./script/setup
    

    WLAN verwenden:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • BeagleBone Black Netzwerkmanager verwenden (optional):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP-Gerät anhängen und konfigurieren

Verbinden Sie das geflashte RCP-Gerät über USB mit der Border Router-Plattform.

Bestimmen Sie zuerst den seriellen Port des RCP-Geräts in otbr-agent, um ihn zu konfigurieren Name des seriellen Ports für das RCP-Gerät, indem Sie /dev prüfen:

ls /dev/tty*

Prüfen Sie als Nächstes Ihre otbr-agent-Einstellungen.

cd /etc/default
cat otbr-agent

Die Konfigurationsdatei „otbr-agent“ enthält den Namen deiner Thread-Schnittstelle (Ethernet) oder den Namen der WLAN-Schnittstelle und den Namen des seriellen RCP-Ports.

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

Nicht alle Geräte werden mit demselben Namen des seriellen Ports verbunden. Die meisten Gängige Portnamen sind ttyACM* und ttyUSB*. Weitere Informationen finden Sie in der Dokumentation zu um den erwarteten Namen des seriellen Ports zu ermitteln.

Aktualisieren Sie bei Bedarf die Konfigurationsdatei otbr-agent. Bei einem WLAN-Netzwerk und dem Namen ttyUSB0 des seriellen Ports:

OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"

So aktualisieren Sie eine Ethernet-Schnittstelle:

OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"

Schalten Sie den Border-Router aus und wieder ein. Wenn Sie die BeagleBone Black-Plattform verwenden, Halten Sie die BOOT-Taste dies tun.

Der OTBR-Dienst sollte beim Booten gestartet werden.

Dienste bestätigen

Prüfen Sie, ob alle erforderlichen Dienste aktiviert sind:

sudo systemctl status

Wenn das Skript setup erfolgreich war, werden die folgenden Dienste im Ausgabe:

  • mdns.service
  • otbr-agent.service
  • otbr-web.service

Beispiel:

● 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

Wenn diese Dienste ausgeführt werden, der RPi aber den Status Eingeschränkt hat, werden einige anderer Dienst nicht gestartet werden konnte. Überprüfen Sie Folgendes:

sudo systemctl --failed

Sie können auch jeden Dienst einzeln prüfen:

sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status

otbr-web ist für die meisten Plattformen standardmäßig aktiviert. Wenn otbr-web nicht installiert ist, versuchen Sie, das Flag WEB_GUI zu übergeben:

WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup

RCP bestätigen

Prüfen Sie, ob sich die RCP im richtigen Status befindet:

sudo ot-ctl state

ot-ctl ist ein Befehlszeilendienstprogramm, das mit OTBR bereitgestellt wird. Sie dient dazu, mit der Thread-PAN-Schnittstelle kommunizieren (Standard ist wpan0), die otbr-agent an das RCP-Design gebunden ist.

Wenn der RCP erfolgreich ausgeführt wird und der Knoten kein Mitglied eines Threads ist Netzwerk, sollte die Ausgabe in etwa so aussehen:

disabled

Wenn die Ausgabe OpenThread daemon is not running ist, gehen Sie so vor:

  1. Prüfen, ob der Border-Router ausreichend mit Strom versorgt wird (richtige externe Wechselstromanlage verwenden) Adapter).
  2. Trennen Sie die RCP-Karte und verbinden Sie sie wieder mit der Border Router-Plattform.
  3. Prüfen Sie, ob das serielle RCP-Gerät vorhanden ist. Wenn das Gerät zum Beispiel sollte an /dev/ttyUSB0 angehängt werden:

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. Setzen Sie den RCP-Wert mit sudo ot-ctl reset zurück.

Prüfen Sie den RCP-Status noch einmal mit sudo ot-ctl state.