Este guia aborda a criação e a configuração básicas do roteador de borda do OpenThread (OTBR). Após a conclusão deste procedimento, você terá um OTBR que funciona como um dispositivo de linha de execução completa (FTD, na sigla em inglês) em um design de RCP.
Configurar plataforma
Configure uma plataforma de hardware compatível:
- BeagleBone Black
- Raspberry Pi (em inglês)
Criar e atualizar o RCP
O OTBR é executado em um design de RCP. Selecione uma plataforma OpenThread compatível para usar como RCP e siga as instruções de criação e atualização para essa plataforma.
Para ter uma visão geral da criação do OpenThread, consulte o Guia de criação.
Veja instruções específicas sobre a criação de plataformas com suporte no GNU Autotools na pasta da plataforma de cada exemplo.
Instalar a OTBR
A OTBR se comunica com o RCP usando o ícone de carregamento. Para instalar o OTBR na plataforma de hardware configurada, conclua as etapas a seguir.
Clone o repositório OTBR:
git clone https://github.com/openthread/ot-br-posix
Instalar dependências
A configuração padrão ativa BORDER_ROUTING
para a maioria das plataformas. Para ver uma
lista completa de sinalizações padrão de OTBR, consulte os
exemplos de plataforma no GitHub.
Selecione sua plataforma e clique em default
, se disponível.
Uso padrão:
cd ot-br-posix
./script/bootstrap
BeagleBone Black com o Gerenciador de rede (opcional):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
Compilar e instalar o OTBR
Uso padrão. O script de configuração ativa o roteamento de borda por padrão. Para ativar o roteamento de borda, especifique a interface Ethernet ou Wi-Fi da sua plataforma:
Use Ethernet:
INFRA_IF_NAME=eth0 ./script/setup
Usar Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black Usar o Gerenciador de rede (opcional):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
Anexar e configurar o dispositivo RCP
Anexe o dispositivo RCP atualizado à plataforma do roteador de borda por USB.
Para configurar a porta serial do dispositivo RCP em otbr-agent
, primeiro determine o nome da porta serial do dispositivo RCP verificando /dev
:
ls /dev/tty*
Em seguida, verifique suas configurações de otbr-agent
.
cd /etc/default
cat otbr-agent
O arquivo de configuração otbr-agent
contém o nome da interface da linha de execução,
nome da interface Ethernet ou Wi-Fi e nome da porta serial RCP.
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
Nem todos os dispositivos são anexados com o mesmo nome de porta serial. Os nomes de porta mais comuns são ttyACM*
e ttyUSB*
. Consulte a documentação do
dispositivo para saber o nome esperado da porta serial.
Se necessário, atualize o arquivo de configuração otbr-agent
. Por exemplo, para uma interface
Wi-Fi e um nome de porta serial ttyUSB0
:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
Para atualizar uma interface Ethernet:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
Reinicie o roteador de borda. Se você estiver usando a plataforma BeagleBone Black, lembre-se de manter o botão BOOT pressionado ao fazer isso.
O serviço OTBR será iniciado na inicialização.
Verificar serviços
Verifique se todos os serviços necessários estão ativados:
sudo systemctl status
Se o script setup
for bem-sucedido, os seguintes serviços vão aparecer na
saída:
mdns.service
otbr-agent.service
otbr-web.service
Exemplo:
● 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
Se esses serviços estiverem em execução, mas a RPi estiver em um estado degradado, algum outro serviço falhou ao iniciar. Verifique quais:
sudo systemctl --failed
Também é possível verificar cada serviço individualmente:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
O otbr-web
é ativado por padrão para a maioria das plataformas.
Se otbr-web
não estiver instalado, tente transmitir a sinalização WEB_GUI
:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
Verificar RCP
Verifique se o RCP está no estado correto:
sudo ot-ctl state
ot-ctl
é um utilitário de linha de comando fornecido com o OTBR. Ele é usado para
se comunicar com a interface PAN Thread (o padrão é wpan0
) a que otbr-agent
está vinculado no design RCP.
Se o RCP estiver em execução e o nó não for membro de uma rede Thread, a saída será semelhante a esta:
disabled
Se a saída for OpenThread daemon is not running
, resolva o problema com o seguinte:
- Verifique se o roteador de borda tem energia suficiente (use o adaptador de CA externo adequado).
- Desconecte e reconecte a placa RCP à plataforma do roteador de borda.
Verifique se o dispositivo serial RCP está presente. Por exemplo, se o dispositivo precisa ser conectado a
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0Redefina o RCP com
sudo ot-ctl reset
.
Verifique o status do RCP novamente com sudo ot-ctl state
.