【Ubuntu 20.04/22.04 LTS】最新 esp-matter SDK 软件编译环境搭建步骤

  • 仓库链接:esp-matter SDK
  • 官方软件说明:ESP Matter Programming Guide
  • 官方参考文档:使用 Matter-SDK 快速搭建 Matter 环境 (Linux)

环境要求

  • Ubuntu 20.04 或 Ubuntu22.04
  • 网络环境支持访问 Gihub

在安装 esp-matter SDK 软件编译环境之前,需要先安装相关工具链。

工具链安装准备:

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
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	

安装 ninja-build

sudo apt-get install ninja-build

使用 pip 安装以下 python 软件包

pip install --update pippython -m pip install pyyaml xlrdpython -m pip --version

安装 Python3 的环境

sudo apt-get install python3.8-venv python3.8-dev

安装 curses

sudo apt-get install libncurses5-dev

esp-matter SDK 软件编译环境需要依赖 esp-idf SDK 软件编译环境。推荐基于 esp-idf SDK v5.1.2 版本来搭建 esp-matter SDK Master 版本的软件编译环境。

接下来的步骤同样适用于 macOS 10.15 及以上版本的环境。

首先,安装 esp-idf SDK v5.1.2 版本的软件编译环境:

  • 克隆 esp-idf v5.1.2 版本的 SDK
cd ~mkdir espcd espgit clone -b v5.1.2 https://github.com/espressif/esp-idf.git
  • 克隆 esp-idf 子仓库
cd esp-idfgit submodule update --init --recursive
  • 设置 esp-idf SDK 环境变量并安装编译工具依赖
export IDF_PATH=$(pwd)./install.sh . ./export.sh

然后安装 esp-matter SDK Master 版本的软件编译环境:

  • 克隆 esp-matter SDK
cd ~/espgit clone https://github.com/espressif/esp-matter.git
  • 克隆 esp-matter SDK 子仓库
cd esp-mattergit submodule update --init --recursivegit submodule update --init --recursive -fgit pull
  • 设置 esp-matter SDK 环境变量并安装编译工具依赖
export ESP_MATTER_PATH=$(pwd)./install.shcd ./connectedhomeip/connectedhomeip/scriptssource ./activate.shcd ../../... ./export.sh
  • 对例程进行编译测试
cd examples/lightrm -rf buildidf.py fullcleanidf.py set-target esp32idf.py build
  • 例程编译测试结果

在这里插入图片描述

  • 例程测试方法参见:如何测试 esp-matter_example_light 例程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/671741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven详细配置整理

Maven的作用 在Javaweb开发中,需要使用大量的jar包,需要手动去导入,Maven能够自动帮我们导入和配置这个jar包。 对于新手Maven就是用来方便导入jar包的! Maven的核心思想:约定大于配置 有约束,不要去违…

【远程通信系统】服务端初始化

服务器架构:libevent 线程池 数据库:MySQL 有两张表:chat_user和chat_group,分别保存用户信息和群信息 在线用户和群的保存: struct User {std::string name;//账号(用户名struct bufferevent* bev;//客…

C++ 动态规划 状态压缩DP 最短Hamilton路径

给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。 Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。 输入格式 第一行输入整数 n 。 接下来 n 行每行 n 个整数,其中第 i 行…

网络基础(三)

网络层与数据链路层 1.网络层2.IP2.1 基本概念2.2 协议头格式2.3 网段划分2.4 特殊的IP地址2.5IP地址的数量限制2.6 私有IP地址和公网IP地址2.7 路由 3.数据链路层4.以太网(MAC帧协议)4.1 认识以太网4.2 以太网帧格式4.3 认识MAC地址4.4 对比理解MAC地址…

51 -25 Scene as Occupancy 3D占用作为场景表示 论文精读

本文阅读的文章是Scene as Occupancy,介绍了一种将物体表示为3D occupancy的新方法,以描述三维场景,并用于检测、分割和规划。 文章提出了OccNet和OpenOcc两个核心概念。 OccNet 3D占用网络是一种以多视图视觉为中心的方法,通过…

14.0 Zookeeper环球锁实现原理

全局锁是控制全局系统之间同步访问共享资源的一种方式。 下面介绍zookeeper如何实现全民锁,讲解他锁和共享锁两类全民锁。 排他锁 排他锁(Exclusive Locks),又被称为写锁或独占锁,如果事务T1对数据对象O1加上排他锁…

#免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程

Mac电脑苹果芯片读写NTFS硬盘bash脚本 (ntfs.sh脚本内容在本文最后面) ntfs.sh脚本可以将Mac系统(苹果M系芯片)上的NTFS硬盘改成可读写的挂载方式,从而可以直接往NTFS硬盘写入数据。此脚本免费,使用过程中无需下载任何收费软件。…

C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法

目录 一、使用的方法 1.使用Array.Copy方法 2.Copy(Array, Int32, Array, Int32, Int32) 3. 使用自定义的方法 二、实例 1.示例1:使用Array.Copy方法 2.示例2:使用自定义的方法 一、使用的方法 1.使用Array.Copy方法 首先定义了一个名为InsertAr…

CCF-CSP 202206-2 寻宝!大冒险!

CCF-CSP 202206-2 寻宝!大冒险! 😸题目要求🐈‍⬛题目背景🐈‍⬛问题描述🐈‍⬛输入格式🐈‍⬛输出格式🐈‍⬛样例说明🎶样例1输入🎶样例1输出🎶样…

容器库(4)-std::forward_list

std::forward_list是可以从任何位置快速插入和移除元素的容器,不支持快速随机访问,只支持正向迭代。 本文章的代码库: https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器或者另…

qt学习:arm摄像头+c调用v412框架驱动+qt调用v412框架驱动 显示摄像头画面

目录 跟内核进行数据通信的函数 编程步骤 c代码 头文件 打开摄像头文件 /dev/videox 获取当前主机上(开发板)摄像头列表信息 设置当前摄像头的画面格式 比如说 设置 采集图像的宽度为640 高度 480 在内核空间中,申请一个缓冲区队列…

【 buuctf-面具下的 flag】

直接 binwalk 提取图片内容其中 zip 为伪加密(如下图),在 macOS 上当我运行 binwalk -e 指令来提取图片中内容是,zip可以自动解压出来 flag.vmdk,不需要修改压缩源文件目录区的全局方式位标记值。 在 kali Linux 下&am…

RabbitMQ-4.MQ的可靠性

MQ的可靠性 4.MQ的可靠性4.1.数据持久化4.1.1.交换机持久化4.1.2.队列持久化4.1.3.消息持久化 4.2.LazyQueue4.2.1.控制台配置Lazy模式4.2.2.代码配置Lazy模式4.2.3.更新已有队列为lazy模式 4.MQ的可靠性 消息到达MQ以后,如果MQ不能及时保存,也会导致消…

论文阅读-Automated Repair of Programs from Large Language Models

文章主旨:研究了Codex自动生成的程序中的错误,并探讨了现有的程序修复(APR)工具以及新发布的Codex-e是否能够修复自动生成的有缺陷的程序。 现在基于大语言模型,输入自然语言,生成代码的应用非常普遍。但是…

golang 中间件使用

1、自定义中间件函数 func CustomMiddleware() gin.HandlerFunc {return func(c *gin.Context) {// 在请求之前执行的逻辑fmt.Println("执行自定义中间件 - 请求之前")// 调用链中的下一个处理程序c.Next()// 在请求之后执行的逻辑fmt.Println("执行自定义中间…

立足智能存取解决方案|HEGERLS智能托盘四向车储存制动能量 实现能源回收

对于商业配送和工业生产的企业而言,如何能高效率、低成本进行低分拣、运输、码垛、入库,用以提升仓库空间的利用效率,是现在大多企业急需要解决的行业痛点。对此,为了解决上述痛点,近年来,物流仓储集成商、…

常用TS总结

基本用法 普通 const num: number 10const isStop: boolean falseconst title: string 常用TS总结const curName: null nullconst curType: undefined undefinedconst birthday: Date new Date() 对象 // typetype LoginParams {account: string}// interfaceinterfac…

docker常用10条容器操作命令

Docker 中一些常用的容器操作命令,我们可以根据需要使用这些命令来管理和操作 Docker 容器。我们这次以Hell-world这个镜像为例来说明: 1. docker pull hello-world #拉取hell-world镜像 2. docker images # 查看本地拉取的镜像 3. docker run hello…

Maven:项目无法产生Maven Dependencies且无法update project报cannot nest错误

找自己出错项目的.classpath文件&#xff0c;打开&#xff0c;ctrlf&#xff0c;找是否有以下文件&#xff0c;如果没有在末尾加进去&#xff0c;再refresh项目即可&#xff1a; <classpathentry kind"con" path"org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINE…

【python】绘制爱心图案

以下是一个简单的Python代码示例&#xff0c;它使用turtle模块绘制一个代表爱和情人节的心形图案。 首先&#xff0c;请确保计算机上安装了Python和turtle模块。然后&#xff0c;将以下代码保存到一个.py文件中&#xff0c;运行它就可以看到爱心图案的绘制过程。 import turt…