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 时响应更快,工具链集成更完善。
- 直接访问系统资源:可通过
strace
、perf
等工具深度监控编译和运行过程,排查低级问题。
如果习惯 Windows 的 IDE(如 VS Code + PlatformIO),Linux 同样支持,且性能更优。对 Linux 命令不熟悉的用户需短期学习成本,但长期效率提升显著。
Linux 在工具链支持、依赖管理、设备兼容性和开发效率上更具优势,尤其适合追求高效、稳定的嵌入式开发者。若需兼顾 Windows 生态,可通过双系统或 WSL2 折中方案。
一、操作系统环境
- Deepin 社区版(23)
- Python 3.8
- 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