Matter Project 入门 – Matter开发环境设置
如果您尚未在计算机上本地运行 Ubuntu,您将需要一个替代方案来开发 Matter 设备。
你需要什么
- 用于构建 Matter 终端设备固件的 Linux 环境。
- 我们将为这个项目使用 Ubuntu 21.10 服务器,但任何 Ubuntu 20.04 或更高版本都可以安装在 RaspberryPi 4 上作为 Matter 控制器。您可以按照此处的说明进行操作。
Git
安装在您的构建机器上。您可以使用包管理器安装:
sudo apt install git
- Matter依赖项已安装
- 要调试/闪存终端设备,我们需要在您的机器上安装与 Jlink 兼容的 Flash Utility 您可以 在此处获取此软件。
[ Windows 64 位 (exe) , macOS 64 位 (pkg) , Linux 64 位 (deb) ] - 可支持 Matter 开发的 Silicon Labs 无线入门套件完整列表可在此 页面上找到重要提示: 由于 RAM 限制,EFR32MG21 平台上的物质支持现已弃用首选和最经济的选择是我们的 Thunderboard Sense 2
选择 Linux 环境(Native/VM/WSL)
物质需要在 UNIX 环境中构建
下面列出了几个选项:
- 通过直接在计算机上安装发行版(Ubuntu 21.10、Mac)来使用裸机环境 - 推荐
- 通过直接在 Raspberry Pi 上安装发行版来使用裸机环境 (Ubuntu Server 21.10 64 位)
- 安装 Virtualbox 并创建虚拟机 - 推荐:为此,请下载 VirtualBox安装 VirtualBox 后,创建一个新的虚拟机作为 Linux Ubuntu 64 位。然后从此处可用的 iso 或此处已 准备好的虚拟磁盘 安装 Linux 。如果您从 iso 安装,请将 VM 磁盘大小至少设置为 20GB,以便为安装和 Matter SDK 留出空间。
- 配置虚拟机:在运行 VM 之前,我们需要配置网络设置并将网络适配器更改为桥接模式。
- 打开 VirtualBox 并单击 Linux VM 的“Settings”。
- 单击“Network”并选择“Adapter 1”选项卡。
- 确保在“Attached to:”框中选择了“Bridge Adapter”。
- 单击确定。
- 配置虚拟机:在运行 VM 之前,我们需要配置网络设置并将网络适配器更改为桥接模式。
- 使用 WSL 在 Windows 上使用 UbuntuWSL 是 Windows 上默认禁用的功能你可以按照这个微软 WSL 入门 来安装它重要提示: 选择 Linux 发行版时,请确保选择 Ubuntu
入门
- cd 到您的主目录(如果还没有的话):
cd ~
- 检查你是否安装了 git
sudo apt update
sudo apt upgrade -y
sudo apt install git
如果某些软件包可以升级,请随意升级, 但请确保将 apt update 作为最后一个命令运行 - 安装依赖项。 下面的依赖项与下一节签出的 Matter GitHub 提交哈希相关联。
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
现在只需重新启动一次
sudo reboot
- 确保安装了 JLink Flasing Utility有两个选项可以使用新构建的二进制文件来刷新您的设备重要说明 WSL 不支持刷写操作(您需要将二进制文件复制到主机并使用简单命令来刷写设备)然后,您可能无法使用命令行实用程序来刷新插入的入门工具包要刷新您的设备,请在 WSL 上构建您的二进制文件,但
cp
它们在 Windows 文件系统中/mnt/c/<location>
- 添加 Simplicity Commander(可选但推荐,仅适用于 VM 和 Bare Metal 用户)Simplicity Commander 可用于使用您将构建的二进制文件来刷新您的 Starter Kit请注意,commander 不能在 Raspberry Pi 上运行,只能在 Windows、Mac 和 Linux x86_64 平台上运行如果您在 WSL 上构建二进制文件但在 Windows 文件系统中找到它们,您还可以使用 Windows 中的 Commander首先下载适用于您计算机的实用程序: Linux 安装程序 Windows 安装程序 Mac 安装程序请注意,Commander 由 Simplicity Studio 安装在
<StudioInstallDir>SimplicityStudiov5developeradapter_packscommander
或者根据它们的 README 安装每个包和依赖项注意:如果您想使用 Matter 的 flash 帮助脚本,请将 Commander 添加到您的 shell 搜索路径如果未完成,您将必须执行示例应用程序指南中提供的 2 个额外步骤注意:如上所述,这不适用于 Raspberry Pi OS 和 WSL - 使用 JLinkExe 实用程序(仅 VM、Bare Metal 和 Raspberry OS 用户需要)你可以在你的系统上安装 JLink 来刷新你构建的二进制文件前往 JLink 下载页面 寻找适合您平台的软件包并下载为了便于在命令行环境中使用,我们在 Dropbox 上托管了一些包:对于 Native Linux 环境或 WSL,下载如下:
wget https://www.dropbox.com/s/leolh6222ms31r0/JLink_Linux_V758c_x86_64.deb
然后使用安装:
sudo apt update
sudo dpkg -i JLink_Linux_V758c_x86_64.deb
sudo apt update
- 添加 Simplicity Commander(可选但推荐,仅适用于 VM 和 Bare Metal 用户)Simplicity Commander 可用于使用您将构建的二进制文件来刷新您的 Starter Kit请注意,commander 不能在 Raspberry Pi 上运行,只能在 Windows、Mac 和 Linux x86_64 平台上运行如果您在 WSL 上构建二进制文件但在 Windows 文件系统中找到它们,您还可以使用 Windows 中的 Commander首先下载适用于您计算机的实用程序: Linux 安装程序 Windows 安装程序 Mac 安装程序请注意,Commander 由 Simplicity Studio 安装在
- 将您的 Thunderboard Sense 2 插入您的 Raspberry Pi 并检查它是否已枚举
ls -ail /dev/ttyACM* 450 crw-rw-rw- 1 root dialout 166, 0 Nov 29 19:14 /dev/ttyACM0
安装 Matter SDK 开发环境:
(您在两者上运行此设置
- Raspberry Pi 4:运行像 Chip-tool 这样的 Matter 控制器来调试设备。
- Linux Machine (VM/WSL):构建 Matter 终端设备固件。
- 首先克隆 Matter 及其子模块:
git clone https://github.com/project-chip/connectedhomeip
cd connectedhomeip
git checkout <commit hash> // 如果在 ToT 上工作则跳过
现在您可以克隆存储库子模块
git submodule update --init
在树莓派上,这可能需要一段时间,确保在子模块更新之前不要忘记 git checkout(否则您将花费一些时间进行调试或只是再做一次)
通过运行激活脚本开始构建环境部署。
- 注意: 在树莓派上,这可能需要一段时间(在 Rpi4 模型 B 上大约需要 40 分钟),请确保不要忘记从先决条件安装依赖项。 如果您遇到该问题,请查看下面的故障排除部分如果如上成功,调用
activate.sh script
source scripts/activate.sh
Setting environment variables for CIPD package manager...done
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 (1m4.9s)
Setting up Python environment.....done (15m45.0s)
Setting up pw packages............skipped (0.1s)
Setting up Host tools.............done (0.1s) ACTIVATOR! This sets your shell environment variables.Activating environment (setting environment variables):
Setting environment variables for Python environment.....done
Setting environment variables for Host tools.............done
Checking the environment:20211130 22:49:49 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.shTo deactivate this environment, run this:deactivate
您现在可以查看 Matter 应用程序示例或 Matter Controller 教程。
疑难解答
如果您完全遵循前面的所有部分(包括 git checkouts 和先决条件),那么您应该拥有一个完美运行的 Matter 开发环境
如果不知何故您仍然有问题,我们确定了一些您可以验证您没有错过任何步骤的场景:
- 引导失败
- 确保您按照 先决条件安装了所有依赖项。这涉及重新启动不需要其他依赖项,尤其是对于 gn 错误(不要从 apt 安装 generate-ninja)完成后,在再次引导之前重新克隆并重新签出 Matter 存储库
- 确保您拥有正确的 Raspberry OS如果为 Matter 开发,实际上必须使用 Ubuntu Server 64bits 20.04 LTS3 (arm64) 或更高版本(推荐 21.10)如果您遇到上面提到的缺失 gn,请确保您在 Ubuntu 而不是 Debian 上运行
- Python 3 出现相关错误由于框架的 alpha 状态,已知 raspberry 环境在引导时不稳定。如果您遇到此类问题,请按照以下说明操作:
- 重启树莓派
sudo reboot
- 返回
~/connectedhomeip
cd ~/connectedhomeip
- 再次运行引导脚本
source scripts/bootstrap.sh
- 再次运行激活脚本
source scripts/activate.sh
在这一点上,它要么工作要么给你一个关于 pw 的错误(PigWeed)如果是,则转到下一个错误
- 重启树莓派
- PW : 命令未发现 错误
- 进入你的 matter_dev 目录:
cd ~
- 删除整个 Matter 存储库
rm -rf connectedhomeip
- 重启Raspberry Pi
sudo reboot
- 再次执行该页面的所有步骤(clone, checkout, bootstrap,和activate)
- 进入你的 matter_dev 目录: