在构建Matter固件,体验Telink Matter应用之前,需要先把Matter工程的编译环境准备好,接下去会详细介绍搭建Matter编译环境的步骤(注意,需要在Linux环境下进行)。
1 获取Matter源码
01 安装依赖项
在从Github上拉取Matter项目之前,首先需要安装依赖项,在shell中输入以下命令:
$ sudo apt-get install git gcc g++ python 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
02 克隆Matter项目
将Matter项目克隆到本地目录,例如/home/${YOUR_USERNAME}/workspace/matter,在shell中输入以下命令:
$ git clone https://github.com/project-chip/connectedhomeip
注意,需要将里面的 ${YOUR_USERNAME} 替换为您的用户名文件夹
03 更新子模块
需要进入上一步克隆的Matter项目根目录中进行操作,在shell中输入以下命令:
$ cd ./connectedhomeip
$ git submodule update --init --recursive
2 Docker镜像安装
Matter应用是基于Zephyr实时操作系统实现的,因此在配置Matter项目前,需要提前配置Zephyr工程以及Telink的工具链,但是手动配置Zephyr环境以及配置Telink工具链所需要执行的步骤众多,容易出错,同时耗费的时间较长。因此,我们提供了Docker镜像,方便获取 Matter工程所需要的Zephyr环境。用户只需拉取并运行现有的Docker镜像即可。
01 获取 Docker 镜像
在shell中输入以下命令:
$ sudo docker pull connectedhomeip/chip-build-telink
02 运行 Docker 容器
使用以下命令来运行 Docker 容器:
$ sudo docker run -it --rm -v ${MATTER_BASE}:/root/chip -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" connectedhomeip/chip-build-telink
其中的 ${MATTER_BASE} 是 Matter 项目根目录的绝对路径,例如:
/home/${YOUR_USERNAME}/connectedhomeip
其中 connectedhomeip 是Matter项目文件夹的名称。
此处使用的命令会将 Matter 项目根目录映射到 Docker 容器中的 /root/chip,因此即使退出容器,您也会得到生成的 bin 文件。
Docker 容器启动后,请通过以下命令进入当前 Matter 根目录:
$ cd /root/chip
03 运行引导程序
执行 bootstrap,准备 Matter 的环境,第一次运行通常需要很长时间。
$ source scripts/bootstrap.sh
需要注意的是,每次切换 commit、改变环境都要重新运行引导程序。
此步骤将生成一个在 Matter 根目录 connectedhomeip 下的叫做 .environment 的隐藏文件夹。
如果 Matter 构建环境有任何问题,您可以尝试:
1. 移除环境(在 Matter 项目的根目录中):
$ rm -rf .environment
2. 再次重做引导程序:
$ source scripts/bootstrap.sh
如果以上步骤都没有任何问题,那么到这里Matter的编译环境就搭建好了。