水平有限,当个备忘录的,来者凑活着看,灰色字是可以不看,我看的是B站的一个视频总结的。编译速度起飞,参照官方推荐!WSL2+VSCode搭建ESP-IDF 开发环境,个人认为是目前编译最高效的开发方式_哔哩哔哩_bilibili
一、WSL2
推荐查阅官方文档说明:安装 WSL | Microsoft Learn
(1)管理员身份打开Windows PowerShell

(2)输入wsl --install

(3)如果安装失败或者时间超时,那就需要先打开控制面板的“Windows 子系统 for Linux”,“虚拟机平台”,然后重新尝试安装,不行的话就重启然后再次尝试。

(4)等待安装完成后重启电脑(这里已经安装了Ubuntu、打开了虚拟机平台、windows子系统的配置)
菜单搜索控制面板——>程序——>启动或者关闭Windows功能——>(滑到最下面)找到"适用于 Linux 的 Windows 子系统" 和 "虚拟机平台",检查是否被勾选。
补充说明:我的截图是Windows10系统的,我试过我的Windows11的笔记本,没有找到虚拟机平台,但还是能正常使用,所以如果你出现了没有虚拟机平台这个选项,请不要担心。

(5)搜索并打开Ubuntu,首次打开会需要等待一段时间


(6)输入账号密码

现在是完成了wsl的初始化配置,之后需要安装espidf的依赖库和工具。
(7)在Ubuntu上输入sudo apt update更新软件源
(目前没有自定义源则是只更新官方源,也就是更新当前软件工具的最新链接啥的,如果不先更新软件源,而是直接输入下面的代码,就会出现无法定位的情况(如下图))

输入sudo apt update更新软件源

其中“184 packages can be upgraded. Run 'apt list --upgradable' to see them.”的意思如下,
![]()
所以sudo apt update就是类似于让电脑逛一下超市知道上新了哪些东西,而接下来的espidf官方文档的指令就是购买东西,原先没逛超市所以不知道想买的东西的版本和内容,现在逛过了就可以知道慕想买东西的内容了,就可以运行下方指令了。
(8)更新完后输入下方指令,下载espidf依赖库和工具
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
(从超时买东西,从软件源中下载自己需要的软件)(复制指令后右键鼠标就会粘贴到ubuntu的窗口)
下载的内容如下{
- 版本控制工具:git
- 网络下载工具:wget
- 编译工具链组件:flex、bison、gperf
- Python 相关:python3、python3-pip(包管理)、python3-venv(虚拟环境)
- 构建工具:cmake、ninja-build、ccache(编译缓存)
- 开发库:libffi-dev、libssl-dev(加密 / 接口库)
- 硬件相关工具:dfu-util(固件升级)、libusb-1.0-0(USB 接口库)
}
(9)输入y👆
(10可选)(可以检查一下python3的版本,直接输入python3)

OK,接下来就去vscode上操作
二、vscode
(1)安装vscode
(2)安装Chinese插件
(3)安装C/C++插件

(4)安装wsl插件,然后选择连接到wsl

这个时候右下角会有下载提示,等待下载完成,应该会自动把Chinese和C/C++插件下载了,没有的话就自己再下载
想要退出linux环境编程,回到windows的话,就选择关闭远程连接

(5)安装espidf插件(之前安装的是在windows的,现在安装的是在Ubuntu的,也就是linux环境下)

(6)下载好后打开espidf下载相关的内容

(可跳过)在linux账户新建文件用于存放espidf内容,方便后续管理
(也可以直接使用默认的,没啥区别,使用默认的话直接跳过文件的步骤)


在安装路径中选择自己新建的文件夹(演示一个,下一个同理,只不过再选成Tools就是了)

(7)如果安装失败,那就是没有对当前的文件夹没有修改权限,需要输入下面的指令。然后再重新安装
sudo chown -R $USER:$USER /home/你的Ubuntu的user名称/文件夹名/
chmod -R 755 /home/你的Ubuntu的user名称/文件夹名/
例如我的叫QiuLin,新建的文件夹是ESP,那就是
sudo chown -R $USER:$USER /home/qiulin/ESP/
chmod -R 755 /home/qiulin/ESP/
(8)等待安装完成,下面是安装完成的图

(8)安装完成之后先搞个工程测试一下编译能不能正常

(可跳过)我这里又新建了一个文件夹用来存放代码


(9)编译成功了

(10)尝试烧录,烧录失败

三、USB
!!!在没有配置之前,是不能在vscode的wsl环境烧录程序的
WSL 本身默认不直接支持 USB 设备访问,需要额外配置才能让 WSL 识别到 Windows 连接的 USB 设备。
WSL(尤其是 WSL2)运行在一个轻量虚拟机中,与 Windows 物理机的硬件隔离,因此默认情况下无法直接访问 USB 设备(包括 ESP32 开发板的串口)。需要通过工具将 Windows 识别的 USB 设备 “共享” 给 WSL,才能让 WSL 识别并操作。
(1)先把ESP32和电脑连接上
(2)管理员身份打开Windows PowerShell
(3)输入“winget install usbipd”,然后输入y(看情况选择开不开魔法,不开也能20s左右下载安装完)
这个指令是安装usbipd-win工具,用于将windows系统的usb设备共享给wsl环境。

!!!!如果你不打算使用繁琐的命令行指令,请移步后面的连接,同时可以忽略当前文章的后续内容了。当然,下面的知识可以参考以方便你更好的理解工作。wsl自动识别和附加串口-优快云博客
(4)关闭当前PowerShell,重新管理员身份开启一个PowerShell,输入usbipd list,记录端口对应的BUSID
安装了usbipd工具之后,要使用到这个工具的指令,而环境变量需要重新加载才能生效,旧窗口处于没有usbipd环境变量的情况。

(5)输入usbipd bind --busid <BUSID>,将 Windows 上的指定 USB 设备与 USB/IP 服务绑定。
也就是把windows上的串口分享给wsl,但是还没同意wsl使用

(6)输入usbipd attach --wsl --busid <BUSID>,将串口附加给wsl
附加也就是这个串口属于wsl权下,wsl可以是用这个串口了

(7)打开Ubuntu,先后输入“sudo apt update” " sudo apt install -y usbutils"
sudo apt update # 先更新软件源
sudo apt install -y usbutils # 安装包含 lsusb 命令的工具包
(8)然后输入lsusb检查串口设备号,找到有QinHeng的,就说明串口附加到wsl成功了

(10)输入“cd /dev”,然后再输入“ls”,寻找到ttyACM0,找到对应的串口端口号

(11)回到vscode,选择对应的端口号,进行烧录

(12)如果烧录显示失败,终端显示下面的内容。那就管理员身份打开ubuntu,执行“sudo usermod -aG dialout $USER”
A fatal error occurred: Could not open /dev/ttyACM0, the port is busy or doesn't exist.
([Errno 13] could not open port /dev/ttyACM0: [Errno 13] Permission denied: '/dev/ttyACM0')
Hint: Try to add user into dialout or uucp group.
WSL2+VSCode配置ESP-IDF
966

被折叠的 条评论
为什么被折叠?



