在树莓派环境下安装OTBR构建thread网络
前置条件
1、安装好系统的树莓派,测试保证wifi或者网口正常
2、烧录好ot-rcp 固件的MG21 usb stack
otbr源码下载
树莓派更新和升级系统
sudo apt update && sudo apt upgrade
在树莓派终端上下载otbr源码
mkdir -p ~/src
cd ~/src
git clone --recursive https://github.com/openthread/openthread.git
cd openthread
./script/bootstrap
构建OpenThread 守护进程
script/cmake-build posix -DOT_DAEMON=ON
启动OpenThread守护进程
在 RCP 设计中,使用 OpenThread 守护程序与 Thread 设备通信并对其进行管理。使用-v verbose 标志启动 ot-daemon ,因此您可以查看
日志输出并确认它正在运行
cd ~/src/openthread
sudo ./build/posix/src/posix/ot-daemon -v 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
特别注意:要检测 RCP 设备在 Raspberry Pi 中的设备名是否是 ttyACM0,如果不是则需要修订到正确设备名,比如ttyUSB0。
成功后,详细模式下的 ot-daemon 生成类似于以下内容的输出 :
ot-daemon[228024]: Running OPENTHREAD/20191113-00831-gfb399104; POSIX; Jun 7 2020 18:05:15
ot-daemon[228024]: Thread version: 2
ot-daemon[228024]: RCP version: OPENTHREAD/20191113-00831-gfb399104; SIMULATION; Jun 7 2020 18:06:08
在开发测试的过程中OpenThread守护进程不是必须要开启的。
使用ot-ctl进行Thread网络构建
在树莓派终端操作
创建thread网络
sudo ot-ctl dataset init new
sudo ot-ctl ifconfig up
sudo ot-ctl thread start
如果一直报无法连接到设备,请检查 /etc/default/otbr-agent 中的配置是否与实际设备一致
cat /etc/default/otbr-agent
# Default settings for otbr-agent. This file is sourced by systemd
# Options to pass to otbr-agent
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
OTBR_NO_AUTO_ATTACH=0
如上内容,将 wlan0 改为实际使用的网口, ttyUSB0改为实际被识别到的USB设备也可能是ttyACM设备
。
改完后先重新启动otbr-agent服务
先停止
sudo systemctl stop otbr-agent.service
然后再启动
sudo systemctl start otbr-agent.service
再重新创建thread网络
关于ot-ctl指令内容可以参考
https://github.com/openthread/openthread/blob/main/src/cli/README.md#openthread-cli-reference
这样一个基于树莓派的OTBR就搭建完成,可以使用其他thread设备进行网络的加入了。