openwrt环境下,使用externel commissioning组网openthread
此博客基于前两篇博客
openwrt移植openthread
openwrt搭建thread网络
详细操作可参考官方externel commissioning使用指导
使用android thread app
1.修改ot-br-posix中openwrt的Makefile,将OTBR_MDNS=avahi,并添加libavahi-client依赖包。
https://github.com/openthread/ot-br-posix/blob/master/etc/openwrt/openthread-br/Makefile
@@ -44,7 +44,7 @@ CMAKE_SOURCE_DIR = $(LOCAL_SOURCE_DIR)CMAKE_OPTIONS = \-DBUILD_TESTING=OFF \-DCMAKE_INSTALL_PREFIX=/usr \
- -DOTBR_MDNS=OFF \
+ -DOTBR_MDNS=avahi \-DOTBR_OPENWRT=ON \-DOTBR_WEB=ON@@ -52,7 +52,7 @@ define Package/openthread-brSECTION := baseCATEGORY := NetworkTITLE := OpenThread Border Router
- DEPENDS := +libstdcpp +libjson-c +libubus +libblobmsg-json +libncurses +libreadline +libpthread
+ DEPENDS := +libstdcpp +libjson-c +libubus +libblobmsg-json +libncurses +libreadline +libpthread +libavahi-clientendef
2.编译之后更新openthread-br_xxx.ipk到openwrt
**openwrt下执行**otbr-agent /dev/ttyACM0 115200 &
ot-ctl
> panid 0xdead
Done
> extpanid dead1111dead2222
Done
> masterkey 11112233445566778899DEAD1111DEAD
Done
> prefix add fd11:22::/64 pasor
Done
> pskc 198886f519a8fd7c981fee95d72f4ba7
Done
> pskc -p J01NME
Done
> networkname OpenThreadGuide
Done
> ifconfig up
Done
> thread start
Done
> netdataregister
Done
3.使用android手机安装thread app,app下载链接:thread app。
.
4.手机连接路由wifi,打开thread app.
输入密码,密码为J01NME。
此密码与pskc的关系:
可查看https://github.com/openthread/ot-br-posix/tree/master/tools
pskc工具将passphrase、extpanid、network_name三个参数通过算法计算出pskc,而app中的密码是passphrase。
各参数详细说明可参考:ot-cli命令详细介绍
密码输入正确后,通过手机扫描joiner device的二维码即可将joiner device加入thread网络
5.制作joiner device二维码
ubuntu使用screen命令控制joiner device
> factoryreset
> eui64
f4ce36d76bbd2876 #获取joiner device的eui64
Done
设置组网密码为:N0RD1C
登录二维码制作网站:https://www.qr-code-generator.com/
点击Text,将v=1&&eui=f4ce36d76bbd2876&&cc=N0RD1C输入message框,点击制作二维码。
6.app扫描二维码
通过thread app扫描joiner device的二维码
此时app正在等待joiner device加入。
7.joiner device加入thread 网络
ubuntu使用screen命令控制joiner device
> ifconfig up
Done
> joiner start N0RD1C
Done
Join success!
> thread start
Done
app作为externel commissioner设置完成。
使用ot-commissioner作为externel commissioning
详细可参考https://openthread.google.cn/guides/border-router/external-commissioning?comm=ot-commissioner
.
1.ubuntu安装ot-commissioner
clone工程https://github.com/openthread/ot-commissioner
按照readme在ubuntu中编译ot-commsioner.
.
2.启动border route.
按照openwrt搭建thread网络进行到“启动BORDER ROUTER(openwrt)”章节
3.ubuntu连接openwrt lan或wifi
deng@ubuntu:/work/work/custom/ot-commissioner/build$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:87:f9:ea inet addr:192.168.8.177 Bcast:192.168.8.255 Mask:255.255.255.0inet6 addr: ddbe:48ec:56c6:10::17a/128 Scope:Globalinet6 addr: ddbe:48ec:56c6:10:5b90:ca3:d4b0:dd5f/64 Scope:Globalinet6 addr: fe80::c0bf:c04f:ad81:9dc3/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:6606 errors:0 dropped:0 overruns:0 frame:0TX packets:5056 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:662611 (662.6 KB) TX bytes:3703294 (3.7 MB)lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:5038 errors:0 dropped:0 overruns:0 frame:0TX packets:5038 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:345014 (345.0 KB) TX bytes:345014 (345.0 KB)deng@ubuntu:/work/work/custom/ot-commissioner/build$ ping ddbe:48ec:56c6:10::1
ping: unknown host ddbe:48ec:56c6:10::1
deng@ubuntu:/work/work/custom/ot-commissioner/build$ ping6 ddbe:48ec:56c6:10::1
PING ddbe:48ec:56c6:10::1(ddbe:48ec:56c6:10::1) 56 data bytes
64 bytes from ddbe:48ec:56c6:10::1: icmp_seq=1 ttl=64 time=1.02 ms
64 bytes from ddbe:48ec:56c6:10::1: icmp_seq=2 ttl=64 time=1.00 ms
64 bytes from ddbe:48ec:56c6:10::1: icmp_seq=3 ttl=64 time=0.889 ms
^C
--- ddbe:48ec:56c6:10::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.889/0.970/1.021/0.057 ms
deng@ubuntu:/work/work/custom/ot-commissioner/build$
ubuntu可ping通openwrt。
4.openwrt确保otbr-agent监听49191端口
root@GL-B1300:/# netstat -pnl | grep agent
udp 0 0 :::49191 :::* 4466/otbr-agent
udp 0 0 :::61631 :::* 4466/otbr-agent
raw 0 0 :::58 :::* 58 4466/otbr-agent
unix 2 [ ACC ] STREAM LISTENING 14105 4466/otbr-agent /tmp/openthread.sock
root@GL-B1300:/#
5.修改commissioner-cli的pskc
**openwrt中**
> dataset
Active Timestamp: 1
Channel: 15
Channel Mask: 07fff800
Ext PAN ID: 7f6b9dc5ee4ef2d2
Mesh Local Prefix: fd01:e5dd:ae8c:c555/64
Master Key: 8d23c1d84545d097f4111ccb368268f3
Network Name: OpenThread-8473
PAN ID: 0x8473
PSKc: 59a7c729fd1c5e8d1844d917d0ca9c16 #记录pskc
Security Policy: 0, onrcb
Done**ubuntu中修改../src/app/etc/commissioner/non-ccm-config.json中的PSKc与oenwrt中的相同**
deng@ubuntu:/work/work/custom/ot-commissioner/build$ cat ../src/app/etc/commissioner/non-ccm-config.json | grep PSKc"PSKc" : "59a7c729fd1c5e8d1844d917d0ca9c16"
5.启动commissioner-cli
commissioner-cli详细操作命令可参考:https://github.com/openthread/openthread/blob/master/src/cli/README_COMMISSIONER.md
deng@ubuntu:/work/work/custom/ot-commissioner/build$ sudo ./src/app/cli/commissioner-cli ../src/app/etc/commissioner/non-ccm-config.json____ ______ _ _ ________ ____/ __ \/_ __/ _________ ____ ___ ____ ___ (_)_________(_)___ ____ ___ _____ / ____/ / / _// / / / / /_____/ ___/ __ \/ __ `__ \/ __ `__ \/ / ___/ ___/ / __ \/ __ \/ _ \/ ___/ / / / / / /
/ /_/ / / /_____/ /__/ /_/ / / / / / / / / / / / (__ |__ ) / /_/ / / / / __/ / / /___/ /____/ /
\____/ /_/ \___/\____/_/ /_/ /_/_/ /_/ /_/_/____/____/_/\____/_/ /_/\___/_/ \____/_____/___/ >
>
>
> start ddbe:48ec:56c6:10::1 49191 #ddbe:48ec:56c6:10::1为openwrt的br-lan ip
[done]
> joiner enableall meshcop J01NU5 #将所有thread网络的加入密码设为J01NU5
[done]
博主在验证该功能时遇到一个错误:
> start ddbe:48ec:56c6:10::1 49191
IO_ERROR: NET - Reading information from the socket failed
[failed]
原因是otbr-agent中DTLS messages过长,openthread官方已修复该bug,请自行查看:https://github.com/openthread/openthread/pull/5125/commits/77e8cdd4c92ddf4fa123472ba1e0ba959bc24e9b
6.joiner device加入thread网络
**ubuntu中**
screen /dev/ttyACM0 115200
> factoryreset
> ifconfig up
Done
> joiner start J01NU5
Done
Join success!
> thread start
自此externel commissioning组网的两种方式已验证完。
openwrt环境下,使用externel commissioning组网openthread相关推荐
- 校园网环境下通过OpenWrt软路由利用DNSPod实现QNAP NAS远程IPv4+IPv6双栈访问
起因是我在宿舍部署了一台NAS,定期对我的个人数据进行备份,同时在NAS上搭建了文件服务器.工作站.个人多媒体中心以及git等服务,但是因为校园网ipv4无法给上级路由配置端口转发,IPv6只能获取到 ...
- UBUNTU环境下编译的openwrt
UBUNTU环境下编译的openwrt 请执行这个命令以安装编译依赖包:sudo apt-get update 然后再输这个: sudo apt-get install gcc g++ binutil ...
- openwrt 环境搭建(win10子系统)
因为工作需要,我一个安卓程序开发,做了很多关于openwrt相关的内容,也不说喜不喜欢吧,反正应该对得起自己的工资.废话不多说,进入主题吧! 前面我写了一篇在Windows10上搭建Ubuntu子系统 ...
- 《在(虚拟机)ubuntu16.04上进行openwrt环境搭建及源码下载》
广西·河池学院 广西高校重点实验室培训基地 系统控制与信息处理重点实验室 本篇博客来之河池学院:OpenWrt无线路由组 写作时间: 2020年7月30日21:00:51 <在(虚拟机)ubun ...
- 复杂环境下关于人员 快速统计、识别及定位的研究
复杂环境下关于人员 快速统计.识别及定位的研究 摘要: 本文着重分析了在室内.地下.机井.矿井等特殊环境下,人员的快速统计.识别及高精度定位的目前行业状况,并对相关案例进行了剖析研究,从而为项目有效性 ...
- 《无线网络:理解和应对互联网环境下网络互连所带来的挑战》——第3章 无线个域网 3.1蓝牙...
本节书摘来自华章出版社<无线网络:理解和应对互联网环境下网络互连所带来的挑战>一书中的第3章,第3.1节,作者:(美)杰克L.伯班克(Jack L. Burbank)等著,更多章节内容可以 ...
- 5G环境下工业互联网向向智能制造过渡
Industrial IoT in 5G environment towards smart manufacturing 5GIIoT Background IIoT: 技术趋势 适用于IIoT的通信 ...
- 多云环境下部署 k3s 集群
多云环境下部署 k3s 集群 最近在玩k3s,刚好手上有三台云服务器(白嫖的一年亚马逊,双11买的腾讯云,朋友的阿里云),尝试跨云厂商搭建k3s集群玩玩 一.基础配置 服务器信息 系统 公网IP 内网 ...
- linux svn更换数据仓库,Linux环境下SVN数据仓库迁移
上一篇文章介绍了Windows环境下SVN数据的备份与还原,这篇文章介绍下Linux环境下数据迁移. 一准备工作 1安装环境 1 centOS7 2可上网 2软件需求 1 winSCP 2 PuTTy ...
- UIPopoverController在ARC环境下用法注意
在ARC环境下如果便用以下代码: [cpp] view plaincopyprint? UIViewController *viewTwo; viewTwo = [[ViewTwo alloc] in ...
最新文章
- 操作系统原理:页置换算法,FIFO,LRU,Clock,LFU,二次机会法
- 诡异的select *语句报错事件
- .NET Core Tools转向使用MSBuild项目格式
- linux之more命令
- 如何学好单片机?​嵌入式第一门课
- ZZ:SDNLAB技术分享(一):ODL的SFC入门和Demo
- java 学习笔记_java学习笔记
- c语言会生成class文件,一文带你刨析class文件
- 主内存和工作内存交互
- jupyter notebook + 服务器中docker 使用配置
- Qt + FFmpeg 屏幕录制器
- Linux服务器CPU性能模式
- linux开启磁盘多队列(blk-mq)
- WebStorm调试
- weblogic上服务器上日志查看及ohs服务器重启
- 现在还能买什么股票呢?
- CodeVs 1148 传球游戏
- Oracle中的日期和字符串互相转换以及格式化
- 全要素分析与问题解决:以人为本,主次分明
- 【接口测试基础】第十二篇 | 详解Postman测试报告