Ubuntu如何安装ESP32-idf

参考文章:


Ubuntu配置ESP-IDF:

Linux 和 macOS 平台工具链的标准设置 - ESP32 - — ESP-IDF 编程指南 v5.4 文档

知乎

https://zhuanlan.zhihu.com/p/963186891

通过WSL2连接USB串口调试ESP32

通过WSL2连接USB串口调试ESP32_windows wsl连接串口-CSDN博客

windows官网

连接 USB 设备 | Microsoft Learn

WSL端口无法显示问题

WSL端口无法显示问题-CSDN博客 


1.0 Why


为了在 ESP32 中使用 ESP-IDF,需要根据操作系统安装一些软件包。可以参考以下安装指南,安装 Linux 和 macOS 的系统上所有需要的软件包。

在使用下面的这条指令之前先试用这条指令更新一下软件源列表:

sudo apt-get update

编译 ESP-IDF 需要以下软件包。请根据使用的 Linux 发行版本,选择合适的安装命令。

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

注:


  • 使用 ESP-IDF 需要 CMake 3.16 或以上版本。较早的 Linux 发行版可能需要升级自身的软件源仓库,或开启 backports 套件库,或安装 "cmake3" 软件包(不是安装 "cmake")。

  • 如果上述列表中没有当前所用系统,请参考所用系统的相关文档,查看安装软件包所用的命令。


命令:git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git


工具包文件说明:

docs :README-esp-matter.md README-install.md README-jihu-mirror.md README-submodule-update.md,这些文件都是一些说明,安装说明或者极狐镜像的使用。

install.sh 执行这个脚本安装idf

jihu-mirror.sh 执行这个脚本 会将github的下载源更改成镜像源,加快下载速度

LICENSE 许可说明,没啥用

README_cn.md docs中的文件说明,整体流程说明

submodule-update.sh 执行这个脚本安装submodule


2.0 更改国内源


命令:. ./esp-gitee-tools/jihu-mirror.sh set


3.0 拉取源码


 命令:git clone --recursive https://github.com/espressif/esp-idf.git

一般情况下建议从github上拉取源码

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh


切换esp-idf版本分支到v5.2:git checkout v5.2

 更换pip源:也可以不做

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com


安装编译工具:./install.sh,可以先试用ls -l install.sh查看文件的权限

如果权限不够使用chmod + x fileName【文件的名字需要添加权限的】 添加文件权限


4.0 配置编译环境


使能配置环境生效:

source export.sh
// 添加环境变量
echo "source ~/esp32/esp-idf/export.sh" >> ~/.bashrc


给指令起别名:通过别名可以运行esp-idf的环境

 把这句话加进去:alias get_idf='. $HOME/esp/esp-idf/export.sh'

重启终端


运行ESP32-idf,请在需要运行 ESP-IDF 的终端窗口运行以下命令:

. $HOME/esp/esp-idf/export.sh


果需要经常运行 ESP-IDF,可以为执行 export.sh 创建一个别名,具体步骤如下:

alias get_idf='. $HOME/esp/esp-idf/export.sh'

 


5.0 下载代码例程




拷贝项目例程:

ESP-IDF 编译系统不支持 ESP-IDF 路径或其工程路径中带有空格

cd ~/espcp -r $IDF_PATH/examples/get-started/hello_world .


请进入 hello_world 目录,设置 ESP32 为目标芯片,然后运行工程配置工具 menuconfig

cd ~/esp/hello_world
idf.py set-target esp32
idf.py menuconfig

设置芯片的型号指令:idf.py set-target esp32c2

编译成功烧录:idf.py -p com flash

虚拟机是不能直接使用windows上的端口的,要实现使用windows上的端口要进行一些配置可以参考这篇文章的链接:连接 USB 设备 | Microsoft Learn


本指南将演练使用 USB/IP 开源项目 usbipd-win 将 USB 设备连接到在 WSL 2 上运行的 Linux 发行版所必要的步骤。

在 Windows 计算机上设置 USB/IP 项目将启用常见的开发人员 USB 场景,例如刷写 Arduino 或访问智能卡读取器。

更新WSL到最新版本


Windows中 安装usbipd-win

WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目。

内核要求

若要将 USBIPD 与适用于 Linux 的 Windows 子系统 (WSL) 配合使用,则需要具有 Linux 内核版本 5.10.60.1 或更高版本。 如果已安装的内核版本低于 5.10.60.1,则可以通过使用 wsl --shutdown 先关闭 WSL 的任何正在运行的实例,然后运行以下命令来更新它:wsl --update

在 WSL 上安装 USBIPD

  1. 转到 usbipd-win 项目的最新发布页。

  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。

  3. 运行下载的 usbipd-win_x.msi 安装程序文件。




 安装刚刚下载的程序


WSL2安装 linux-tools/hwdata

sudo apt install linux-tools-5.4.0-77-generic hwdatasudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

 


列出当前usb设备

出现这个错误看看该如何解决?

taohuang@DESKTOP-L13FO4Q:~$ usbipd list
WARNING: usbipd not found for kernel 5.15.167.4-microsoftYou may need to install the following packages for this specific kernel:linux-tools-5.15.167.4-microsoft-standard-WSL2linux-cloud-tools-5.15.167.4-microsoft-standard-WSL2You may also want to install one of the following packages to keep up to date:linux-tools-standard-WSL2linux-cloud-tools-standard-WSL2

请注意,由于 WSL2 的特殊性,不是所有的 Linux 功能都能直接在 WSL2 中正常工作,尤其是那些需要直接访问硬件的功能,比如 usbipd。此外,微软可能会对 WSL2 的内核进行定制,这可能导致某些标准的 Linux 工具或模块不完全兼容。

要安装上述建议的包,请确保你的 APT 源列表是最新的,并且包含有正确的 WSL2 内核工具源。然后你可以尝试安装推荐的包:

sudo apt-get update

sudo apt-get install linux-tools-5.15.167.4-microsoft-standard-WSL2 linux-cloud-tools-5.15.167.4-microsoft-standard-WSL2

 上面的步骤可以不做,可以只做下面的即可


上面的那个问题重新打开Powershell窗口输入:usbipd list

 通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID。


在附加 USB 设备之前,必须使用命令 usbipd bind 来共享设备,从而允许它附加到 WSL。 这需要管理员权限。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。 运行命令后,请再次使用命令 usbipd list 验证设备是否已共享。

usbipd bind --busid 4-4

 



若要附加 USB 设备,请运行以下命令。 (不再需要使用提升的管理员提示。)确保 WSL 命令提示符处于打开状态,以使 WSL 2 轻型 VM 保持活动状态。 请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 附加到 WSL 后,任何作为 WSL 2 运行的分发版本都可以使用 USB 设备。 使用 usbipd list 验证设备是否已附加。 在 WSL 提示符下,运行 lsusb 以验证 USB 设备是否已列出,并且可以使用 Linux 工具与之交互。

usbipd attach --wsl --busid <busid>

打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:

lsusb

 

 你应会看到刚刚附加的设备,并且能够使用常规 Linux 工具与之交互。 根据你的应用程序,你可能需要配置 udev 规则以允许非根用户访问设备。

在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell 运行此命令:

usbipd detach --busid <busid>

注意:这条指令如果不断开连接的话不要执行,否则要使用指令重新开启


WSL2下使用ls /dev/tty*

变更权限:sudo chmod a+rw /dev/ttyUSB0


请使用以下命令,编译烧录工程:idf.py set-target esp32c2

 

idf.py build

 




 乱码问题参考这个程序即可:ESP32解决监视器乱码问题-CSDN博客

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

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

相关文章

互联网架构变迁:从 TCP/IP “呼叫” 到 NDN “内容分发” 的逐浪之旅

本文将给出关于互联网架构演进的一个不同视角。回顾一下互联网的核心理论基础产生的背景&#xff1a; 左边是典型的集中控制通信网络&#xff0c;很容易被摧毁&#xff0c;而右边的网络则没有单点问题&#xff0c;换句话说它很难被全部摧毁&#xff0c;与此同时&#xff0c;分…

LeetCode:108.将有序数组转换为二叉搜索树

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;108.将有序数组转换为二叉搜索树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff…

机器人碳钢去毛刺,用大扭去毛刺主轴可轻松去除

在碳钢精密加工的最后阶段&#xff0c;去除毛刺是确保产品质量的关键步骤。面对碳钢这种硬度较高的材料&#xff0c;采用大扭矩的SycoTec去毛刺主轴&#xff0c;成为了行业内的高效解决方案。SycoTec作为精密加工领域的领军品牌&#xff0c;其生产的高速电主轴以其卓越的性能&a…

【深度学习入门_基础篇】概率论

开坑本部分主要为基础知识复习&#xff0c;新开坑中&#xff0c;学习记录自用。 学习目标&#xff1a; 随机事件与概率、随机变量及其分布、多维随机变量及其分布、大数定律与中心极限定理。 强烈推荐此视频&#xff1a; 概率论_麻省理工公开课 废话不多说&#xff0c;直接…

【ASP.NET学习】ASP.NET MVC基本编程

文章目录 ASP.NET MVCMVC 编程模式ASP.NET MVC - Internet 应用程序创建MVC web应用程序应用程序信息应用程序文件配置文件 用新建的ASP.NET MVC程序做一个简单计算器1. **修改视图文件**2. **修改控制器文件** 用新建的ASP.NET MVC程序做一个复杂计算器1.创建模型&#xff08;…

IoT平台在设备远程运维中的应用

IoT平台是物联网技术的核心组成部分&#xff0c;实现了设备、数据、应用之间的无缝连接与交互。通过提供统一的设备管理、数据处理、安全监控等功能&#xff0c;IoT平台为企业构建了智能化、可扩展的物联网生态系统。在设备远程运维领域&#xff0c;IoT平台发挥着至关重要的作用…

大数据运维管理体系的搭建

[〇]关于本文 本文将介绍一种大型集群的运维管理体系 【大型集群的管理大于解决问题】意在大规模数据集群的运维过程中&#xff0c;系统化、规范化的管理措施比单纯的故障处理更为关键。通过有效的管理&#xff0c;可以预防问题的发生、提升系统的稳定性和性能&#xff0c;从而…

基于 Nuxt3 + Obsidian 搭建个人博客

Nuxt是一个用Vue来编写的&#xff0c;可用来创建类型安全、高性能和生产级全栈 Web 应用程序和网站的全栈框架。后端是 Nitro&#xff0c;一个可以被单独使用的Web服务端框架。 作为一个全栈框架&#xff0c;不仅具备了比使用Vue开发SPA客户端更好的开发体验&#xff0c;还能享…

Leetcode刷题笔记—栈与队列

栈与队列 栈与队列是非常重要的基础数据结构&#xff0c;本文汇总了《代码随想录》和《Leetcode101》中关于栈与队列的练习题及其题解&#xff0c;旨在帮助读者更深入地理解相关概念和解题思路。如有疏漏或错误&#xff0c;恳请批评指正。 文章目录 栈与队列1. 栈[232. 用栈实…

MongoDB如何使用

1.简单介绍 MongoDB是一个开源、高性能、无模式的文档型数据库&#xff0c;当初的设计就是用于简化开发和方便扩展&#xff0c;是NoSQL数据库产品中的一种。是最 像关系型数据库&#xff08;MySQL&#xff09;的非关系型数据库。 MongoDB是一个基于分布式文件存储的数据库由C语…

二、BIO、NIO编程与直接内存、零拷贝

一、网络通信 1、什么是socket&#xff1f; Socket 是应用层与 TCP/IP 协议族通信的中间软件抽象层&#xff0c;它是一组接口&#xff0c;一般由操作 系统提供。客户端连接上一个服务端&#xff0c;就会在客户端中产生一个 socket 接口实例&#xff0c;服务端每接受 一个客户端…

git flow流程拆解实践指导

常听人说到git flow,但实际开发过程中是如何落地的? 现在让我们按实际工作中的步骤进行拆解,大家完全可以不用通读,当遇到相应流程步骤时能用上本说明进行查阅参考即可,希望对于推进git flow流程的实际落地起到一些积极的作用. 目录 正常版本开发 开始一个特性开发提测一个版…

Ollama私有化部署大语言模型LLM

目录 一、Ollama介绍 二、安装Ollama 1、标准安装 2、国内加速 三、升级Ollama版本 四、使用Ollama 1、启动ollama服务 systemctl start ollama.service ollama serve 2、使用ollama命令 ollama run 运行模型 ollama ps 查看正在运行的模型 ollama list 查看(本地)…

Matlab一些使用技巧

代码分段 两个百分号就可以实现代码的分段&#xff0c;不同段之间会以不同的背景色显示&#xff0c;方便调试 如下&#xff1a; %% 腐蚀 stlen TimeWidth*Fs/50; %线性算子的长度&#xff0c;1/100的脉宽&#xff0c;对应0.5us&#xff0c;15个采样点 stlen 100; SE strel…

改进萤火虫算法之七:基于自适应机制的萤火虫算法(Adaptive Firefly Algorithm, AFA)

基于自适应机制的萤火虫算法(Adaptive Firefly Algorithm, AFA)是一种结合了萤火虫算法与自适应调整机制的优化算法。 一、基本原理 萤火虫算法是一种基于群体智能的优化算法,其灵感来源于自然界中萤火虫通过闪光进行信息交互和相互吸引的行为。而基于自适应机制的萤火虫算法…

RabbitMQ基础(简单易懂)

RabbitMQ高级篇请看&#xff1a; RabbitMQ高级篇-CSDN博客 目录 什么是RabbitMQ&#xff1f; MQ 的核心概念 1. RabbitMQ 的核心组件 2. Exchange 的类型 3. 数据流向说明 如何安装RabbitQueue&#xff1f; WorkQueue&#xff08;工作队列&#xff09;&#xff1a; Fa…

VScode python 远程调试

https://zhuanlan.zhihu.com/p/564709397 VScode python 远程调试 launch.json 改变conda环境&#xff0c;直接在右下角选择

RuoYi Cloud项目解读【四、项目配置与启动】

四、项目配置与启动 当上面环境全部准备好之后&#xff0c;接下来就是项目配置。需要将项目相关配置修改成当前相关环境。 1 后端配置 1.1 数据库 创建数据库ry-cloud并导入数据脚本ry_2024xxxx.sql&#xff08;必须&#xff09;&#xff0c;quartz.sql&#xff08;可选&…

【深度学习】布匹寻边:抓边误差小于3px【附完整链接】

布匹寻边 项目简介 布匹寻边是指布料裁剪过程中&#xff0c;通过AI寻边技术自动识别布匹的边缘&#xff0c;将检测到的边缘信息输出&#xff0c;确保裁剪的准确性&#xff0c;减少浪费&#xff0c;并提高生产效率。 项目需求 将打满针眼的布匹边缘裁剪掉&#xff0c;且误差小…

LKT4304新一代算法移植加密芯片,守护物联网设备和云服务安全

凌科芯安作为一家在加密芯片领域深耕18年的企业&#xff0c;主推的LKT4304系列加密芯片集成了身份认证、算法下载、数据保护和完整性校验等多方面安全防护功能&#xff0c;可以为客户的产品提供一站式解决方案&#xff0c;并且在调试和使用过程提供全程技术支持&#xff0c;针对…