Esta guía cubre la construcción y configuración básicas de OpenThread Border Router (OTBR). Al completar este procedimiento, tendrá un OTBR que funciona como un dispositivo de subproceso completo (FTD) en un diseño RCP.
Configurar plataforma
Configure una plataforma de hardware compatible:
Cree y actualice RCP
OTBR se ejecuta en un diseño RCP. Seleccione una plataforma OpenThread compatible para usar como RCP y siga las instrucciones de construcción y actualización para esa plataforma.
Para obtener una descripción general de la creación de OpenThread, consulte la Guía de creación .
Las instrucciones específicas sobre cómo construir plataformas compatibles con GNU Autotools se pueden encontrar en la carpeta de la plataforma de cada ejemplo.
Configurar el enrutador de borde
OTBR se comunica con el RCP a través de espinela. En la plataforma de hardware configurada :
- Clonar el repositorio OTBR:
git clone https://github.com/openthread/ot-br-posix
- Instalar dependencias:
cd ot-br-posix
./script/bootstrap
- Compile e instale OTBR. Tenga en cuenta que la secuencia de comandos de configuración habilita el Enrutamiento de borde y deshabilita Network Manager de forma predeterminada.
- Para habilitar Border Routing, especifique la interfaz Ethernet o Wi-Fi de su plataforma:
Ethernet
INFRA_IF_NAME=eth0 ./script/setup
Wifi
INFRA_IF_NAME=wlan0 ./script/setup
- Para permitir que Network Manager cree un AP Wi-Fi:
BORDER_ROUTING=0 NETWORK_MANAGER=1 ./script/setup
- Para habilitar Border Routing, especifique la interfaz Ethernet o Wi-Fi de su plataforma:
- Conecte el dispositivo RCP flasheado a la plataforma Border Router a través de USB.
- Configure el puerto serie del dispositivo RCP en
otbr-agent
:- Determine el nombre del puerto serie para el dispositivo RCP marcando
/dev
:ls /dev/tty*
- Agregue esto a
/etc/default/otbr-agent
. Por ejemplo, para un nombre de puerto serie dettyUSB0
:OTBR_AGENT_OPTS="-I wpan0 spinel+hdlc+uart:///dev/ttyUSB0"
- Determine el nombre del puerto serie para el dispositivo RCP marcando
- Apague y encienda el Border Router. Si usa la plataforma BeagleBone Black, recuerde mantener presionado el botón BOOT mientras lo hace.
- El servicio OTBR debería iniciarse al arrancar.
Verificar servicios
Verifique que todos los servicios requeridos estén habilitados:
sudo systemctl status
Si la secuencia de comandos de setup
se realizó correctamente, los siguientes servicios aparecen en el resultado:
-
avahi-daemon.service
-
otbr-agent.service
-
otbr-web.service
Por ejemplo:
● 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
Si esos servicios se están ejecutando, pero el RPi3B está en un estado degradado , algún otro servicio no pudo iniciarse. Compruebe para ver cuál:
sudo systemctl --failed
Si se omitió la configuración automática de Wi-Fi AP y el servicio fallido es tayga
o dnsmasq
, esto es normal. Si realiza una configuración manual del punto de acceso Wi-Fi, estos servicios están completamente configurados como parte de la configuración del punto de acceso Wi-Fi que se describe en la siguiente sección.
Verificar RCP
Verifique que el RCP esté en el estado correcto:
sudo ot-ctl state
ot-ctl
es una utilidad de línea de comandos proporcionada con OTBR. Se utiliza para comunicarse con la interfaz de Thread PAN (el valor predeterminado es wpan0
) a la que está vinculado otbr-agent
en el diseño de RCP.
Si el RCP se está ejecutando correctamente y el nodo no es miembro de una red Thread, el resultado debería ser similar al siguiente:
disabled
Si la salida es OpenThread daemon is not running
, solucione el problema con lo siguiente:
- Verifique que el enrutador de borde tenga suficiente energía (use el adaptador de CA externo adecuado).
- Desconecte y vuelva a conectar la placa RCP a la plataforma Border Router.
- Verifique que el dispositivo serie RCP esté presente. Por ejemplo, si el dispositivo debe estar conectado a
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0
- Restablezca el RCP con
sudo ot-ctl reset
.
Verifique el estado de RCP nuevamente con sudo ot-ctl state
.