参考:
https://openthread.io/guides/border-router
https://openthread.io/codelabs/openthread-border-router
OTBR安装
步骤
1.编译生成ot-rcp.hex
$ git clone --recursive https://github.com/openthread/ot-nrf528xx.git
$ cd ot-nrf528xx
$ script/build nrf52840 USB_trans
$ cd /ot-nrf528xx/build/bin
$ arm-none-eabi-objcopy -O ihex ot-rcp ot-rcp.hex
2.将ot-rcp.hex烧录到nrf52840-dongle
3.将nrf52840-dongle通过usb连接树莓派4B,并查看ttyACM端口
$ ls /dev/ttyACM*
4.编译安装OTBR服务
$ git clone https://github.com/openthread/ot-br-posix.git --depth 1
$ cd ot-br-posix
#安装服务依赖
$ ./script/bootstrap
#INFRA_IF_NAME二选一
#如果raspberryPi通过 wifi 联网
$ INFRA_IF_NAME=wlan0 ./script/setup
#如果raspberryPi通过 Ethernet(网线)联网
$ INFRA_IF_NAME=eth0 ./script/setup
#如果为ubuntu。总之查看ip addr,将INFRA_IF_NAME改为对应设备名
INFRA_IF_NAME=enp2s0 ./script/setup
5.配置OTBR服务。
在执行第4步时,默认已经在/etc/default/otbr-agent末尾添加OTBR_AGENT_OPTS="-I wpan0 -B XXX spinel+hdlc+uart:///dev/ttyACMx trel://XXX"
$ cat /etc/default/otbr-agent
XXX应为第4步INFRA_IF_NAME(wlan0或eth0),将ttyACMx应为第3步nrf52840-dongle对应的端口
如果不对应,则修改至对应。
#清空原有设置
$ sudo sed -i 4d /etc/default/otbr-agent
#ttyACM0替换为nrf52840对应的ttyACM端口 trel://eth0替换为trel://wlan0或trel://eth0
$ sudo echo 'OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM0 trel://eth0"' > /etc/default/otbr-agent
6.重启设备并检查OTBR服务是否正常运行
$ sudo reboot
$ sudo systemctl status
#检查是否包含以下service
avahi-daemon.service
otbr-agent.service
otbr-web.service
在浏览器访问树莓派本地IPv4 地址,查看web GUI。
7.创建Thread网络
$ sudo ot-ctl dataset init new
Done
$ sudo ot-ctl dataset commit active
Done
$ sudo ot-ctl ifconfig up
Done
$ sudo ot-ctl thread start
Done
$ sudo ot-ctl state
leader
Done
$ sudo ot-ctl netdata show
Prefixes:
fdf6:8b86:7b15:af34::/64 paos med 0800
Routes:
2001:da8:c000:2021::/64 s med 0800
Services:
44970 5d fd58f9f8765c29bbcb58ab25c4ce22fdd11f s 0800
44970 01 4a04b000000e10 s 0800
Done
$ sudo ot-ctl ipaddr
fd58:f9f8:765c:29bb:0:ff:fe00:fc11
fd58:f9f8:765c:29bb:0:ff:fe00:fc38
fdf6:8b86:7b15:af34:a674:cad7:a010:71f8
fd58:f9f8:765c:29bb:0:ff:fe00:fc10
fd58:f9f8:765c:29bb:0:ff:fe00:fc00
fd58:f9f8:765c:29bb:0:ff:fe00:800
fd58:f9f8:765c:29bb:cb58:ab25:c4ce:22fd
fe80:0:0:0:6499:5c27:c170:171d
Done
在netdata中可以查看到off-mesh-routable (OMR) 前缀fdf6:8b86:7b15:af34::/6
fdf6:8b86:7b15:af34:a674:cad7:a010:71f8即以该前缀开始,可以通过Wi-Fi/Ethernet访问到。