<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:
- Prüfen, ob der Border-Router ausreichend mit Strom versorgt wird (richtige externe Wechselstromanlage verwenden) Adapter).
- Trennen Sie die RCP-Karte und verbinden Sie sie wieder mit der Border Router-Plattform.
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/ttyUSB0Setzen Sie den RCP-Wert mit
sudo ot-ctl reset
zurück.
Prüfen Sie den RCP-Status noch einmal mit sudo ot-ctl state
.