1. 代码
git clone https://github.com/openthread/ot-br-posix
2. 环境准备
配置参考:GitHub
cd ot-br-posix
默认:
./script/bootstrap
带网络管理器的如下配置:
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
硬件固件准备,这里使用芯科的开发板
烧录 bootloader-uart-xmodem.hex 和 ot-rcp 固件到硬件(我使用:BRD4180A, BRD4001A)。
连接到ubuntu, 并查看串行端口是否存在
ls dev/tty*
3. 编译和安装 OTBR
默认用法。设置脚本默认启用边界路由。如需启用边界路由,请指定平台的网口口:
INFRA_IF_NAME=ens33 ./script/setup
BeagleBone Black。使用网络管理器(可选):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
4. 配置 OTBR
检查 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 ens33 spinel+hdlc+uart:///dev/ttyACM0 trel://ens33"
OTBR_NO_AUTO_ATTACH=0
4.1 查看服务
- 查看服务是否正常
sudo systemctl status
- 提示
State: degradedJobs: 0 queuedFailed: 3 units
看到 degraded 请执行以下命令
sudo systemctl --failed //查看失败项
sudo systemctl reset-failed //重新启动失败项
单独查看服务是否正常
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
正常运行时会有如下服务
└─system.slice ├─otbr-web.service │ └─933 /usr/sbin/otbr-web├─otbr-agent.service │ └─2959 /usr/sbin/otbr-agent -I wpan0 -B ens33 spinel+hdlc+uart:>├─mdns.service └─931 /usr/sbin/mdnsd
对于大多数平台,otbr-web 默认处于启用状态。如果未安装 otbr-web,请尝试传递 WEB_GUI 标志:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=ens33 WEB_GUI=1 ./script/setup
5. 验证 RCP
- 启动、停止服务
sudo systemctl start otbr-agent.service
sudo systemctl stop otbr-agent.service
- 检查RCP开发板连接状态
sudo ot-ctl state
连接正常
leader
Done
- 查看OTBR运行日志
tail -f /var/log/syslog
- 查看版本号
sudo ot-ctl version
显示
OPENTHREAD/b9dcdbc; POSIX; Mar 1 2024 17:47:16
Done
sudo ot-ctl rcp version
显示
SL-OPENTHREAD/2.4.1.0_GitHub-7074a43e4; EFR32; Mar 6 2024 15:06:05
Done
- 配置网络
sudo ot-ctl dataset init new
sudo ot-ctl dataset networkkey 0123456789abcdef0123456789abcdef
sudo ot-ctl dataset extpanid 1234567812345678
sudo ot-ctl dataset panid 0x1234
sudo ot-ctl dataset channel 15
提交网络配置
sudo ot-ctl dataset commit active
打开IPV6接口
sudo ot-ctl ifconfig up
启动Thread协议
sudo ot-ctl thread start
查看网络参数
sudo ot-ctl dataset active -x