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

On-Mesh 佣金

在 GitHub 上查看源代码

委员/结合者

调试需要一台具有“佣金”角色的设备,以及一台具有“联接”角色的设备。“佣金”工具是现有 Thread 网络中的 Thread 设备,或 Thread 网络(如手机)外部的执行“佣金”角色的设备。“Joiner”是希望加入 Thread 网络的设备。

线程佣金用于在设备上对设备进行身份验证。而不会转移或拥有线程密钥(如网络密钥)。

本指南将介绍没有外部佣金或边界路由器的基本网状调试。如需了解如何使用外部佣金程序,请参阅外部线程调试

如需查看使用虚拟设备进行委托的示例,请参阅 OpenThread 模拟 Codelab

启用角色

如需启用“佣金”和“联接”角色,请使用以下 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

仅限特定联接器

要仅针对特定的联接设备进行调试,请使用 eui64 参数,该参数是设备的出厂 IEEE EUI-64 编号。

在作为连接者的设备上,获取 EUI-64:

eui64
2f57d222545271f1
Done

在 Commissioner 设备上的 commissioner joiner 命令中使用该值而不是 * 通配符:

commissioner joiner add 2f57d222545271f1 J01NME
Done

启动“Joiner”角色

在充当“Joiner”角色的设备上,执行恢复出厂设置,然后启用“佣金”凭据中指定的“Joiner”凭据(Joiner 角色):

factoryreset
ifconfig up
Done
joiner start J01NME
Done

等待几秒钟进行确认:

Join success!

“Joiner”设备已成功通过 Commissioner 对自身进行身份验证,并已收到线程网络凭据。

现在,在 Joiner 设备上启动 Thread:

thread start
Done

验证身份验证

检查连接器设备上的状态,以验证设备是否已加入网络。在两分钟内,状态就会从子级过渡到路由器:

state
child
Done
...
state
router
Done