<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码
如需进行调试,需要一台具有“调试器”角色的设备和一台设备 具有 Joiner 角色的权限。调试器是采用 Thread 网络以外的设备(例如 手机)担任“专员”角色。连接者是设备 希望加入 Thread 网络。
Thread Commissioner 用于验证连接到网络的设备。它支持 未转移或拥有 Thread 网络凭据(例如网络) 键。
本指南介绍了在没有外部调试器的情况下进行基本网格调试。 或边界路由器如需了解如何使用外部调试器,请参阅外部 线程调试。
如需查看使用虚拟设备进行调试的示例,请参阅 OpenThread 模拟 Codelab。
启用角色
如需启用 Commissioner 和 Joiner 角色,请使用以下 cmake 选项:
选项 | 说明 |
---|---|
-DOT_COMMISSIONER=ON |
启用“调试者”角色 |
-DOT_JOINER=ON |
启用 Joiner 角色 |
例如,要构建仅用于连接符的 CC2538 示例平台,请使用以下代码:
./script/build -DOT_JOINER=ON
将每个二进制文件刷写到所需设备上。一台设备用作调试器, 另一个用作连接符。
可以找到有关构建和刷写受支持平台的具体说明 每个平台的 OpenThread 代码库中请参阅 OpenThread GitHub 组织,查找该代码库。
创建网络
在充当调试器的设备上创建一个网络:
dataset init new
Donedataset
Active Timestamp: 1 Channel: 13 Channel Mask: 07fff800 Ext PAN ID: d63e8e3e495ebbc3 Mesh Local Prefix: fd3d:b50b:f96d:722d/64 Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 Security Policy: 0, onrcb Donedataset commit active
Doneifconfig up
Donethread start
Done
等待几秒钟,并验证设备是否已成为线程主要设备:
state
leader
Done
开始担任“专员”角色
在同一设备上,启动“调试器”角色:
commissioner start
Done
使用 * 通配符可允许具有指定“连接者凭据”的任何连接者 赚取佣金。系统会使用联接者凭据(以及 扩展的 PAN ID 和网络名称)来为设备生成预共享密钥 (PSKd)。然后,在 Thread 期间使用 PSKd 对设备进行身份验证 调试。每个设备的连接符凭据应该是唯一的。
commissioner joiner add * J01NME
Done
仅限特定连接符
如需将调试范围限制为特定的“连接器”设备,请使用 eui64
参数,该参数是设备出厂指定的 IEEE EUI-64。
在充当连接者的设备上,获取 EUI-64:
eui64
2f57d222545271f1
Done
在commissioner joiner
调试器设备:
commissioner joiner add 2f57d222545271f1 J01NME
Done
开始“Joiner”角色
在充当连接者的设备上,执行恢复出厂设置,然后启用 具有在 Commissioner 上指定的相同 Joiner 凭据的 Joiner 角色:
factoryreset
ifconfig up
Donejoiner start J01NME
Done
等待几秒钟进行确认:
Join success!
连接器设备已成功通过调试器进行身份验证 并收到了 Thread 网络凭据。
现在,在 Joiner 设备上启动 Thread:
thread start
Done
验证身份验证
检查连接器设备上的状态,以验证它是否已加入 。在两分钟内,状态从子级转换为路由器:
state
child Done ...state
router Done