Google is committed to advancing racial equity for Black communities. See how.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Compilación y configuración del enrutador de borde OpenThread

Esta guía cubre la construcción y configuración básicas de OpenThread Border Router (OTBR). Una vez completado 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 la construcción de 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 :

  1. Clonar el repositorio OTBR:
    git clone https://github.com/openthread/ot-br-posix
  2. Instalar dependencias:
    cd ot-br-posix
    ./script/bootstrap
  3. Compile e instale OTBR. Tenga en cuenta que este script de configuración utiliza Network Manager para configurar automáticamente el punto de acceso (AP) Wi-Fi.
    1. Para configurar automáticamente el punto de acceso Wi-Fi mediante Network Manager:
      ./script/setup
    2. Para omitir la configuración automática del punto de acceso Wi-Fi y hacerlo manualmente más tarde sin usar Network Manager:
      NETWORK_MANAGER=0 ./script/setup
  4. Conecte el dispositivo RCP flasheado a la plataforma Border Router a través de USB.
  5. Configure el puerto serie del dispositivo RCP en otbr-agent :
    1. Determine el nombre del puerto serie para el dispositivo RCP marcando /dev :
      ls /dev/tty*
    2. Agregue esto a /etc/default/otbr-agent . Por ejemplo, para un nombre de puerto serie de ttyUSB0 :
      OTBR_AGENT_OPTS="-I wpan0 spinel+hdlc+uart:///dev/ttyUSB0"
  6. Apague y encienda el Border Router. Si usa la plataforma BeagleBone Black, recuerde mantener presionado el botón BOOT mientras lo hace.
  7. 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 fue exitosa, 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 de subprocesos, el resultado debe ser similar al siguiente:

disabled

Si el resultado es OpenThread daemon is not running , solucione el problema con lo siguiente:

  1. Verifique que el enrutador de borde tenga suficiente energía (use el adaptador de CA externo adecuado).
  2. Desconecte y vuelva a conectar la placa RCP a la plataforma Border Router.
  3. Verifique que el dispositivo serie RCP esté presente. Por ejemplo, si el dispositivo debe estar conectado a /dev/ttyUSB0 :
    ls /dev/ttyUSB*
    /dev/ttyUSB0
  4. Restablezca el RCP con sudo ot-ctl reset .

Verifique el estado de RCP nuevamente con sudo ot-ctl state .