Lazy loaded image
【ESP-IDF环境】在Windows子系统WSL下搭建Ubuntu24.04的ESP32+vscode开发环境
字数 1071阅读时长 3 分钟
2025-12-1
2026-4-4
我这里的环境为Windows11, Ubuntu为Windows子系统版本的ubuntu-24.04.3-wsl-amd64.wsl
如果仅需要wsl + esp-idf的环境,只需要查看此官方教学: https://idf.espressif.com/zh-cn/index.html跳过下面内容即可。

一、配置WSL + ESP-IDF + vscode环境

安装vscode的插件

  1. 在 Windows 上安装 Visual Studio Code。
  1. 在 Windows的VS Code 中安装插件:
      • WSL(记得重启一下wsl,否则输入code .没用)
      • C/C++ Extension Pack
      • ESP-IDF Extension
      • Chinese Language Pack

配置Ubuntu环境

记得适用管理员命令窗口输入WSL进入Ubuntu中,以免不必要的麻烦。
  1. 建立开发目录,并进入esp这个目录:
    1. 安装依赖包(Ubuntu 下必备):
      1. 在 Linux 系统里安装 VS Code 编辑器,并打开 ESP 开发目录
        1. (使用非root用户来开发esp,防止出现其他情况)进入esp目录后使用code .这里WSL就会调用Windows的vscode,.则代表在当前位置打开vscode。
          第一次调用时,会下载一些vscode的支持包
          下载的并不是vscode本体,WSL只是复用了本地电脑的Vscode,所以他们的环境是隔离开的。
          如果遇到网络问题可以先临时改 /etc/resolv.conf,然后继续尝试code .

      在WSL调用的本地VsCode里进行ESPIDF环境的配置

      1. 安装插件:
      • C/C++
      • C/C++ Extension Pack
      • Chinese (Simplified) Language Pack
      • CMake Tools
      • ESP-IDF
      notion image
      • 一键配置ESPIDF环境(选择IDF版本,直接安装就行,在esp目录下)
        • 我这里之前在Linux中配置过了,就直接选择ESP-IDF的目录即可,自己下载的方法具体查看这个链接https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32c6/get-started/linux-macos-setup.html
          notion image

      将 Windows 的串口分配给 WSL2

      默认情况下,WSL 无法直接访问 Windows 的 COM 口,需要借助 usbipd-win 工具。
      1. 在 Windows PowerShell(管理员)执行安装:
        1. 查看 USB 设备列表:
          找到 ESP32 的 USB 串口设备(通常是CP210xCH340等),记下BUSID
          • 绑定设备:
            这里的6-3只是我的串口号,大家要根据自己实际的串口号进行修改
            注:解除绑定步骤为:分离+解除:usbipd detach --busid 6-3usbipd unbind --busid 6-3
            • 将设备挂载到 WSL:
              • 在 Ubuntu 下确认是否识别到串口:
              在vscode中加载好espidf插件之后, 在窗口下面的串口配置图标,如果能看到 /dev/ttyUSB0 或者ttyACM0,说明成功。
              • 添加用户 lzj 访问串口 /dev/ttyUSB0 的权限。
                  1. 查看串口所属的组ls -l /dev/ttyUSB0
                    1. 输出通常类似:crw-rw---- 1 root dialout 188, 0 Dec 2 14:30 /dev/ttyUSB0
                      这里的 dialout 就是串口所属的组。
                  1. 将用户添加到该组
                • 完全注销并重新登录系统(注意VsCode也要关掉然后重新code .打开)(或许会usb掉,记得重新绑定)
              之后在 VS Code 的 ESP-IDF 插件中配置串口为 /dev/ttyUSB0,即可直接下载调试。

              没有 /dev/ttyACM0,解决办法

              现象

              • Windows 里 usbipd list 显示设备 Attached
              • WSL 里却没有 /dev/ttyACM0
              • 只有手动执行 sudo modprobe cdc_acm 才会出现串口

              根因

              WSL 默认 没启用 systemd/udev(ps -p 1 显示 init(...)),导致设备 attach 后不会自动加载内核模块 cdc_acm,所以不会自动创建 /dev/ttyACM0。 另外 WSL 下 /dev/ttyACM0 常见默认权限偏紧,需要把用户加入 dialout 并用 udev 规则持久化。

              解决办法

              1. 启用 systemd(让模块自动加载/udev 生效)

              在 WSL(Ubuntu)执行:
              回到 Windows(管理员 PowerShell)重启 WSL:
              重新进入 WSL,确认:
              应输出:systemd

              2. 设置 cdc_acm 开机自动加载(避免每次手动 modprobe)

              WSL 执行:
              上一篇
              【MatterChipTool环境】在Ubuntu下搭建python-matter-server、Chip-tool、chip-lighting-app 并简单运用
              下一篇
              Matter 学习笔记

              评论
              Loading...