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

Linux搭建ESP32开发环境

Linux开发环境的优势

在 Linux 下搭建 ESP32 开发环境相比 Windows 有以下显著优势:

1. 原生工具链支持

  • ESP-IDF 官方优先适配:乐鑫官方工具链(如 esp-idf)对 Linux 提供原生支持,安装流程更简洁,依赖冲突更少。
  • 无需虚拟化:Windows 通常需要依赖 WSL、Docker 或 MSYS2 等中间层,而 Linux 可直接运行原生工具链,减少环境复杂度。

2. 依赖管理更高效

  • 包管理器一键安装:通过 apt(Debian/Ubuntu)或 pacman(Arch)等工具,可快速安装 Python、CMake、Git、编译工具链等依赖项,避免手动配置路径。
  • Python 环境更稳定:Linux 的 Python 环境管理(如 venv)与系统工具集成更紧密,减少因版本冲突导致的编译错误。

3. 设备权限与驱动

  • 即插即用 USB 设备:Linux 对 ESP32 开发板的 USB 串口(如 CP210x、CH340)支持更友好,无需手动安装驱动,直接通过 /dev/ttyUSB* 访问。
  • 权限控制灵活:通过 udev 规则可永久配置串口权限,避免 Windows 下频繁弹出管理员权限窗口的问题。

4. 终端与脚本效率

  • 强大的 Shell 支持:Linux 终端(如 Bash/Zsh)支持高级脚本化操作,适合批量编译、烧录、日志监控等任务。
  • 无缝集成 Make/CMake:原生支持构建工具链,编译速度更快,调试输出更直观。

5. 资源占用与性能

  • 轻量化运行:Linux 系统本身资源占用更低,尤其适合在虚拟机或老旧硬件上运行,提升编译效率。
  • 文件系统优化:对大量小文件(如 ESP32 项目源码)的读写性能优于 Windows,缩短编译时间。

6. 开发环境一致性

  • 跨团队协作:Linux 是嵌入式开发的主流系统,使用相同环境可减少“在我机器上能运行”的兼容性问题。
  • 容器化支持:通过 Docker 快速部署隔离的 ESP-IDF 环境,避免污染主机系统。

7. 调试与底层操作

  • GDB 调试更流畅:Linux 原生支持 OpenOCD 和 GDB,调试 ESP32 时响应更快,工具链集成更完善。
  • 直接访问系统资源:可通过 straceperf 等工具深度监控编译和运行过程,排查低级问题。

如果习惯 Windows 的 IDE(如 VS Code + PlatformIO),Linux 同样支持,且性能更优。对 Linux 命令不熟悉的用户需短期学习成本,但长期效率提升显著。

Linux 在工具链支持、依赖管理、设备兼容性和开发效率上更具优势,尤其适合追求高效、稳定的嵌入式开发者。若需兼顾 Windows 生态,可通过双系统或 WSL2 折中方案。

一、操作系统环境

  1. Deepin 社区版(23)
  2. Python 3.8 
  3. VS Code 1.95.0

笔者基于以上操作系统环境搭建,Ubuntu 类似。

二、esp-idf 环境搭建

Step 1、基础依赖

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev libusb-1.0-0

Step 2、克隆拓展工具仓库

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

Step 3、使用镜像仓库

cd esp-gitee-tools
./jihu-mirror.sh set

Step 4、克隆 esp-idf 仓库

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

Step 5、设置工具

除了 ESP-IDF 本身,还需要为支持 ESP32 的项目安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。

# 进入仓库根目录
cd esp/esp-idf 
# 推荐国内用户使用国内的下载服务器,以加快下载速度。
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
# 仅为 ESP32 安装所需工具
./install.sh esp32
# 一次性为所有支持的目标芯片安装工具
# ./install.sh all

Step 6、设置环境变量

如果仅为当前终端设置环境变量,可以直接执行官方提供的脚本。

. ./export.sh

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

# 编译配置
vim ~/.bashrc

# 添加这行
# alias get_idf='. /home/sam/MyWorkSpace/esp/esp-idf/export.sh'

# 刷新配置
source ~/.bashrc

# 验证别名
get_idf

Step 7、取消镜像仓库替换

cd esp-gitee-tools
./jihu-mirror.sh unset

三、VS Code 插件安装

1、ESP-IDF 插件(必须)

配置 ESP-IDF 插件,

(py380) sam@sam-PC:~$ echo $IDF_PATH
/home/sam/MyWorkSpace/esp/esp-idf
(base) sam@sam-PC:~/.espressif$ pwd
/home/sam/.espressif
(base) sam@sam-PC:~/.espressif$ ls
dist  espidf.constraints.v5.4.txt  idf-env.json  python_env  tools

配置完毕,还需要执行一行命令,

sudo cp --update=none /home/sam/.espressif/tools/openocd-esp32/v0.12.0-esp32-20241016/openocd-esp32/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d

2、C/C++ 插件(必须)

3、中文插件(可选)

至此,ESP32开发环境搭建完毕。

参考资料

https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/get-started/linux-macos-setup.html


http://www.kler.cn/a/549296.html

相关文章:

  • 线性代数中的正交和标准正交向量
  • DeepSeek 的开源优势:为什么选择它而不是其他闭源模型?
  • Spring Boot “约定大于配置”
  • 网络安全的现状如何?
  • Keepalived + Nginx 高可用负载均衡部署
  • 低代码组态软件-BY组态
  • nodejs 038: Js Worker线程消息传递 Worker.postMessage() Worker.postMessage()
  • 图像生成GAN和风格迁移
  • mysql读写分离与proxysql的结合
  • FOT(Forest-of-Thought):增强大型语言模型推理能力的新框架
  • Docker安装Kafka(不依赖ZooKeeper)
  • 【Linux】Ubuntu Linux 系统 ——PHP开发环境
  • Netty的基本架构详解
  • 【第12章:深度学习与伦理、隐私—12.1 AI伦理原则与偏见检测的方法与实践】
  • 第437场周赛:找出长度为 K 的特殊子字符串、吃披萨、选择 K 个互不重叠的特殊子字符串、最长 V 形对角线段的长度
  • 应用分层、三层架构和MVC架构
  • 微信小程序的请求函数封装(ts版本,uniapp开发)
  • Deep seek学习日记1
  • 8. Docker 常规安装简介(安装 Tomcat ,安装 MySQL,安装Redis 同时指定安装的版本)
  • WebMvcConfigurer 介绍