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

基于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 上控制台上操作。

相关文章:

基于Ubuntu 22.04 编译chip-tool工具

前言 编译过程有点曲折,做下记录,过程中,有参考别人写的博客,也看github 官方介绍,终于跑通了~ 环境说明: 首先需要稳定的梯子,可以访问“外网”ubuntu 环境,最终成功实验在Ubunt…...

opencv-17 脸部打码及解码

使用掩模和按位运算方式实现的对脸部打码、解码实例 代码如下: import cv2 import numpy as np #读取原始载体图像 lenacv2.imread("lena.png",0) #读取原始载体图像的 shape 值 r,clena.shape masknp.zeros((r,c),dtypenp.uint8) mask[220:400,250:350…...

JVM分享

JVM分享 官网:https://docs.oracle.com/javase/specs/jvms/se8/html/index.html Java代码的执行流程 我们编写完之后的java文件如果要运行,java文件会编译成class文件,在jvm中运行时ClassLoader会加载class文件,加载进来之后&a…...

Apache Dubbo CVE-2021-36162 挖掘过程

01 漏洞背景 发现该漏洞的起因是在分析 CVE-2021-30181 的脚本注入补丁的时候,意外发现了几个已被修复的 yaml 反序列化漏洞,还以为是未公开的Nday,查询后发现其实对应的是 CVE-2021-30180 漏洞的修复代码。通过查看补丁可以知道&#xff0c…...

开源框架面试题目整理

目录 SpringIOC SpringAOP Spring的生命周期 Spring Bean作用域 Spring Bean作用域并发安全 Spring循环依赖...

Mr. Cappuccino的第52杯咖啡——Mybatis环境搭建与使用

Mybatis环境搭建与使用 Mybatis介绍Mybatis环境搭建与使用基于XML方式-原生方式开发创建数据库表项目准备项目结构项目代码实体类中添加有参构造方法产生的问题 基于XML方式-mapper代理开发项目准备项目结构项目代码SQL映射文件中namespace未设置为接口全限定名产生的问题 基于…...

了解Unity编辑器之组件篇Tilemap(五)

Tilemap:用于创建和编辑2D网格地图的工具。Tilemap的主要作用是简化2D游戏中地图的创建、编辑和渲染过程。以下是一些Tilemap的主要用途: 2D地图绘制:Tilemap提供了一个可视化的编辑器界面,可以快速绘制2D地图,例如迷…...

Linux字符设备操作函数

Linux字符设备操作函数是指对字符设备进行打开、关闭、读取、写入、控制等基本操作的函数,它们通过字符设备结构体中的 file_operations 结构体来定义。常用的字符设备操作函数包括: 1、open: 当一个进程试图打开设备文件时,调用这个函数。开…...

吉林大学计算机软件考研经验贴

文章目录 简介政治英语数学专业课 简介 本人23考研,一战上岸吉林大学软件工程专硕,政治72分,英一71分,数二144分,专业课967综合146分,总分433分,上图: 如果学弟学妹需要专业课资料…...

2023-07-26力扣每日一题-区间翻转线段树

链接: 2569. 更新数组后处理求和查询 题意: 给两个等长数组nums1和nums2,三个操作: 操作1:将nums1的[l,r]翻转(0变1,1变0) 操作2:将nums2[any]变成nums2[any]nums1[any]*p&…...

Java设计模式之 -- 桥接模式

什么是桥接模式 桥接模式是一种结构型设计模式,也被称为“Handle/Body”。这种设计模式主要用于将抽象部分与它的实现部分分离,使它们可以独立地变化。这种方式有助于减少系统中的耦合性,增加了扩展性。 主要解决什么问题 桥接模式主要解决…...

【node.js】02-path模块

目录 1. path.join() 2. path.basename() 3. path.extname() 1. path.join() 使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下: path.join([...paths]) 例子: const path require(path)co…...

攻防世界-Reverse-re1

题目描述:菜鸡开始学习逆向工程,首先是最简单的题目 下载附件,执行程序,如下界面 1. 思路分析 没啥说的,既然题目都说是一道简单的逆向题,那么直接使用ida逆向即可,看逆向出的结果是否能写入到…...

AES加密的基本常识和封装类

AES加密的基本常识和封装类 AES(Advanced Encryption Standard)是一种对称密钥加密算法,被广泛用于保护敏感数据的安全性。它是一种块加密算法,意味着它将明文数据分成固定大小的块,并使用相同的密钥对每个块进行独立…...

elasticsearch使用记录

参考文章:https://elasticsearch-py.readthedocs.io/en/v8.8.2/ 参考文章:https://cuiqingcai.com/6214.html 参考文章:https://www.cnblogs.com/cupleo/p/13953890.html elasticsearch版本:8.8.2(软件包发行版) python版本&#…...

UNI-APP_横屏切换竖屏出现样式混乱问题

app从竖屏页面1进入竖屏页面2,再进入横屏,再返回,再返回从新回到竖屏页面1,再次进入竖屏页面2,发现竖屏页面2的所有图片字体都被放大了。再返回竖屏1,再进入竖屏2,一切又恢复正常。 解决跳转横…...

数据可视化(3)

1.饼状图 #饼状图 #pie(x,labels,colors,labeldistance,autopct,startangle,radius,center,textprops) #x,每一块饼状图的比例 #labels:每一块饼形图外侧显示的文字说明 #labeldistance:标记的绘制位置,相对于半径的比例&#xf…...

AI面试官:MD5、DES、RSA、AES加密

AI面试官:MD5、DES、RSA、AES加密 文章目录 AI面试官:MD5、DES、RSA、AES加密1. 什么是MD5加密?它在实际应用中有哪些场景?2. DES加密是什么?它在现实中的应用场景有哪些?3. 问题:RSA加密是什么…...

Shell脚本学习-$$特殊变量

$$特殊变量: 获取脚本执行的进程号(PID)。 [rootvm1 scripts]# cat test_pid.sh echo $$ > /tmp/a.pid sleep 300代码说明: 1)获取$$值,也就是当前脚本进程的PID值,重定向到/tmp/a.pid文件…...

vscode中python插件过新导致无法正常debug问题解决安装vscode以前版本python插件教程

您需要从.vsix文件安装它。您可以在此处找到它们。 下载所需.vsix版本的文件。您可能需要单击assets才能看到它们。 然后打开 VSCode,转到extensions-> 单击三个点 ->install from vsix并选择您的文件。 重启以后,就可以正常debug了!...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Map相关知识

数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

深度学习水论文:mamba+图像增强

🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...