Ubuntu 下搭建ESP32 ESP-IDF开发环境,并在windows下用VSCode通过SSH登录Ubuntu开发ESP32应用

news2025/6/4 0:34:47

Ubuntu 下搭建ESP32 ESP-IDF开发环境,网上操作指南很多,本来一直也没有想过要写这么一篇文章。因为我其实不太习惯在linux下开发应用,平时更习惯windows的软件操作,只是因为windows下开发ESP32的应用编译时太慢,让人受不了,所以最后还是选择搭建了一个Ubuntu系统下的ESP32 ESP-IDF的开发环境,并在window系统下通过SSH连接Ubuntu,这样就即可以在window下用esp-idf开发esp32的应用,又不用忍受window下编译的漫长等待。

一、安装依赖项

这里我们假设Ubuntu系统已经安装完毕。我使用的是ubuntu 24.04.2 LTS版本(非虚拟机,如果使用虚拟机安装,可能后面有一些步骤会略有不同)。

sudo apt update

sudo apt-get install vim 
sudo apt install git
sudo apt-get install python3

sudo apt install -y git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
 

 在ubuntu终端命令行分别输入以上命令并运行。这里一般不会出问题,不多说。

 二、获取ESP-IDF框架

 首先建立工作目录。

mkdir ~/esp
cd ~/esp

这里需要特别强调的一点是:用git命令来clone下来,这就可以可以同步最新的框架版本!不能直接一个downLoad 下载,发现会有错误,切记!

git clone -b v5.4 --recursive https://github.com/espressif/esp-idf.git

另外,官方提供了不少的子模块,我们也一起克隆下来。这里需要用到重定向脚本,我们先下载该脚本。

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

然后,我们利用该脚本获取子模块。

cd esp-idf
../esp-gitee-tools/submodule-update.sh

三、安装并设置工具链

除了 ESP-IDF SDK外,您还需要安装 并设置ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等!

cd ~/esp/esp-idf
./install.sh
 

这里需要注意的是,因为网络或其它原因,安装过程中可能会中断并报错,需要反复操作,直到最后出现下面的提示:

 All done! You can now run : 
. ./export.sh

看到这两行字符,那么恭喜你,ubuntu下的esp32开发环境基本搭建成功。

四、配置环境变量

每次打开新终端时,在esp-idf目录下运行:

source export.sh

或者:

. ./export.sh

 注意两个"."之间需要加一个空格。

成功后显示如下:

 

如果觉得每次找开新终端都要运行比较麻烦,也可以把该脚本添加到~/.bashrc

echo "source \$HOME/esp/esp-idf/export.sh" >> ~/.bashrc
source ~/.bashrc
 

五、验证安装

我们用官方提供的样例hello_world来验证上述安装、设置是否成功。

该样例目录:esp32/esp-idf/examples/get-started/hello_world

进入该目录后运行下列命令:

idf.py set-target esp32

idf.py build
idf.py -p /dev/ttyUSB0 flash monitor

 

 注意:实际设备端口号可能不是ttyUSB0,使用ls /dev/ttyUSB*查看可用端口。建议使用官方支持的Ubuntu LTS版本

六、设备权限设置

创建udev规则文件(这一节并非必要):

sudo nano /etc/udev/rules.d/99-esp32.rules
 

添加以下内容:

SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", MODE="0666"
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", MODE="0666"
 

重新加载规则:

sudo udevadm control --reload-rules
 

 七、window通过SSH连接Ubuntu

Ubuntu 系统SSH服务开启:

开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下通过SSH登陆到 Ubuntu了。

sudo apt-get install openssh-server

同样windows系统也要安装相应的工具软件或服务。我安装的是openssh,配置好环境后,在命令行窗口就可以通过SSH 登录Ubuntu。

 注意两台电脑要在同一个网段。

另外,当ubuntu重装后,那怕IP相同,再远程访问可能会有问题,可能出现如下提示:

 

解决办法如下:

 在windows命令行输入:sshkkeygen -R 192.168.3.165

 

八、Windows下VSCode的配置 

Windows下VSCode 配置esp-idf的开发,官方及网上的介绍很多也很详细,这里就不多说。

这一节,我们简单介绍如何配置VSCode,从而可以通过SSH登录Ubuntu,实现我们的终极目的,在windows下写代码,在Ubuntu下编译。

操作比较简单,按图所示操作就可以。

 

 

选第一个就可以。

 

输入Ubuntu的用户登录密码。

 第一次需要的时间会比较长。

至此,我们的开发环境搭建就成功了。 

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

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

相关文章

NodeMediaEdge接入NodeMediaServer

如何使用NME接入NMS 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中,拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 通过云平台协议注册到NodeMediaServer后,可以同NodeMediaServer结合使用。使用图形化的管理…

【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤

在Java开发的世界里,选择一个强大的集成开发环境(IDE)是迈向高效编程的第一步。而IntelliJ IDEA无疑是Java开发者中最受欢迎的选择之一。它以其强大的功能、智能的代码辅助和简洁的用户界面,帮助无数开发者快速构建和部署Java项目…

PHP7+MySQL5.6 查立得源码授权系统DNS验证版

# PHP7MySQL5.6 查立得源码授权系统DNS验证版 ## 一、系统概述 本系统是一个基于PHP7和MySQL5.6的源码授权系统,使用DNS TXT记录验证域名所有权,实现对软件源码的授权保护。 系统支持多版本管理,可以灵活配置不同版本的价格和下载路径&#…

【QQ音乐】sign签名| data参数加密 | AES-GCM加密 | webpack (下)

1.目标 网址&#xff1a;https://y.qq.com/n/ryqq/toplist/26 我们知道了 sign P(n.data)&#xff0c;其中n.data是明文的请求参数 2.webpack生成data加密参数 那么 L(n.data)就是密文的请求参数。返回一个Promise {<pending>}&#xff0c;所以L(n.data) 是一个异步函数…

3D虚拟工厂

1、在线体验 3D虚拟工厂在线体验 vue3three.jsblender 2、功能介绍 1. 全屏显示功能2. 镜头重置功能3. 企业概况信息模块4. 标签隐藏/显示功能5. 模型自动旋转功能6. 办公楼分层分解展示7. 白天/夜晚 切换8. 场景资源预加载功能9. 晴天/雨天/雾天10. 无人机视角模式11. 行人…

http传输协议的加密

创建目录存放签证 [rootserver100 ~]# mkdir /etc/nginx/certs [rootserver100 ~]# openssl req -newkey rsa:2048 -nodes -sha256 -keyout /etc/nginx/certs/timinglee.org.key -x509 -days 365 -out /etc/nginx/certs/timinglee.org.crt ..................................…

半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司

半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司 微振控制在现行国家标准《电子工业洁净厂房设计规范》GB50472中有关微振控制的规定主要有&#xff1a;洁净厂房的微振控制设施的设计分阶段进行&#xff0c;应包括设计、施工和投产等各阶段的微振测试、厂房建…

常见压缩算法性能和压缩率对比 LZ4 LZO ZSTD SNAPPY

网传压缩算法对比表 算法压缩率压缩速度解压速度支持流式压缩适用场景LZ4低极快极快是实时数据压缩、日志压缩、内存缓存等Zstandard高快快是文件压缩、网络传输、数据库备份等Brotli很高中等快是静态资源压缩&#xff08;HTML、CSS、JS&#xff09;等LZO低极快快是嵌入式系统…

Spring Boot 应用中实现配置文件敏感信息加密解密方案

Spring Boot 应用中实现配置文件敏感信息加密解密方案 背景与挑战 &#x1f6a9;一、设计目标 &#x1f3af;二、整体启动流程 &#x1f504;三、方案实现详解 ⚙️3.1 配置解密入口&#xff1a;EnvironmentPostProcessor3.2 通用解密工具类&#xff1a;EncryptionTool 四、快速…

【TTS】基于GRPO的流匹配文本到语音改进:F5R-TTS

论文地址&#xff1a;https://arxiv.org/abs/2504.02407v3 摘要 我们提出了F5R-TTS&#xff0c;这是一种新颖的文本到语音(TTS)系统&#xff0c;它将群体相对策略优化(GRPO)集成到基于流匹配的架构中。 通过将流匹配TTS的确定性输出重新表述为概率高斯分布&#xff0c;我们的方…

动态规划-152.乘积最大子数组-力扣(LeetCode)

一、题目解析 根据示例nums数组中存在负数&#xff0c;下面分析时需注意 二、算法原理 1、状态表示 此时f[i]表示&#xff1a;以i位置为结尾的所有子数组中的最大乘积&#xff0c;但是由于nums中存在负数&#xff0c;所以还需要g[i]表示&#xff1a;以i位置为结尾的所有子数组…

1-1 初探Dart编程语言

Dart 是 Google 最初开发的一种开源编程语言&#xff0c;适用于客户端与服务端开发。它配套提供 Dart SDK&#xff0c;其中包含 Dart 编译器、Dart 虚拟机&#xff08;Dart VM&#xff09;以及一个名为 dart2js 的工具&#xff0c;可将 Dart 脚本转换为 JavaScript&#xff0c;…

搭建最新版开源监控平台SigNoz踩的坑

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权并注明出处。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 一、前言 SigNoz 是一款开源应用程序性能监控工具&#xff0c;在往期相关文章&#xff08;文末有链接&#xff09;中…

无人机多人协同控制技术解析

一、运行方式 无人机多人点对点控制通常采用以下两种模式&#xff1a; 1. 主从控制模式 指定一个主控用户拥有最高优先级&#xff0c;负责飞行路径规划、紧急操作等关键指令&#xff1b;其他用户作为观察者&#xff0c;仅能查看实时画面或提交辅助指令&#xff0c;需经主…

【东枫科技】KrakenSDR 测向快速入门指南

本快速入门指南旨在帮助您使用运行在 Raspberry Pi 4/5 或 Orange Pi 5B (OPI5B)&#xff08;带 WiFi 型号&#xff09;上的 KrakenSDR 尽快连接到测向应用程序。不过&#xff0c;请务必阅读本手册的其余部分&#xff0c;以了解无线电测向的工作原理。 你需要什么 本指南假设…

【Redis】hash

Hash 哈希 几乎所有的主流编程语言都提供了哈希&#xff08;hash&#xff09;类型&#xff0c;它们的叫法可能是哈希、字典、关联数组、映射等。在 Redis 中&#xff0c;哈希类型指值本身又是一个键值对结构&#xff0c;形如 key “key”, value {{field1, value1}, …{field…

基于Vite的前端自动化部署方案

&#x1f468; 作者简介&#xff1a;大家好&#xff0c;我是Taro&#xff0c;全栈领域创作者 ✒️ 个人主页&#xff1a;唐璜Taro &#x1f680; 支持我&#xff1a;点赞&#x1f44d;&#x1f4dd; 评论 ⭐️收藏 文章目录 前言一、主流解决方案二、了解SCP概念三、自动化部署…

antDesignVue中a-upload上传组件的使用

工作中需要使用上传组件&#xff0c;记录一下a-upload部分属性用法 1.showUploadList属性使用 使用:showUploadList"{ showRemoveIcon: true ,showDownloadIcon: true }"属性可控制右侧下载&#xff0c;删除图标 2.如何实现回显功能 使用:defaultFileList"fil…

龙舟竞渡与芯片制造的共通逻辑:华芯邦的文化破局之道

端午节承载着中华民族数千年的精神密码&#xff0c;龙舟最初是古人沟通天地、祈求风调雨顺的仪式载体。战国时期&#xff0c;屈原投江的悲壮故事为端午注入了家国情怀&#xff0c;龙舟竞渡从此兼具纪念英雄与祈福避疫的双重意义。这种文化内核&#xff0c;与深圳市华芯邦“以科…

机房网络设备操作安全管理制度

该制度围绕机房网络设备操作安全,规定账号实行系统管理员、操作管理员、一般用户三级分级管理,遵循最小授权和权限分割原则,账号需实名制、禁止共享及转借,密码设置需至少 8 位、3 种字符组合且每 3 个月修改一次;高危指令执行需上级审批、双人核查,远程登录需限制权限、…