背景:为了解决 “windows环境中编译ESP32代码速度慢” 的问题,现搭建一个Linux环境,让windows下的VScode连接到Linux环境,VSCode负责编辑代码,虚拟机用于编译代码。
目录
一、安装VMware
1.1 获取VMware安装包
1.2 安装安装包
二、安装Ubuntu
2.1 获取Ubuntu安装包
2.2 安装Ubuntu
2.2.1 配置阶段
2.2.2 安装阶段
2.2.3 查看阶段
2.2.4 通过MobaXterm登录Ubuntu
三、安装必要工具
3.1 安装各种必要的工具
3.2 拉取esp-idf工具
3.3 执行gitee工具切换镜像脚本
3.4 拉取esp-idf源码
3.5 切换esp-idf版本分支
3.6 安装编译工具
3.7 设置环境变量
3.8 拷贝源码
3.9 编译、下载与监视
3.9.1 编译
3.9.2 下载
3.9.3 监视
四、配置VSCode
4.1 安装插件
4.2 配置Remote-SSH
4.3 在远程SSH中安装插件
4.3.1 安装C/C++插件
4.3.2 安装ESP-IDF插件
4.3.3 配置esp-idf库文件查看路径
4.3.4 设置签名(解决每次都要输密码的问题)
五、参考资料
一、安装VMware
1.1 获取VMware安装包
方式1:百度网盘获取
方式2:官网下载
1.2 安装安装包
安装过程一直点击下一步就可以了,详细过程省略。
二、安装Ubuntu
2.1 获取Ubuntu安装包
点击获取ubuntu-20.04.6-live-server-amd64.iso安装包
2.2 安装Ubuntu
2.2.1 配置阶段
打开VMware-->创建新的虚拟机-->自定义-->下一步
下一步-->浏览-->选择对应Ubuntu镜像文件版本打开-->下一步
设置用户名和密码-->下一步
设置名称,选择安装位置-->下一步
设置处理器和内核数量-->下一步
下一步-->下一步-->下一步-->下一步-->下一步-->设置磁盘大小-->下一步
下一步-->完成。
2.2.2 安装阶段
选择英语:
选择不更新:
一直Done-->继续
输入之前设置的用户名和密码
勾选安装SSH服务器
安装中,需要漫长的等待。注意:如果遇到询问是否需要升级,要选择取消升级
等待安装结束后,输入用户名和密码
2.2.3 查看阶段
输入指令安装网络工具(用于查看IP地址):
sudo apt-get install net-tools
等待安装完成后,输入以下指令,查看IP地址:
ifconfig
可以看到IP地址是:192.168.37.128
2.2.4 通过MobaXterm登录Ubuntu
通过百度网盘下载MobaXterm(免安装),并打开,点击Session,选择SSH,输入IP地址和用户名,点击OK
输入密码,点击Yes
至此就登录了Ubuntu系统了
三、安装必要工具
3.1 安装各种必要的工具
sudo apt-get install git wget flex bison gperf python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 net-tools
3.2 拉取esp-idf工具
新建esp32目录
mkdir esp32
cd esp32
拉取esp-idf工具
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
先新建一个esp32的目录,再拉取esp-idf工具
3.3 执行gitee工具切换镜像脚本
进入esp-gitee-tools目录
cd esp-gitee-tools
执行脚本
./jihu-mirror.sh set
回到上层目录
cd ..
执行这句命令后,会将github的地址自动替换成jihu上的镜像地址,这样就不用担心git的访问问题了。
3.4 拉取esp-idf源码
git clone --recursive https://github.com/espressif/esp-idf.git
或者(指定版本)
git clone -b v5.3.2 --recursive https://github.com/espressif/esp-idf.git
3.5 切换esp-idf版本分支
切换esp-idf版本分支到v5.2:
cd esp-idf
git checkout v5.2
如果提示失败或有错误试下这句:../esp-gitee-tools/submodule-update.sh
更新子模块:
git submodule update --init --recursive
至此,esp-idf基本已经安装完了。
3.6 安装编译工具
由于可能需要用到不同型号的esp32,其安装工具可能都不一样,这个命令能把各个型号的安装工具都下载下来。在esp-idf路径中执行以下命令:
../esp-gitee-tools/install.sh
注意:如果卡住不动了,就关闭重新输入指令下载,直至全部下载完成
3.7 设置环境变量
方法1(临时配置,每次重新进入都要配置):
在esp-idf路径中执行下述命令,会自动把esp-idf的环境变量设置到当前环境变量路径中:
source export.sh
方法2(自动配置环境变量):
由于上述是一次性设置,重启后需要重新设置环境变量,如需每次打开时让其自动设置环境变量,需要在默认路径中将配置环境变量的命令添加进.profile文件中:
//进入默认路径
cd ~
//用vim打开profile文件
vim .profile
//在.profile文件最后一行插入以下命令,即可执行脚本,自动设置环境变量
source esp32/esp-idf/export.sh
回到当前界面后,输入exit退出,然后输入r即可重新进入:
3.8 拷贝源码
先新建一个工作目录workspace,然后拷贝demo程序(如hello_world)到此目录
3.9 编译、下载与监视
3.9.1 编译
cd helloworld
idf.py build
3.9.2 下载
idf.py flash
idf.py -p COMx falsh
提示没有USB权限,需要设置USB串口权限:
方法1(临时解决):
sudo chmod 777 /dev/ttyUSB0
方法2(永久解决,注意:sss需要换成你的用户名):
sudo usermod -aG dialout sss
如果还是提示错误,则在虚拟机左侧我的计算机-->Ubuntu sss-->鼠标右击-->选择设置-->USB控制器-->USB兼容性选择USB3.1即可。
重新烧录:
3.9.3 监视
idf.py monitor
四、配置VSCode
4.1 安装插件
安装Remote-SSH插件
4.2 配置Remote-SSH
打开Remote-SSH,点击设置,选择第一个:
设置IP地址和用户名,并保存后刷新:
右击选择“在当前窗口中连接”:
Linux --> 继续 --> 输入密码 --> :
打开工作目录的文件夹:
4.3 在远程SSH中安装插件
4.3.1 安装C/C++插件
4.3.2 安装ESP-IDF插件
4.3.3 配置esp-idf库文件查看路径
按Ctrl+Shift+P,选择ESP-IDF:Add VSCode Configuration Folder,这样就能查看源文件了
4.3.4 设置签名(解决每次都要输密码的问题)
(1)生成证书文件
先在windows中打开PowerShell,输入以下命令:
ssh-keygen -t ed25519 -C sss@gitee.com
然后一路回车到底:
根据路径打开文件id_ed25519.pub,复制其中的内容:
(2)编辑路径~/.ssh/authorized_keys文件
通过vim打开authorized_keys文件:
将前面复制的id_ed25519.pub文件中的内容粘贴到authorized_keys文件中,保存退出:
这样配置完后,就不需要每次打开VSCode都要输密码了。
五、参考资料
【【2024最新版 ESP32教程(基于ESP-IDF)】ESP32入门级开发课程 更新中 中文字幕】https://www.bilibili.com/video/BV1eRg7exEcT?p=2&vd_source=81a7e4213950c9b4e7925e57b921574a