WSL2 安装
- sudo apt install esptool
- sudo apt install linux-tools-generic hwdata
- sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
复制代码 Docker安装和配置
一键安装脚本
- curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
复制代码 配置
- cat /etc/docker/daemon.json
- {
- "registry-mirrors" : ["https://docker.registry.cyou",
- "https://docker-cf.registry.cyou",
- "https://dockercf.jsdelivr.fyi",
- "https://docker.jsdelivr.fyi",
- "https://dockertest.jsdelivr.fyi",
- "https://mirror.aliyuncs.com",
- "https://dockerproxy.com",
- "https://mirror.baidubce.com",
- "https://docker.m.daocloud.io",
- "https://docker.nju.edu.cn",
- "https://docker.mirrors.sjtug.sjtu.edu.cn",
- "https://docker.mirrors.ustc.edu.cn",
- "https://mirror.iscas.ac.cn",
- "https://docker.rainbond.cc",
- "https://do.nark.eu.org",
- "https://dc.j8.work",
- "https://dockerproxy.com",
- "https://gst6rzl9.mirror.aliyuncs.com",
- "https://registry.docker-cn.com",
- "http://hub-mirror.c.163.com",
- "http://mirrors.ustc.edu.cn/",
- "https://mirrors.tuna.tsinghua.edu.cn/",
- "http://mirrors.sohu.com/"
- ],
- "insecure-registries" : [
- "registry.docker-cn.com",
- "docker.mirrors.ustc.edu.cn"
- ],
- "debug": true,
- "experimental": false
- }
复制代码- sudo systemctl daemon-reload
- sudo systemctl restart docker
复制代码 测试Docker
- sudo docker pull hello-world
- Using default tag: latest
- latest: Pulling from library/hello-world
- Digest: sha256:ec153840d1e635ac434fab5e377081f17e0e15afab27beb3f726c3265039cfff
- Status: Image is up to date for hello-world:latest
- docker.io/library/hello-world:latest
复制代码- sudo docker run hello-world
- [sudo] password for cmf:
- Hello from Docker!
- This message shows that your installation appears to be working correctly.
- To generate this message, Docker took the following steps:
- 1. The Docker client contacted the Docker daemon.
- 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
- (amd64)
- 3. The Docker daemon created a new container from that image which runs the
- executable that produces the output you are currently reading.
- 4. The Docker daemon streamed that output to the Docker client, which sent it
- to your terminal.
- To try something more ambitious, you can run an Ubuntu container with:
- $ docker run -it ubuntu bash
- Share images, automate workflows, and more with a free Docker ID:
- https://hub.docker.com/
- For more examples and ideas, visit:
- https://docs.docker.com/get-started/
复制代码 设置以非 root 用户身份管理 Docker
- Docker Engine 的 Linux 安装后步骤
创建docker组。将您的用户添加到docker组。- sudo usermod -aG docker $USER
复制代码 注销并重新登录WSL2,在Windows Cmd下执行。还可以运行以下命令来激活对组的更改:验证是否可以在没有sudo的情况下运行命令。- docker run hello-world
- Hello from Docker!
- This message shows that your installation appears to be working correctly.
- To generate this message, Docker took the following steps:
- 1. The Docker client contacted the Docker daemon.
- 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
- (amd64)
- 3. The Docker daemon created a new container from that image which runs the
- executable that produces the output you are currently reading.
- 4. The Docker daemon streamed that output to the Docker client, which sent it
- to your terminal.
- To try something more ambitious, you can run an Ubuntu container with:
- $ docker run -it ubuntu bash
- Share images, automate workflows, and more with a free Docker ID:
- https://hub.docker.com/
- For more examples and ideas, visit:
- https://docs.docker.com/get-started/
复制代码 拉取Docker镜像
- cat docker-compose.yml
- version: "3.8"
- services:
- esp-idf:
- image: espressif/idf
- container_name: esp-idf-builder
- working_dir: /project
- volumes:
- - .:/project
- environment:
- - HOME=/tmp
- - IDF_GIT_SAFE_DIR=/project
- tty: true
- stdin_open: true
复制代码 VsCode
- Visual Studio Code Download
需要安装的插件
- Dev Containers
- Remote Development
- ESP-IDF
Code
- git clone https://github.com/espressif/esp-idf.git
复制代码 使用hello_world为示例工程- cp -rf esp-idf/examples/get-started/hello_world .
复制代码 使用vscode打开hello_world工程在VsCode的菜单栏选择 查看 > 命令面板,在弹出的对话框中输入ESP-IDF: Add docker container configuration。
然后当前项目的 .devcontainer 文件夹就会自动生成了。下一步在点击左下角的连接->在容器中重新打开。
在 Docker 容器中使用外部 USB 转串口设备
Windows中下载并安装usbipd-win工具
dmesg可以看到wsl2中已经识别到了一个ttyACM0,这时我们在回到VsCode。
在下面一行配置中,串口配置端口就选择ttyACM0,设备目标自行根据开发板选择,然后就可以点击Build Project,看我这里编译成功了!
接下载再试试烧录。
我选择的用UART烧录,看打印信息是烧录成功了,具体我们点击Monitor Devict试下。
优雅!
参考资料
- 使用Docker容器的ESP32开发环境搭建
- Docker官方文档
- 如何在 Windows 上安装 WSL2
- 如何将USB 设备连接到 WSL 2 上运行的 Linux 分发版
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |