Ten przewodnik zawiera informacje o podstawowej kompilacji i konfiguracji routera granic OpenThread. (OTBR). Po zakończeniu tej procedury będziesz mieć OTBR, który działa jako urządzenie pełnowątkowe (FTD) w projekcie RCP.
Skonfiguruj platformę
Skonfiguruj obsługiwaną platformę sprzętową:
Tworzenie i flashowanie RCP
OTBR opiera się na modelu RCP. Wybierz obsługiwany obiekt OpenThread platformy i wykorzystywać jako RCP. za instrukcje dla danej platformy.
Informacje o tworzeniu OpenThread znajdziesz w Przewodnik po tworzeniu.
Szczegółowe instrukcje dotyczące tworzenia obsługiwanych platform za pomocą narzędzi GNU Autotools można znaleźć w każdym przykładzie folder na platformie.
Zainstaluj OTBR
OTBR komunikuje się z RCP przez spinel. Aby zainstalować OTBR w na platformie sprzętowej, wykonaj te czynności.
Sklonuj repozytorium OTBR:
git clone https://github.com/openthread/ot-br-posix
Instalowanie zależności
Domyślna konfiguracja włącza BORDER_ROUTING
na większości platform. Dla
pełna lista domyślnych flag OTBR, znajdziesz tutaj
przykładów platformy w GitHubie.
Wybierz platformę, a następnie kliknij default
, jeśli jest dostępny.
Domyślne użycie:
cd ot-br-posix
./script/bootstrap
BeagleBone Black z menedżerem sieci (opcjonalnie):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
Kompilowanie i instalowanie OTBR
Domyślne użycie. Skrypt konfiguracji domyślnie włącza routing graniczny. Aby włączyć Border Routing, określ interfejs Ethernet lub Wi-Fi Twojej platformy:
Użyj sieci Ethernet:
INFRA_IF_NAME=eth0 ./script/setup
Użyj Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black Użyj Menedżera sieci (opcjonalnie):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
Podłącz i skonfiguruj urządzenie RCP
Podłącz urządzenie RCP do platformy Border Router przez USB.
Aby skonfigurować port szeregowy urządzenia RCP w otbr-agent
, najpierw określ
nazwy portu szeregowego urządzenia RCP przez zaznaczenie pola /dev
:
ls /dev/tty*
Następnie sprawdź ustawienia usługi otbr-agent
.
cd /etc/default
cat otbr-agent
Plik konfiguracyjny otbr-agent
zawiera nazwę interfejsu Thread (Ethernet)
nazwę interfejsu Wi-Fi lub interfejsu Wi-Fi oraz nazwę portu szeregowego RCP.
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
Nie wszystkie urządzenia są podłączone z taką samą nazwą portu szeregowego. Najbardziej
typowe nazwy portów to ttyACM*
i ttyUSB*
. Zapoznaj się z dokumentacją
Twojego urządzenia, aby określić oczekiwaną nazwę portu szeregowego.
W razie potrzeby zaktualizuj plik konfiguracji otbr-agent
. Na przykład w przypadku sieci Wi-Fi
interfejs i nazwa portu szeregowego ttyUSB0
:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
Aby zaktualizować interfejs Ethernet:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
Wyłącz router graniczny i włącz go ponownie. Jeśli używasz platformy BeagleBone Black, Pamiętaj, aby przytrzymać przycisk URUCHAMIAJ podczas w ten sposób.
Usługa OTBR powinna się uruchomić podczas uruchamiania.
Zweryfikuj usługi
Sprawdź, czy wszystkie wymagane usługi są włączone:
sudo systemctl status
Jeśli skrypt setup
zadziałał, w
dane wyjściowe:
mdns.service
otbr-agent.service
otbr-web.service
Na przykład:
● 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
Jeśli te usługi działają, ale wskaźnik RPi jest w pogorszonym stanie, niektóre nie udało się uruchomić innej usługi. Sprawdź, które:
sudo systemctl --failed
Możesz też sprawdzić każdą usługę oddzielnie:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
Interfejs otbr-web
jest domyślnie włączony na większości platform.
Jeśli otbr-web
nie jest zainstalowany, spróbuj przekazać flagę WEB_GUI
:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
Zweryfikuj RCP
Sprawdź, czy RCP jest w prawidłowym stanie:
sudo ot-ctl state
ot-ctl
to narzędzie wiersza poleceń udostępniane w OTBR. Używana jest do:
komunikuje się z interfejsem PAN Thread (domyślnie wpan0
), który otbr-agent
jest powiązana w projekcie RCP.
Jeśli RCP działa, a węzeł nie jest członkiem wątku dane wyjściowe powinny wyglądać mniej więcej tak:
disabled
Jeśli dane wyjściowe to OpenThread daemon is not running
, spróbuj rozwiązać problem, wykonując te czynności:
- Upewnij się, że router graniczny jest wystarczająco naładowany (użyj odpowiedniego zewnętrznego źródła zasilania adapter).
- Odłącz i ponownie podłącz płytkę RCP do platformy routera Border Router.
Sprawdź, czy urządzenie szeregowe RCP jest dostępne. Jeśli na przykład urządzenie należy dołączyć do pliku
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0Zresetuj RCP za pomocą parametru
sudo ot-ctl reset
.
Ponownie sprawdź stan RCP w usłudze sudo ot-ctl state
.