WSL2 ESP-IDF开发环境配置&配置使用windows串口
本文主要介绍wsl2&esp-idf环境搭建,以及wsl2下的串口如何使用
一、WSL2
1.安装
- 管理员运行powershell
- 启用“适用于 Linux 的 Windows 子系统”可选功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
- 启用“虚拟机平台”可选组件
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 重启电脑重新管理员运行powershell
wsl --set-default-version 2
- 打开 Microsoft Store,并选择你偏好的 Linux 分发版获取
- 安装完成点击启动/powershell里面执行
wsl.exe
- 设置初始用户名和密码
2.更换源 - Ubuntu22.04
- 备份文件
sudo mv /etc/apt/sources.list /etc/apt/sources.list_bak
- 新建文件并选择一家写入文件
sudo vim /etc/apt/sources.list
- 或者使用一键指令配置
sudo sed -i -r 's#http://(archive|security).ubuntu.com#https://mirrors.aliyun.com#g' /etc/apt/sources.list
- 获取&更新
sudo apt-get update
sudo apt-get upgrade
清华源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
阿里源
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
网易163源
deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
3. ssh配置
sudo apt remove openssh-server
sudo apt install openssh-server
sudo vim /etc/ssh/sshd_config
#找到以下配置并更改
Port 22222 # 设置端口为22222
ListenAddress 0.0.0.0
PermitRootLogin yes # 允许root远程登录
PasswordAuthentication yes # 密码验证登录
#windows自启动&服务启动
#wsl2下
sudo vim /etc/init.wsl
#内容如下
#! /bin/sh
/etc/init.d/ssh start
#配置权限
sudo chmod +x /etc/init.wsl
#windows下创建 wsl-start.vbs文件添加内容如下
Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d ubuntu -u root /etc/init.wsl"
#Win+R shell:startup 将上面vbs文件放入打开的文件夹内
二、ESP-IDF
1. 环境安装
#编译 ESP-IDF 需要以下软件包
sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
2. 获取ESP-IDF
获取乐鑫提供的软件库文件 ESP-IDF 仓库,版本介绍请前往 ESP-IDF 版本简介,查看 ESP-IDF 不同版本的具体适用场景
#用户目录下创建esp文件夹,从git仓库拉取V5.0版本至此目录下
mkdir -p ~/esp
cd ~/esp
git clone -b release/v5.0 --recursive https://github.com/espressif/esp-idf.git
3. 设置工具
#进入idf文件夹,设置对应工具
cd ~/esp/esp-idf
#配置esp32项目开发
./install.sh esp32
#配置esp32&esp32s2项目开发
./install.sh esp32,esp32s2
#配置所有项目开发
./install.sh all
4. 设置环境变量
# 注意设置环境变量后才可以正常使用idf开发
. $HOME/esp/esp-idf/export.sh
5. hello word示例
工程示例,从 ESP-IDF 中 examples 目录下将 get-started/hello_world 工程复制至您本地的 ~/esp
目录下
进入 hello_world
目录,设置 ESP32S3 为目标芯片,然后运行工程配置工具 menuconfig
使用 idf.py set-target esp32
设置“目标”芯片时,此操作将清除并初始化项目之前的编译和配置(如有)。您也可以直接将“目标”配置为环境变量(此时可跳过该步骤)。更多信息,请见 Select the Target Chip: set-target。
cd ~/esp/hello_world
idf.py set-target esp32S3
idf.py menuconfig
# 编译
idf.py build
# 下载运行
idf.py -p PORT [-b BAUD] flash
# 监视输出
idf.py -p PORT monitor
# “Ctrl+]” 退出
三、WSL2下ESP-IDF的串口烧录&日志监视
由于wsl2无法直接使用windows下的串口,借助开源 usbipd-win 项目) 来实现
1.windows下安装
仓库下载安装 或者通过powershell的 Windows 程序包管理器程序 (winget) 来安装
#使用 winget 工具安装和管理应用程序安装 取消--interactive可能导致立即重启
winget install --interactive --exact dorssel.usbipd-win
2.wsl2下安装
运行以下命令:最新参考链接
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20
3.使用
#管理员打开Powershell
wsl -l -v
#我的结果如下:
NAME STATE VERSION
* Ubuntu-22.04 Running 2
#列出所有连接到 Windows 的 USB 设备
usbipd list
#我的结果如下:
BUSID VID:PID DEVICE STATE
2-4 258a:002a USB 输入设备 Not shared
2-8 260d:1095 USB 输入设备 Not shared
2-10 8087:0033 英特尔(R) 无线 Bluetooth(R) Not shared
4-1 1a86:55d5 USB-Enhanced-SERIAL-A CH344 (COM3), USB-Enhanced-SERIAL-B... Not shared
4-4 0d28:0204 USB 大容量存储设备, USB 串行设备 (COM8), USB 输入设备, We... Not shared
#选择WSL的设备总线ID,然后运行此命令。WSL会提示你输入密码以运行sudo命令。要附加的 Linux 发行版必须是默认分发版
#绑定ID
usbipd bind --busid 4-4
#创建映射
usbipd attach -b 4-4 -w
# WSL2下使用 sudo /dev/tty* 在绑定前后查询,查看新增设备名
# 有些为 /dev/ttyUSB0 我的为 /dev/ttyACM0
#WSL2下设置设备读写权限
sudo chmod a+rw /dev/ttyACM0
#解绑映射 注意不解绑可能导致windows下无法使用此COM口
usbipd detach -b 4-4
我的hello world工程烧录&监听如下:
烧录
打开监视