Opnethread搭建

Opnethread搭建
操作不明之处可以查看原文
https://openthread.io/codelabs/openthread-hardware
https://openthread.io/codelabs/openthread-border-router
硬件

加密狗,开发板,linux主机

步骤
Linux下 打开shell控制台
获取代码搭建
cd
git clone https://github.com/openthread/ot-br-posix.git
Ps:如果无法进行下载,网络有问题,可以查看搭建vpn
编译并安装OTBR
OTBR有两个脚本来引导和设置线程边界路由器:

$ cd ot-br-posix
$ ./script/bootstrap
Ps:如果不成功,请安装cmake make gcc 例如sudo apt-get install cmake
$ INFRA_IF_NAME=wlan0 ./script/setup 或者
INFRA_IF_NAME=eth0 ./script/setup
Wifi或者以太网的连接方式,可能名字有些不同

构建并刷新RCP固件
script/build nrf52840 USB_trans -DOT_THREAD_VERSION=1.2 此为开发板,如果为加密狗,那么需要 -DOT_BOOTLOADER=USB
cd ~/src/ot-nrf528xx/build/bin
$ arm-none-eabi-objcopy -O ihex ot-rcp ot-rcp.hex
再在nRF Connect for desktop 安装Programmer 用来烧加密狗程序,如果不是加密狗,使用以下命令以及操作
开发板操作如下

cd ~/nrfjprog/
$ ./nrfjprog -f nrf52 -s 683704924 --chiperase --program ~/src/ot-nrf528xx/build/bin/ot-rcp.hex --reset
Parsing hex file.(683704924 芯片的编号,可在实体中查看)
Erasing user available code and UICR flash areas.
Applying system reset.
Checking that the area to write is not protected.
Programing device.
Applying system reset.
Run.

烧录完成之后将开发板操作如上面即可
Setup SRP Client End Device

搭建 该过程中不用更换usb接口以及开关
将USB电缆连接到nRF52840板上外部电源引脚旁边的Micro-USB调试端口,然后将其插入Linux计算机。将nRF52840板上的nRF电源开关设置为VDD 。正确连接后, LED5点亮。

编译
cd ~/src
$ git clone --recursive https://github.com/openthread/ot-nrf528xx.git
$ cd ot-nrf528xx
$ script/build nrf52840 USB_trans
cd ~/src/ot-nrf528xx
rm -rf build
#script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_COMMISSIONER=ON
#script/build nrf52840 USB_trans -DOT_SRP_CLIENT=ON -DOT_ECDSA=ON 用例中需要用这个,但是用了这个就没办法控制后台
script/build nrf52840 UART_trans -DOT_SRP_CLIENT=ON -DOT_ECDSA=ON -DOT_JOINER=ON -DOT_COMMISSIONER=ON 所以最后用的这一句
cd ~/src/ot-nrf528xx/build/bin
arm-none-eabi-objcopy -O ihex ot-cli-ftd ot-cli-ftd.hex
烧录
插入开发板
nrfjprog -f nrf52 -s 683608810 --chiperase --program ~/src/ot-nrf528xx/build/bin/ot-cli-ftd.hex --reset

启动程序组网
打开三个shell窗口
窗口1 命名ot
窗口2 命名ftd1
窗口3 命名ftd2
插上第一个rcp的设备(或者加密狗)
到窗口ot(蓝色窗口操作,标记以免错误)
sudo service otbr-agent restart
sudo service otbr-agent status
结果如下:
● otbr-agent.service - Border Router Agent(灰色标记是命令结果)
Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-03-01 05:46:26 GMT; 2s ago
Main PID: 2997 (otbr-agent)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/otbr-agent.service
└─2997 /usr/sbin/otbr-agent -I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM0

Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Stop publishing service
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [adproxy] Stopped
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: PSKc is not initialized
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Check if PSKc is initialized: OK
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Initialize OpenThread Border Router Agent: OK
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Border router agent started.
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [INFO]-CORE----: Notifier: StateChanged (0x00038200) [NetData PanId NetName ExtPanId]
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [INFO]-PLAT----: Host netif is down

然后继续插上一个ftd的设备
窗口切换到ftd1
Ls /dev/ttyACM*
此时应该有两个设备

screen /dev/ttyACM1 115200

窗口切换到ot
sudo ot-ctl dataset active -x
0e080000000000010000000300001235060004001fffe002083d3818dc1c8db63f0708fda85ce9df1e662005101d81689e4c0a32f3b4aa112994d29692030f4f70656e5468726561642d35326532010252e204103f23f6b8875d4b05541eeb4f9718d2f40c0302a0ff(查询key)
Done
然后窗口切回到ftd1 (标记1)

dataset set active 0e080000000000010000000300001235060004001fffe002083d3818dc1c8db63f070 8fda85ce9df1e662005101d81689e4c0a32f3b4aa112994d29692030f4f70656e5468726561642d35326532010252e204103f23f6b8875d4b05541eeb4f9718d2f40c0302a0ff(得到的key)
ifconfig up
Thread start
state
child
Done
netdata show
Prefixes:
fd76:a5d1:fcb0:1707::/64 paos med 4000
Routes:
fd49:7770:7fc5:0::/64 s med 4000
Services:
44970 5d c000 s 4000
44970 01 9a04b000000e10 s 4000
Done
ipaddr
fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927
fda8:5ce9:df1e:6620:0:ff:fe00:4001
fda8:5ce9:df1e:6620:ed74:123:cc5d:74ba (此ip可在组网之后再同一个组网的另外一个leader或者child进行ping)
fe80:0:0:0:d4a9:39a0:abce:b02e
Done
查看state
显示为child则表示已经组网
上诉操作之后,在ot中输入
state
leader

如果需要另外搭建leader,操作如下
插上第三个设备
第三个窗口中ftd2
screen /dev/ttyACM2 115200

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 11
Channel Mask: 07fff800
Ext PAN ID: c0de7ab5c0de7ab5
Mesh Local Prefix: fdc0:de7a:b5c0/64
Master Key: 1234c0de7ab51234c0de7ab51234c0de
Network Name: OpenThread-c0de
PAN ID: 0xc0de
PSKc: ebb4f2f8a68026fc55bcf3d7be3e6fe4
Security Policy: 0, onrcb
Done
dataset commit active
Done
Ifconfig up
Done
thread start
Done
获取上述的key值
输入state,显示为leader
那么现在就可以用ftd1中的操作进行组网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值