Matter Project 入门 – 构建 OpenThread Border Router Docker
在容器中运行 OTBR 允许创建易于部署的工件和快速开发原型和测试。
在本指南中,我们将在 Raspberry Pi 4 上设置 OTBR docker 容器,以形成Matter Project的Thread网络。
- 我们将为 Raspberry pi4 使用 Ubuntu Server 映像(20.10 或更高版本)。在你的 SD 卡上,确保你刷入了Ubuntu Server Image。
- 您可以通过 SSH 连接到 Raspberry Pi,也可以选择直接使用 Raspbian Desktop。打开一个终端。
安装 Docker 并运行 OTBR 容器:
- 在开始之前,先更新一下 Ubuntu 系统的包列表。
sudo apt update sudo apt upgrade -y
- 在您的 RPI 上使用以下命令安装 Docker。
curl -sSL https://get.docker.com | sh
- 完成后,您可以将 Docker 用户设置修改为在每个命令之前不需要sudo 。需要重新启动。
sudo usermod -aG docker $USER
- 发出以下命令以安装符合 Matter TE7.5
的容器 请注意,您的 RCP 一次只能运行一个边界路由器容器。此外,请务必验证应针对此容器运行的 RCP 版本。docker pull connectedhomeip/otbr:te7
配置并运行 OTBR docker
- 您需要配置您希望用于 OTBR 的 TTY 端口,以便在启动时连接您的 RCP。查找 RCP 设备的 TTY 端口。最简单的方法是在
/tty/dev
连接 RCP 后查找 ... 条目。它通常应该是/dev/ttyUSB0
或/dev/ttyACM0
。 - 按如下方式运行 Docker 安装。该示例使用 Thread 1.1 Border Router 容器。
docker run -d --name "otbr" -it --rm --network host --privileged -v /dev/ttyACM0:/dev/radio connectedhomeip/otbr:te7 --radio-url spinel+hdlc+uart:///dev/radio --B eth0
-d
确保容器以分离模式运行。--name
在 docker 容器正确关闭(或移除)之前是粘性的。- (可选)-p 8080:80 表示托管边界路由器管理网页的网络服务器的端口。
- (可选)
?uart-baudrate=460800
在无线电 URL 选项中是必需的,以解决 UART 上的fragmentation/reassembly问题,以及昂贵的操作,例如带有长 IPv6 数据包的 DTLS。
与 RCP 节点交互
docker 运行后,您可以使用此命令通过交互式 shell 与 RCP 节点通信。检查 RCP 节点的状态。
$ docker exec -ti otbr sh -c "sudo ot-ctl" > state disabled Done
您可以获得正在运行的容器 ID 的列表。
$ docker ps -aq
您可以查看运行 OTBR Docker 容器的窗口以查看边界路由器的运行日志输出,或按照容器日志如下:
$ docker logs [container-id] -f
或者,如果 docker 容器加载正确,您可以停止、删除或终止您的图像。
$ docker stop otbr
$ docker rm otbr
$ docker kill otbr
可选:要退出 shell,请使用 CNTL + C。
形成Thread网络
在 Web 浏览器中,输入 Board Router的 IP 地址。您将看到以下页面。单击“Form”选项卡,然后单击“FORM”按钮。
现在,您将在成功创建Thread网络时看到成功对话框通知。
按OKAY将其关闭。
现在,我们将从 Raspberry Pi 4 上的 OT-CLI 控制台获取 Operation 网络密钥。
在 Raspberry Pi SSH 终端上发出以下命令
docker exec -ti otbr sh -c "sudo ot-ctl"
记下操作键。该密钥将用于将终端设备调试到Thread 网络。