Loading

Matter环境搭建

获取Matter仓库

拉取Matter Github:

# 拉取仓库
mkdir -p ~/workspace
cd ~/workspace
git clone --depth 1 -b v1.3.0.0 https://github.com/project-chip/connectedhomeip.git

# 更新子模块
cd ~/workspace/connectedhomeip
git submodule update --init --depth 1

注意:更新子模块可能由于网络原因导致失败,可以重复执行更新子模块命令

获取先决条件

在基于 Debian 的 Linux 发行版(例如 Ubuntu)上,可以使用以下命令满足这些依赖关系:

sudo apt update
sudo apt 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 \
     default-jre

注意:如果主机上已经具备依赖包,那么只做检查不会再下载

激活Matter环境

在运行任何其他构建命令之前,scripts/activate.sh应在顶层获取环境设置脚本。此脚本负责下载 GN、ninja 以及设置用于构建和测试的库的 Python 环境。

执行如下命令:

pi@pi-NMH-WCX9:~/workspace/connectedhomeip$ source scripts/activate.sh 

  WELCOME TO...

         █
         █
     ▄   █   ▄                                █     █
     ▀▀█████▀▀      ▄▀▀▀▄ ▄▀▀▀▄    ▄▀▀▀▀▄█  ▀▀█▀▀▀▀▀█▀▀   ▄▀▀▀▀▄    ▄▀▀
   ▀█▄       ▄█▀   █     █     █  █      █    █     █    █▄▄▄▄▄▄█  █   
     ▀█▄   ▄█▀     █     █     █  █      █    █     █    █         █   
  ▄██▀▀█   █▀▀██▄  █     █     █   ▀▄▄▄▄▀█    ▀▄▄   ▀▄▄   ▀▄▄▄▄▀   █   
 ▀▀    █   █    ▀▀

  BOOTSTRAP! Bootstrap may take a few minutes; please be patient.

Downloading and installing packages into local source directory:

  Setting up CIPD package manager...done (10m31.9s)
  Setting up Project actions........skipped (0.1s)
  Setting up Python environment.....done (1m18.2s)
  Setting up pw packages............skipped (0.1s)
  Setting up Host tools.............done (0.1s)

Activating environment (setting environment variables):

  Setting environment variables for CIPD package manager...done
  Setting environment variables for Project actions........skipped
  Setting environment variables for Python environment.....done
  Setting environment variables for pw packages............skipped
  Setting environment variables for Host tools.............done

Checking the environment:

20250113 21:56:41 INF Environment passes all checks!

Environment looks good, you are ready to go!

To reactivate this environment in the future, run this in your 
terminal:

  source ./activate.sh

To deactivate this environment, run this:

  deactivate

Installing pip requirements for all...

[notice] A new release of pip is available: 23.2.1 -> 24.3.1
[notice] To update, run: pip install --upgrade pip


注意:Setting up CIPD package manager 过程可能会有点长

构建库

更新 Matter 子模块后,只拉取了源代码和构建脚本,还需要构建(编译)源代码获取库文件(*.o):

cd ~/workspace/connectedhomeip
source scripts/activate.sh
gn gen out/host
ninja -C out/host

注意:目录名称out/host可以是任何目录,但通常在out目录内构建。此示例使用host来强调为主机系统构建。不同的构建目录可用于不同的配置,也可以使用单个目录并根据需要通过 重新配置。

这里执行 ninja -C out/host 出错了,报错如下:

pi@pi-NMH-WCX9:~/workspace/connectedhomeip$ ninja -C out/host
ninja: Entering directory `out/host'
ninja: error: '../../third_party/nlunit-test/repo/src/nlunit-test.c', needed by 'obj/third_party/nlunit-test/repo/src/libnlunit-test.nlunit-test.c.o', missing and no known rule to make it

在浏览器上找到解决方法,先不管上面的报错,接着编译 chip-tool

pi@pi-NMH-WCX9:~/workspace/connectedhomeip$ ./scripts/examples/gn_build_example.sh examples/chip-tool/ out/standalone

  WELCOME TO...

         █
         █
     ▄   █   ▄                                █     █
     ▀▀█████▀▀      ▄▀▀▀▄ ▄▀▀▀▄    ▄▀▀▀▀▄█  ▀▀█▀▀▀▀▀█▀▀   ▄▀▀▀▀▄    ▄▀▀
   ▀█▄       ▄█▀   █     █     █  █      █    █     █    █▄▄▄▄▄▄█  █   
     ▀█▄   ▄█▀     █     █     █  █      █    █     █    █         █   
  ▄██▀▀█   █▀▀██▄  █     █     █   ▀▄▄▄▄▀█    ▀▄▄   ▀▄▄   ▀▄▄▄▄▀   █   
 ▀▀    █   █    ▀▀

  ACTIVATOR! This sets your shell environment variables.

Activating environment (setting environment variables):

  Setting environment variables for CIPD package manager...done
  Setting environment variables for Project actions........skipped
  Setting environment variables for Python environment.....done
  Setting environment variables for pw packages............skipped
  Setting environment variables for Host tools.............done

Checking the environment:

20250114 09:48:44 INF Environment passes all checks!

Environment looks good, you are ready to go!

+ env
SHELL=/bin/bash
SESSION_MANAGER=local/pi-NMH-WCX9:@/tmp/.ICE-unix/2273,unix/pi-NMH-WCX9:/tmp/.ICE-unix/2273
QT_ACCESSIBILITY=1
COLORTERM=truecolor
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
SSH_AGENT_LAUNCHER=gnome-keyring
XDG_MENU_PREFIX=gnome-
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GTK_IM_MODULE=fcitx
LC_ADDRESS=zh_CN.UTF-8
GNOME_SHELL_SESSION_MODE=ubuntu
LC_NAME=zh_CN.UTF-8
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
PW_PROJECT_ROOT=/home/pi/workspace/connectedhomeip
XMODIFIERS=@im=fcitx
DESKTOP_SESSION=ubuntu
LC_MONETARY=zh_CN.UTF-8
PW_ZAP_CIPD_INSTALL_DIR=/home/pi/workspace/connectedhomeip/.environment/cipd/packages/zap
GTK_MODULES=gail:atk-bridge
PWD=/home/pi/workspace/connectedhomeip
XDG_SESSION_DESKTOP=ubuntu
LOGNAME=pi
XDG_SESSION_TYPE=wayland
SYSTEMD_EXEC_PID=7931
XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.TRLA02
CIPD_CACHE_DIR=/home/pi/.cipd-cache-dir
PW_ROOT=/home/pi/workspace/connectedhomeip/third_party/pigweed/repo
HOME=/home/pi
USERNAME=pi
IM_CONFIG_PHASE=1
LANG=en_US.UTF-8
LC_PAPER=zh_CN.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
XDG_CURRENT_DESKTOP=ubuntu:GNOME
VIRTUAL_ENV=/home/pi/workspace/connectedhomeip/.environment/pigweed-venv
VTE_VERSION=6800
WAYLAND_DISPLAY=wayland-0
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/8306e5c5_9b0b_4d97_8ed7_7d8e3d900e7b
PW_PYTHON_CIPD_INSTALL_DIR=/home/pi/workspace/connectedhomeip/.environment/cipd/packages/python
CLUTTER_IM_MODULE=fcitx
_PW_ROSETTA=0
GNOME_SETUP_DISPLAY=:1
LESSCLOSE=/usr/bin/lesspipe %s %s
XDG_SESSION_CLASS=user
LC_IDENTIFICATION=zh_CN.UTF-8
TERM=xterm-256color
LESSOPEN=| /usr/bin/lesspipe %s
USER=pi
GNOME_TERMINAL_SERVICE=:1.157
DISPLAY=:0
SHLVL=2
LC_TELEPHONE=zh_CN.UTF-8
QT_IM_MODULE=fcitx
PW_PACKAGE_ROOT=/home/pi/workspace/connectedhomeip/.environment/packages
LC_MEASUREMENT=zh_CN.UTF-8
_PW_ENVIRONMENT_CONFIG_FILE=/home/pi/workspace/connectedhomeip/scripts/setup/environment.json
XDG_RUNTIME_DIR=/run/user/1000
PW_BRANDING_BANNER=/home/pi/workspace/connectedhomeip/scripts/setup/banner.txt
_PW_ACTUAL_ENVIRONMENT_ROOT=/home/pi/workspace/connectedhomeip/.environment
PW_ARM_CIPD_INSTALL_DIR=/home/pi/workspace/connectedhomeip/.environment/cipd/packages/arm
LC_TIME=zh_CN.UTF-8
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
PATH=/home/pi/workspace/connectedhomeip/third_party/pigweed/repo/out/host/host_tools:/home/pi/workspace/connectedhomeip/.environment/pigweed-venv/bin:/home/pi/workspace/connectedhomeip/.environment/cipd/packages/arm/bin:/home/pi/workspace/connectedhomeip/.environment/cipd/packages/arm:/home/pi/workspace/connectedhomeip/.environment/cipd/packages/zap:/home/pi/workspace/connectedhomeip/.environment/cipd/packages/pigweed/bin:/home/pi/workspace/connectedhomeip/.environment/cipd/packages/pigweed:/home/pi/workspace/connectedhomeip/.environment/cipd:/home/pi/.cargo/bin:/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
GDMSESSION=ubuntu
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
PW_PIGWEED_CIPD_INSTALL_DIR=/home/pi/workspace/connectedhomeip/.environment/cipd/packages/pigweed
LC_NUMERIC=zh_CN.UTF-8
OLDPWD=/home/pi/workspace/connectedhomeip/third_party
_=/usr/bin/env
+ gn gen --check --fail-on-unused-args --root=examples/chip-tool/ out/standalone --args=
ERROR at //third_party/connectedhomeip/third_party/nlassert/BUILD.gn:19:1: Source file not found.
source_set("nlassert") {
^-----------------------
The target:
  //third_party/connectedhomeip/third_party/nlassert:nlassert
has a source file:
  //third_party/connectedhomeip/third_party/nlassert/repo/include/nlassert.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlbyteorder-big.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlbyteorder.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlbyteorder-little.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlbyteorder.hpp
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-base.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-base.hpp
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-byteorder-big.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-byteorder-big.hpp
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-byteorder-little.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-byteorder-little.hpp
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-byteorder.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-byteorder.hpp
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio-private.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio.h
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlio/BUILD.gn:19:1: Source file not found.
source_set("nlio") {
^-------------------
The target:
  //third_party/connectedhomeip/third_party/nlio:nlio
has a source file:
  //third_party/connectedhomeip/third_party/nlio/repo/include/nlio.hpp
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlunit-test/BUILD.gn:30:1: Source file not found.
static_library("nlunit-test") {
^------------------------------
The target:
  //third_party/connectedhomeip/third_party/nlunit-test:nlunit-test
has a source file:
  //third_party/connectedhomeip/third_party/nlunit-test/repo/src/nlunit-test.c
which was not found.
___________________
ERROR at //third_party/connectedhomeip/third_party/nlunit-test/BUILD.gn:30:1: Source file not found.
static_library("nlunit-test") {
^------------------------------
The target:
  //third_party/connectedhomeip/third_party/nlunit-test:nlunit-test
has a source file:
  //third_party/connectedhomeip/third_party/nlunit-test/repo/src/nlunit-test.h
which was not found.

此时也出现了错误:部分子模块的源文件和库文件没有找到。

到对应子模块的文件下查看文件信息,结果一个文件都没有。那么只能是拉取子模块时出问题了,所以删除子模块,重新拉取:

cd ~/workspace/connectedhomeip
rm -rf third_party/nlassert/repo

# 重新拉取
pi@pi-NMH-WCX9:~/workspace/connectedhomeip$ git submodule update
Submodule path 'third_party/nlassert/repo': checked out 'c5892c5ae43830f939ed660ff8ac5f1b91d336d3'

# 检查子模块文件夹
pi@pi-NMH-WCX9:~/workspace/connectedhomeip$ ll third_party/nlassert/repo/
total 856
drwxrwxr-x 6 pi pi   4096  1月 14 10:00 ./
drwxrwxr-x 3 pi pi   4096  1月 14 10:00 ../
-rw-rw-r-- 1 pi pi  44922  1月 14 10:00 aclocal.m4
-rwxrwxr-x 1 pi pi   1305  1月 14 10:00 bootstrap*
lrwxrwxrwx 1 pi pi     62  1月 14 10:00 bootstrap-configure -> third_party/nlbuild-autotools/repo/scripts/bootstrap-configure*
-rw-rw-r-- 1 pi pi    838  1月 14 10:00 CHANGES
-rwxrwxr-x 1 pi pi 686635  1月 14 10:00 configure*
-rw-rw-r-- 1 pi pi  13920  1月 14 10:00 configure.ac
-rw-rw-r-- 1 pi pi   1452  1月 14 10:00 CONTRIBUTING.md
-rw-rw-r-- 1 pi pi      6  1月 14 10:00 .default-version
drwxrwxr-x 2 pi pi   4096  1月 14 10:00 doc/
-rw-rw-r-- 1 pi pi     39  1月 14 10:00 .git
-rw-rw-r-- 1 pi pi     15  1月 14 10:00 .gitignore
drwxrwxr-x 3 pi pi   4096  1月 14 10:00 include/
-rw-rw-r-- 1 pi pi  11358  1月 14 10:00 LICENSE
-rw-rw-r-- 1 pi pi   5767  1月 14 10:00 Makefile.am
-rw-rw-r-- 1 pi pi   3891  1月 14 10:00 Makefile-bootstrap
-rw-rw-r-- 1 pi pi  36772  1月 14 10:00 Makefile.in
-rw-rw-r-- 1 pi pi   3265  1月 14 10:00 README.md
-rw-rw-r-- 1 pi pi    146  1月 14 10:00 repos.conf
drwxrwxr-x 2 pi pi   4096  1月 14 10:00 tests/
drwxrwxr-x 3 pi pi   4096  1月 14 10:00 third_party/
-rw-rw-r-- 1 pi pi   1013  1月 14 10:00 .travis.yml

另外子模块可以使用同样的方法解决,就不再额外赘述。

现在,可以重新构建库:

# 一共会构建2300个文件。由于已经构建过了,构建系统会缓存通过的测试,所以提示:no work to do.
pi@pi-NMH-WCX9:~/workspace/connectedhomeip$ ninja -C out/host/
ninja: Entering directory `out/host/'
ninja: no work to do.

此时,在 out/host 下可以看到 chip-tool 可执行文件。

下载ZAP工具

ZAP 工具由 Silicon Labs 和 ZAP 开源社区的开发人员构建和维护。它的名称和功能继承自 Zigbee 集群库,这是 Matter 数据模型的起点。ZAP 用于根据 Zigbee 集群库和相关的 Matter 代码模板为 Matter 应用程序生成代码。

ZAP 工具不再作为 Matter 存储库中的子模块存在。ZAP 工具可以从 GitHub 下载为二进制文件,或者您也可以克隆整个 ZAP 存储库并从头开始构建 ZAP 二进制文件。

Matter SDK提供了下载和运行ZAP的脚本:

pi@pi-NMH-WCX9:~/workspace/connectedhomeip/scripts/tools/zap$ ls
BUILD.gn                 generate.py     test_generate.py             version_update.py  zap_execution.py
check_file_existence.py  __pycache__     tests                        zap_bootstrap.sh   zapfile_formatter.py
convert.py               run_zaptool.sh  update_cluster_revisions.py  zap_download.py

下载 ZAP:

pi@pi-NMH-WCX9:~/workspace/connectedhomeip/scripts/tools/zap$ python3 zap_download.py 
2025-01-14 11:13:33 root INFO    Found required zap version to be: v2024.03.14-nightly
2025-01-14 11:13:33 root INFO    Fetching: https://github.com/project-chip/zap/releases/download/v2024.03.14-nightly/zap-linux-x64.zip
2025-01-14 11:27:15 root INFO    Data downloaded, extracting ...
2025-01-14 11:27:17 root INFO    Done extracting.
export ZAP_INSTALL_PATH=/home/pi/workspace/connectedhomeip/.zap/zap-v2024.03.14-nightly

设置环境ZAP环境变量:

export ZAP_INSTALL_PATH=/home/pi/workspace/connectedhomeip/.zap/zap-v2024.03.14-nightly

运行 ZAP 工具:

# 先要设备ZAP环境变量
cd ~/workspace/connectedhomeip/scripts/tools/zap
./run_zaptool.sh

参考来源

connectedhomeip github

Matter sdk document

posted @ 2025-04-02 10:17  eiSouthBoy  阅读(119)  评论(0)    收藏  举报