取得 OTBR 代碼
在 Raspberry Pi 上:
安裝 Git:
sudo apt install git從 GitHub 複製
ot-br-posix:git clone --depth=1 https://github.com/openthread/ot-br-posix
建構及安裝 OTBR
OTBR 包含兩個指令碼,可啟動及設定 Thread 邊界路由器:
cd ot-br-posix./script/bootstrapINFRA_IF_NAME=wlan0 ./script/setup
OTBR 可在 Thread 介面和基礎架構網路介面 (例如 Wi-Fi/乙太網路) 上運作,並以 INFRA_IF_NAME 指定。Thread 介面是由 OTBR 本身建立,預設名稱為 wpan0,如果未明確指定 INFRA_IF_NAME,基礎架構介面的預設值為 wlan0。如果 Raspberry Pi 是透過乙太網路線連線,請指定乙太網路介面名稱 (例如 eth0):
INFRA_IF_NAME=eth0 ./script/setup
otbr-agent服務現已啟用,重新啟動後就會啟動。如要立即啟動服務,不必重新啟動,請使用 server 指令碼:
./script/server
確認 otbr-agent 服務是否已啟用:
sudo service otbr-agent status
● otbr-agent.service - Border Router Agent
Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-03-01 05:46:26 GMT; 2s ago
Main PID: 2997 (otbr-agent)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/otbr-agent.service
└─2997 /usr/sbin/otbr-agent -I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM0
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Stop publishing service
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [adproxy] Stopped
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: PSKc is not initialized
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Check if PSKc is initialized: OK
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Initialize OpenThread Border Router Agent: OK
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Border router agent started.
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [INFO]-CORE----: Notifier: StateChanged (0x00038200) [NetData PanId NetName ExtPanId]
Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [INFO]-PLAT----: Host netif is down
編輯 Radio URL 路徑
OTBR 代理程式會使用 /etc/default/otbr-agent 設定檔做為啟動參數。這個檔案包含 OTBR_AGENT_OPTS 變數,可定義電台網址等設定。例如:spinel+hdlc+uart:///dev/ttyACM0。
這個設定檔是由 CMake 從 otbr-agent.default.in 來源檔案產生。然後做為服務啟動參數,提供給系統服務。
如要在目標系統上變更 Radio URL 路徑,請按照下列步驟操作:
在文字編輯器中開啟 OTBR 代理程式設定檔:
sudoedit /etc/default/otbr-agent找出
OTBR_AGENT_OPTS變數。找出字串中的電台網址部分。例如
spinel+hdlc+uart:///dev/ttyACM0。將該字串變更為新路徑。
儲存檔案並結束編輯器。
重新啟動
otbr-agent服務,以套用變更:sudo systemctl restart otbr-agent