Google 致力于为黑人社区推动种族平等。查看具体行动

网格调试

在 GitHub 上查看源代码

委员与会长

调试需要一个具有 Administrator 角色的设备,以及一个具有 Joiner 角色的设备。专员可以是现有线程网络中的线程设备,也可以是线程成员外部执行任务的线程设备(例如手机)。Joiner 是希望加入线程网络的设备。

线程调试程序用于向网络验证设备的身份。它不会转移或拥有线程网络凭据(如网络密钥)。

本指南介绍了没有外部专员或边界路由器的基本网格调试。如需了解如何使用外部 Debugger,请参阅外部线程调试

有关使用虚拟设备进行调试的示例,请参阅 OpenThread 模拟 Codelab

启用角色

如需启用 Commissioner 和 Joiner 角色,请使用以下 cmake 选项:

选项 说明
-DOT_COMMISSIONER=ON 启用专员角色
-DOT_JOINER=ON 启用 Joiner 角色

例如,要构建 CC2538 示例平台以仅用于联接,请执行以下操作:

./script/build -DOT_JOINER=ON

将每个二进制文件刷写到所需的设备上。一台设备充当专员,另一台设备充当成员。

如需详细了解如何构建和刷写支持的平台,请参阅各平台的 OpenThread 代码库。请参阅 OpenThread GitHub 组织以查找代码库。

创建网络

在充当专员的设备上创建一个网络:

dataset init new
Done
dataset
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
Done
dataset commit active
Done
ifconfig up
Done
thread start
Done

等待几秒钟,并验证设备是否已成为线程领导者:

state
leader
Done

启动专员角色

在同一设备上,启动专员角色:

commissioner start
Done

使用 * 通配符以允许具有指定联接器凭据的任何联接器对该网络进行提交。使用连接凭据(以及扩展的 PAN ID 和网络名称)为设备 (PSKd) 生成预共享密钥。然后,在线程处理期间,PSKd 可用于对设备进行身份验证。联接器凭据对于每台设备而言都应是唯一的。

commissioner joiner add * J01NME
Done

限定到特定连接符

如需将调试限定到特定的 Joiner 设备,请使用 eui64 参数,该参数是设备出厂分配的 IEEE EUI-64。

在成为成员的设备上,获取 EUI-64:

eui64
2f57d222545271f1
Done

在调试程序设备上,在 commissioner joiner 命令中使用该值而非 * 通配符:

commissioner joiner add 2f57d222545271f1 J01NME
Done

启动 Joiner 角色

在作为成员设备的设备上,执行恢复出厂设置,然后使用 Administrator 上指定的相同 Joiner 凭据启用 Joiner 角色:

factoryreset
ifconfig up
Done
joiner start J01NME
Done

等待几秒钟进行确认:

Join success!

Joiner 设备已成功通过专员身份验证,成功接收了 Thread Network 凭据。

现在,在联接器设备上启动线程:

thread start
Done

验证身份验证

在 Joiner 设备上检查状态,验证设备是否已加入网络。在两分钟内,状态从子元素转换为路由器:

state
child
Done
...
state
router
Done