开发环境设置

本节讨论设置开发主机,获取 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 开发包
    ├── applications          应用程序
    ├── bin                   应用程序链接二进制文件
    ├── bsp                   板级和硬件相关文件
    ├── include               提供接口定义的头文件
    ├── samples               配置好且可使用的 Keil 示例项目
    ├── subsys                上层和硬件无关的软件协议
    └── tools                 工具包
└── subsys
    └── matter
        ├── connectedhomeip                 Matter 源代码
        ├── samples                         secure 应用
        ├── lib                             86box application lib
        ├── secure                          secure lib
        ├── thirdparty                      第三方方案
        └── vendor                          Matter 移植层
    └── openthread
        ├── openthread                      Openthread 源代码
        ├── lib                             补丁库和加密库
        ├── Realtek                         脚本构建
        └── vendor                          Openthread 移植层

准备 Toolchain

Matter 开发需要 ARM 交叉编译工具链,下载并安装以下版本:

$ wget https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz
$ tar -xf arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz
$ sudo mv arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi /opt/
$ export PATH=/opt/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin:$PATH

建议将 PATH 环境变量添加到 shell 配置文件(如 ~/.bashrc)中,以便持久生效:

$ echo 'export PATH=/opt/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc

准备 openthread

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

$ cd ./subsys/openthread

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

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

准备 Matter

导航到 Matter 目录。

$ cd ./subsys/matter

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

$ git clone https://github.com/pankore/connectedhomeip

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

$ cd connectedhomeip/
$ git checkout sdk-v1.6.3.0

设置 Matter 环境

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

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

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