ESP32实战--WSL+VSCode ESP-IDF环境搭建(1)-CSDN博客
ESP32实战--WSL+VSCode ESP-IDF环境搭建(2)-CSDN博客
在VSCode上就能跑Ubuntu系统的ESP-IDF环境!!!
前言
在学习ESP32系列单片机中,搭建环境很重要,我开始学习该微控制器的时候用的是VSCode的IDF扩展,虽然搭建的很快且很方便,但在后续的编译发现--太慢了,编译小工程还能接受,编译大工程根本受不了,所以我觉得搭建Ubuntu系统下的环境,开始是想着用docker,因为上面开发者也有发布环境版本,但发现docker上的下载和安装很慢,而且运行起来也不方便,所以我想到虚拟机或者WSL,同时配合VSCode,希望这篇文章能帮助到大家。
一、安装WSL(Windows Subsystem for Linux)
先讲讲用WSL的好处:
1.启动便捷--使用Powershell或者Vscode等命令窗口就能启动
2.编译和环境搭建快速
3.支持与Windows共享文件夹--在Windows文件驱动器就能看到Linux目录,在Linux系统中在~/mnt/目录下能看到Windows的目录和驱动盘
再讲讲坏处:
1.挂载外部设备或USB设备时比较麻烦--接串口等外部设备时需要挂载设备,这个我后面也会讲到
2.搭建环境麻烦(但也是为了方便)
3.有些Windows版本可能不支持
WSL官方教程:适用于 Linux 的 Windows 子系统文档 | Microsoft Learn
1.安装wsl
1.1 打开Powershell-以管理员身份运行
我这里用的是Win11,因为安装需要权限,右键Window开始--选择终端管理员,或者在Windows下搜索打开Powershell都可以
1.2 输入指令安装WSL
wsl --install
等待下载安装后重启电脑
该指令会自动启用Windows虚拟化功能,若出了问题,可以试试以下启用Hyper-V的步骤,或者cmd管理员模式下输入以下指令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
1.3 查看WSL支持的系统与版本
wsl --list --online 或 wsl -l -o
可以看到wsl可安装的有效分发列表
2.安装Ubuntu系统
要安装wsl可安装的有效分发,可以在微软商店或者指令下载安装,我比较建议微软商店下载安装,当然指令也可以。
2.1 安装Ubuntu(法一)
2.1.1 安装发行版
同样在Powershell上执行以下指令
wsl --install -d <DistroName>
以安装一个发行版
<DistroName>是以上图片分发表里的NAME
- -d是安装后运行
- 这里安装的是Ubuntu-20.04,则输入
wsl --install -d Ubuntu-20.04
没反应大概率是网络不好,安装需要良好的网络,最好是挂个梯子,梯子这里就不推荐了,有需要的上GitHub找找,或者私信我
2.1.2 首次启动ubuntu系统
在powershell中输入wsl,进入默认版本分发,如果是刚安装,默认为刚安装的版本
wsl
2.1.3 首次启动设置
首次启动系统,需要设置用户名称和密码,应该是不能和电脑名重复的,输入密码是不会显示的,输入就好
Enter new UNIX username: lin
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
2.1.4 启动和退出ubuntu
输入wsl可以在powershell启用wsl,exit指令可以退出
如果想看系统状态可以输入
wsl -l -v
一般我都这样启动
2.1.5 设置默认版本
如果有多个分发版本,可以powershell中输入指令设置默认版本,<DistributionName>
为刚刚安装的版本名字
wsl -s <DistributionName>
或wsl --set-default <DistributionName>
可以用以下指令查看当前所有系统分发
wsl -l -all
2.2 Microsoft Store中安装 Ubuntu(法二)
这边我建议用法二,因为方便,而且下载快一些
2.2.1 打开Microsoft Store搜索Ubuntu
要下载可安装的发行版,wsl支持的,应该都是支持的,不过还是用指令看看
wsl -l -o
搜索并安装,这里我已经安装了Ubuntu 22.04.5 LTS
2.2.2 启动ubuntu
下载安装完后启动Ubuntu,在windows开始中搜索Ubuntu并打开,完成首次安装设置(输入用户名和密码),输入密码是不会显示的,输入就好
等待片刻
设置用户名和密码,密码要输入两次相同的
二、在Ubuntu系统中搭建ESP-IDF环境(以5.3.3版本为例)
可以参考官方文档, 里面写的也很详细,不过我这里还是演示一下
快速入门 - ESP32 - — ESP-IDF 编程指南 v5.3.3 文档
1.安装环境安装
在wsl命令窗口下运行以下指令,安装过程中有y选y,我已经安装过了
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
如果出现以下错误,要先获取安装包
sudo apt-get update
接下来再重复安装以上的环境即可
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
2. 安装 idf 5.3.3分支
2.1.1 创建目录并跳转
mkdir ~/esp32 && cd ~/esp32
2.1.2 拉取git分支(github)
git clone -b v5.3.3 --recursive https://github.com/espressif/esp-idf.git
2.1.3 国内镜像分支拉取(测试中)
github拉取慢的可以先去看看gitee,目前我是拉取有点问题,目前在尝试其他
2.2.3 设置工具
因为下面的工具需要下载,国内用户需要先配置一下,提升下载速度
cd ~/esp32/esp-idf && export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
如果你想设置所有芯片工具就用以下代码,如果只要esp32或esp32s3的工具,则把all改成你选用芯片的工具
cd ~/esp32/esp-idf && ./install.sh all
esp32s3芯片的可以只选用设置esp32s3工具
cd ~/esp32/esp-idf && ./install.sh esp32s3
2.2.4 设置环境变量(每次启动新窗口都要)
因为使用esp-idf的工具,所以要设置环境变量,不然会提示没有idf.py的指令,也可以设置永久的环境变量,这里不建议这么去做,因为会影响到其他软件的使用,如果要设置永久,可以参考官方文档中的步骤
但解决这个问题,可以在VSCode中使用工具,在下一次文章中,我会讲
. $HOME/esp32/esp-idf/export.sh
现在我们就可以使用idf工具了!!
三、创建并编译项目
1.复制与编译hello_world项目
cd ~/esp32 && cp -r ~/esp32/esp-idf/examples/get-started/hello_world .
2.进入项目和设置目标芯片(以esp32s3为例)
cd ~/esp32/hello_world
idf.py set-target esp32s3
3.配置项目
用menucofig可以配置芯片,S是保存,Esc退出
idf.py menuconfig
4.编译项目
idf.py build
等待编译完成,你会发现,在ubuntu下的编译非常快,接下来烧录到开发板,因为需要挂载USB端口设备,就到下一次文章继续教学,本次教学就到这!!
启用Hyper-V(如有需要)
因为WSL需要开启程序与功能中的虚拟化,我也有看到有的教程手动启动程序与功能,这里我就不用那种办法,而且我们在程序与功能里没有找到Hyper-V的情况下,那我这里用指令来启用。
1.创建一个记事本Hyper-V.txt
2.输入以下内容
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online/norestart/addpackage:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All/LimitAccess /ALL
3.保存并改名为Hyper-V.bat
4.右键以管理员身份运行
5.重启电脑
参考资料
- ESP-IDF官方文档快速入门 - ESP32 - — ESP-IDF 编程指南 v5.3.3 文档
- WSL官方文档 适用于 Linux 的 Windows 子系统文档 | Microsoft Learn
- 相关技术论坛与社区WSL简介与安装流程(Windows 下的 Linux 子系统)-CSDN博客