开发环境设置

本节讨论设置开发主机,获取 Git 代码库以及构建指令。

准备 Matter 环境

需要从 GitHub 拉取代码并设置 Matter 环境。

Matter 支持的开发主机是 Linux 和 Mac OS-X,推荐的主机版本:Ubuntu 22.04 LTS。

在 Linux 上有一些安装前提条件,详细步骤参考 Installing prerequisites on Linux.

在 Linux 上安装前提条件

在基于 Debian 的 Linux 发行版(如 Ubuntu)上,打开终端并使用以下命令来满足这些依赖项:

$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \
  libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \
  python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev

获取代码库

Realtek 的 SDK 对 matter 和 openthread 代码的位置有某些要求,您必须将代码克隆到以下位置。

└── SDK                       SDK 开发包
    ├── bin                   应用程序链接二进制文件
    ├── bsp                   板级和硬件相关文件
    ├── include               提供接口定义的头文件
    ├── samples               配置好且可使用的 Keil 示例项目
    ├── subsys                上层和硬件无关的软件协议
    └── tools                 工具包
└── subsys
    └── matter
        ├── connectedhomeip                 Matter 源代码
        ├── samples                         secure 应用
        ├── rtk_matter
            ├── rtl87x2g_matter1.4.patch    用于 Realtek 构建
            └── connectedhomeip.tar         用于 Realtek 构建
        └── vendor                          Matter 移植层
    └── openthread
        ├── openthread                      Openthread 源代码
        ├── lib                             补丁库和加密库
        ├── Realtek                         脚本构建
        ├── tools                           OTA 打包 image 工具
        └── vendor                          Openthread 移植层

准备 openthread

打开命令提示符并导航到 openthread 目录。

$ cd ./subsys/openthread

在当前文件夹中克隆 OpenThread 源代码。

$ git clone https://github.com/openthread/openthread

准备 Matter

导航到 Matter 目录。

$ cd ./subsys/matter

在当前文件夹中克隆 Matter 源代码。

$ git clone https://github.com/project-chip/connectedhomeip

进入新创建的 connectedhomeip 目录并更改代码版本。

$ cd connectedhomeip
$ git checkout v1.4.0.0

将补丁文件应用到当前存储库,并将 tar 文件解压到当前目录。

$ git apply ../rtk_matter/rtl87x2g_matter1.4.patch
$ tar -xvf ../rtk_matter/connectedhomeip.tar -C ./

设置 Matter 环境

前往 connectedhomeip 目录并设置 Matter 环境。这可能需要较长时间,请耐心等待。过程中也有可能会中途失败。

$ git submodule update --init --recursive
$ source scripts/bootstrap.sh
$ source scripts/activate.sh

还可以参考 Matter 文档中的 Building Matter