調試程序需要一部具備「調試人員」角色的裝置,以及一部具備「加入者」角色的裝置。「管理員」可以是現有 Thread 網路中的 Thread 裝置,也可以是 Thread 網路外部的裝置 (例如手機),但必須具備管理員角色。加入裝置是指想要加入 Thread 網路的裝置。
Thread Commissioner 用於驗證裝置是否可連上網路。不會轉移或擁有 Thread 網路憑證,例如網路金鑰。
本指南涵蓋基本的網格內委派作業,不需要外部委派者或邊界路由器。如要瞭解如何使用外部 Commissioner,請參閱「外部 Thread 委派」。
如需使用虛擬裝置委派的範例,請參閱 OpenThread 模擬程式碼研究室。
啟用角色
如要啟用 Commissioner 和 Joiner 角色,請使用下列 cmake 選項:
| 選項 | 說明 |
|---|---|
-DOT_COMMISSIONER=ON |
啟用委員角色 |
-DOT_JOINER=ON |
啟用加入者角色 |
舉例來說,如要建構 CC2538 範例平台,僅做為加入者使用,請執行下列指令:
./script/build -DOT_JOINER=ON
將每個二進位檔刷入所需裝置。一部裝置做為「管理員」,另一部則做為「加入者」。
如需建構及刷寫支援平台的具體操作說明,請參閱各平台的 OpenThread 存放區。如要尋找存放區,請前往 OpenThread GitHub 組織。
建立網路
在充當 Commissioner 的裝置上建立網路:
dataset init newDonedatasetActive 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 activeDoneifconfig upDonethread startDone
稍候幾秒鐘,確認裝置已成為 Thread 領導者:
state
leader
Done
開始擔任委員角色
在同一部裝置上,啟動 Commissioner 角色:
commissioner start
Done
使用 * 萬用字元,允許任何具有指定 Joiner 憑證的 Joiner 委派至網路。系統會使用連結器憑證 (以及擴充 PAN ID 和網路名稱),為裝置產生預先共用金鑰 (PSKd)。接著,在 Thread 委任期間,系統會使用 PSKd 驗證裝置。每部裝置的加入者憑證不得重複。
commissioner joiner add * J01NME
Done
僅限特定加入者
如要限制只能由特定 Joiner 裝置委派,請使用 eui64 參數,這是裝置出廠時指派的 IEEE EUI-64。
在做為 Joiner 的裝置上取得 EUI-64:
eui64
2f57d222545271f1
Done
在 Commissioner 裝置的 commissioner joiner 指令中,使用該值取代 * 萬用字元:
commissioner joiner add 2f57d222545271f1 J01NME
Done
啟動 Joiner 角色
在做為加入者的裝置上恢復原廠設定,然後使用在委派者上指定的相同加入者憑證,啟用加入者角色:
factoryresetifconfig upDonejoiner start J01NMEDone
稍候幾秒鐘,等待確認:
Join success!
加入裝置已成功向管理員驗證自身,並收到 Thread 網路憑證。
現在,在加入裝置上啟動 Thread:
thread start
Done
驗證
檢查 Joiner 裝置的狀態,確認該裝置已加入網路。兩分鐘內,狀態會從子項轉換為路由器:
statechild Done ...staterouter Done