ESP-IDF 及 VSCode 插件在WSL下的安装及配置
前言
众所周知,ESP-IDF 在 Windows 下的安装十分困难,编译速度巨慢。通常情况下,编译一个 HelloWorld 程序也需要5分钟及以上。
实测发现,ESP-IDF 在 Linux (WSL) 下的编译速度极快,一个同样的 HelloWorld 程序仅需 10 秒即可完成编译。
本文主要介绍在 WSL 上安装 ESP-IDF 及其 VSCode 插件的步骤。
设置 Windows 环境
安装必需软件
Windows 上所需软件有:
- Visual Studio Code
- WSL 2
- WSL Ubuntu 发行版 (Microsoft Store)
- Python 3.9
注意
- WSL 仅在 Windows 10+上可用,低版本 Windows 用户请使用虚拟机!
- WSL Ubuntu 版本应为 20.04+,本文中使用 22.04 版。
设置 WSL
打开 WSL 窗口,执行下列指令以安装必须软件包:
sudo apt update
sudo apt-get install git wget flex bison gperf python3-pip python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util
配置 VSCode
请手动从 VSCode - 扩展 界面安装
Remote - WSL
(扩展ID为ms-vscode-remote.remote-wsl
);点击 VSCode 左下角的绿色图标,出现类似图中的页面,选择
New WSL Window
,此时应打开一个新的 VSCode 窗口,左下角绿色图标变为WSL:Ubuntu-22.04
;在新打开的窗口中,找到 扩展 页面,搜索
Espressif IDF
,点击如图中所示安装在WSL:Ubuntu-22.04中
按钮,等待安装完成;安装完成后,按图示操作,改好选择下载源,更改安装路径,点 [Install],然后继续等待;
给 ESP-IDF 打补丁
实测发现,进行到这里,已经可以超快速编译,但是仍不能烧录程序。按照官方文档,需要安装 usbipd 映射串口,然后会遇到权限问题。
这里我们利用 IDF 的一个神奇特性(Bug),即烧录的时候调用的是本地的 PowerShell.exe,顺理成章地,调用到的 Python 也是本地的。
因此,我们只需在本地安装相应依赖,就可完美解决问题。下列步骤:
- 从 WSL Ubuntu 中复制相应文件或者下载
- ${IDF_PATH}/requirements.txt
- ${IDF_PATH}/tools/kconfig_new/esp-windows-curses
提示
请将复制出来的 requirements.txt
及 esp-windows-curses
文件夹置于同一个文件夹下。
修改 requirements.txt
,将下列行(通常在末尾)
file://${IDF_PATH}/tools/kconfig_new/esp-windows-curses; sys_platform == 'win32'
改为
./esp-windows-curses; sys_platform == 'win32'
然后打开 Windows 终端(你喜欢就好),导航至保存的文件目录下,执行
pip install -r requirements.txt
静待片刻,即可安装完成。(若不成功请尝试换源)
测试 ESP-IDF 功能
在连接到 WSL 的 VSCode 窗口内打开一个文件夹,
按下 Ctrl + E
,紧接着按下C
,选择Use current directory
,即可用模板创建一个 IDF 工程。
接着,连接开发板,在下边栏 [/dev/ttyUSB1] 处选择串口;再进行编译、烧录;(点击🔥图标一步到位)
片刻过后,你将可以从串口监视器看到 Log!
结束啦
现在,您可以享受 10s 飞速编译和烧录啦!