(二)vscode搭建espidf环境,配置wsl2
水平有限,当个备忘录的,来者凑活着看,灰色字是可以不看,我看的是B站的一个视频总结的。编译速度起飞,参照官方推荐!WSL2+VSCode搭建ESP-IDF 开发环境,个人认为是目前编译最高效的开发方式_哔哩哔哩_bilibili
一、WSL2
推荐查阅官方文档说明:安装 WSL | Microsoft Learn
(1)管理员身份打开Windows PowerShell
(2)输入wsl --install
(3)等待安装完成后重启电脑(这里已经安装了Ubuntu、打开了虚拟机平台、windows子系统的配置)
菜单搜索控制面板——>程序——>启动或者关闭Windows功能——>(滑到最下面)找到"适用于 Linux 的 Windows 子系统" 和 "虚拟机平台",检查是否被勾选。
补充说明:我的截图是Windows10系统的,我试过我的Windows11的笔记本,没有找到虚拟机平台,但还是能正常使用,所以如果你出现了没有虚拟机平台这个选项,请不要担心。
(4)搜索并打开Ubuntu,首次打开会需要等待一段时间
(5)输入账号密码
现在是完成了wsl的初始化配置,之后需要安装espidf的依赖库和工具。
(6)在Ubuntu上输入sudo apt update更新软件源
(目前没有自定义源则是只更新官方源,也就是更新当前软件工具的最新链接啥的,如果不先更新软件源,而是直接输入下面的代码,就会出现无法定位的情况(如下图))
其中“184 packages can be upgraded. Run 'apt list --upgradable' to see them.”的意思如下,
所以sudo apt update就是类似于让电脑逛一下超市知道上新了哪些东西,而接下来的espidf官方文档的指令就是购买东西,原先没逛超市所以不知道想买的东西的版本和内容,现在逛过了就可以知道慕想买东西的内容了,就可以运行下方指令了。
(7)更新完后输入下方指令,下载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 接口库)
}
(8)输入y
(可以检查一下python3的版本,直接输入python3)
OK,接下来就去vscode上操作
二、vscode
(1)安装vscode
Visual Studio Code - 代码编辑。重新
(2)安装Chinese插件
(3)安装C/C++插件
(4)安装wsl插件,然后选择连接到wsl
这个时候右下角会有下载提示,等待下载完成,应该会自动把Chinese和C/C++插件下载了,没有的话就自己再下载
想要退出linux环境编程,回到windows的话,就选择关闭远程连接
(5)安装espidf插件(之前安装的是在windows的,现在安装的是在Ubuntu的,也就是linux环境下)
(6)下载好后打开espidf下载相关的内容
(可跳过)在linux账户新建文件用于存放espidf内容,方便后续管理
(也可以直接使用默认的,没啥区别,使用默认的话直接跳过文件的步骤)
在安装路径中选择自己新建的文件夹(演示一个,下一个同理,只不过再选成Tools就是了)
(7)等待安装完成,下面是安装完成的图
(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环境。
(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” " ssudo apt install -y usbutils"
sudo apt update # 先更新软件源
sudo apt install -y usbutils # 安装包含 lsusb 命令的工具包