当前位置: 首页 > news >正文

【Matter】基于Ubuntu 22.04 编译chip-tool工具

前言

编译过程有点曲折,做下记录,过程中,有参考别人写的博客,也看github 官方介绍,终于跑通了~

环境说明:

  • 首先需要稳定的梯子,可以访问“外网”
  • ubuntu 环境,最终成功实验在Ubuntu 22.04,应该主要体现在python 库的版本要求

基础:
关于梯子,我使用的是虚拟机NAT方式上网,走的主机windows 网络代理(clash 软件)
关于工具,另外git submodule 需要熟悉一下,有些库在网络状况可以的情况下,依然拉不下来,需要手动更新。

官方

https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/chip_tool_guide.md

https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/BUILDING.md

编译

1.clone 代码

git clone https://github.com/project-chip/connectedhomeip.git

看到有人分享用的siliconlabs 库的matter仓库,也是可以的,暂时不确定区别是什么

2.更新子模块

git submodule update --init --recursive

注意,这里大概率会出现拉取代码有问题,需要手动更新,可以将缺失的目录手动删除掉,然后使用下面命令可以拉取代码

git submodule update


比如编译时候提示找不到third_party/nlunit-test 文件,查看后发现文件夹内repo 目录是空的,手动删除掉,然后手动更新,通过find 命令查看文件,或者tree命令查看目录结构,验证文件成功下载

3.基本编译工具安装

sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev 
sudo apt-get install libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev 
sudo apt-get install python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-devsudo apt-get install libsdl2-dev

4.编译前准备

This script takes care of downloading GN, ninja, and setting up a Python environment with libraries used to build and test.

翻译过来就是会安装GN,和Python环境以及一些库,来编译。关于GN和python 的一些具体用法,后面再看下具体使用方法,这里很关键,成败有一半卡在这里,

source scripts/bootstrap.sh

下把正确的执行结果截图,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

细节!!! 这里不能用ssh 连接,来执行,在这里卡了比较久,直到看到这篇博客,在此之前,之前,已经问人、找博客、设置了各种代理,ssh 直连ubuntu 代理不生效(一语点醒梦中人-_-!!,感谢!!!)。

https://blog.csdn.net/digdugbomb/article/details/114403362

这里展开说下,粗鄙的理解做个记录:
看到的CPID 主要是pigweed在用,也是个开源项目pigweed。
在这里插入图片描述

所以,单独下载了代码,按照说明编译,也是报错的,打印信息都类似,看来是找对地方了,至少缩小范围。
遇到的问题,其实早在2020年已经有补丁了,推荐的办法是请点击,点击进去可以看到是修改了python 一段代码,关于使用代理下载,貌似是还有概率出现,要设置https代理为走http
在这里插入图片描述
关于代理设置我有点问题,因为我的clash 软件使用的是7890端口,ip 是10.10.122.96.我理解应该设置为
export https_proxy=http://10.10.122.96:7890

如果我设置成使用虚拟机ip方式https_proxy:=http://192.168.79.129:8080,是不应该是一样的??待确认,明确指导的还望指导

5.激活

source scripts/activate.sh

在这里插入图片描述
6.编译
参照文档开始编译了
在这里插入图片描述

在这里插入图片描述
这里报错了,还搜索了半天,准备在线安装的,无济于事,想着目的是编译chip-tool 直接编译试一下吧,转而编译chip-tool,执行命令,

./scripts/examples/gn_build_example.sh examples/chip-tool out/standalone

提示这个nlassert 编译失败,原来是自己编译出来,其他地方调用的。
在这里插入图片描述
更新文件后
在这里插入图片描述
又重新编译,保险期间,执行了
···
source scripts/bootstrap.sh
source scripts/activates.sh
···
都编译通过,基本就没啥问题了
在这里插入图片描述
成功的最后几个瞬间:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题点:
1.提示command pw not found
https://github.com/project-chip/connectedhomeip/issues/26141
2.不要ssh 直连梯子下载
https://blog.csdn.net/digdugbomb/article/details/114403362

有价值链接:
https://github.com/project-chip/connectedhomeip/issues/2893

总结

容易遇到的问题,应该比较全面了,避免折腾半天。
最容易忽略的应该就是避免ssh 连接虚拟机来操作,看了好多博客都没说到这一点。

综合理解:
首先要有梯子
其次子模块没有更新的话,手动删除,手动更新
CPID下载那里,时间过个五分钟左右不行,基本出问题了,再等久了也没用
在ubuntu 上控制台上操作

http://www.lryc.cn/news/98828.html

相关文章:

  • 将 MongoDB 的 List<Document> 转换为对象列表
  • 【Linux下6818开发板(ARM)】SecureCRT串口和交叉编译工具(巨细版!)
  • 应届生如何快速找Java开发工程师,先学会这17个基础问题
  • 数学建模学习(5):数学建模各类题型及解题方案
  • 【学习笔记】视频检测方法调研
  • idea terminal npm指令无效
  • 低代码开发平台源码
  • 【UE5 多人联机教程】04-加入游戏
  • 自然语言处理从入门到应用——LangChain:模型(Models)-[大型语言模型(LLMs):缓存LLM的调用结果]
  • Python 算法基础篇之图的遍历算法:深度优先搜索和广度优先搜索
  • 文本缩略 文本超出显示省略号 控制超出省略的行数
  • 云原生架构
  • Java 生成随机数据
  • 基于OpenCV的红绿灯识别
  • JavaScript快速入门:ComPDFKit PDF SDK 快速构建 Web端 PDF阅读器
  • Flutter 网络请求
  • 吃透《西瓜书》第三章 线性模型:多元线性回归
  • 数据结构【排序】
  • 探索APP开发的新趋势:人工智能和大数据的力量
  • 超越传统:深入比较Bootstrap、Foundation、Bulma、Tailwind CSS和Semantic UI的顶级CSS框架!
  • 基于深度学习淡水鱼体重智能识别模型研究
  • Nginx专题(1)--linux安装nginx
  • 系统集成中级计算汇总
  • json.stringify的高级用法,和for of的原理
  • SpringCloudAlibaba微服务实战系列(三)Sentinel1.8.0+流控
  • mybatis - no getter for property,以及@JsonIgnore
  • 云原生周刊:K8s v1.28 中的结构化身份验证配置
  • 支持向量机概述
  • 安装x265
  • 设计模式-观察者模式