基于WSL搭建ESP8266开发环境

目的

本文档用于记录 ESP8266 基于 WSL 的开发环境搭建。本人在最早接触 ESP8266 时使用的环境搭建方法是在 windows 下使用 MINGW32,这个环境下的编译非常慢,体验非常不好。后来接触到 ubuntu 下的环境搭建,但由于是使用的 vmware,来回切换也是非常的复杂。近期看到 windwos 下的 wsl 环境搭建,尝试一番后发现用起来得心应手,于是记录下来,供日后使用。

准备工作

  • 安装 WSL
  • 安装 ubuntu
  • 下载 Move WSL

环境搭建过程

1. 安装 WSL 以及 ubuntu

如何安装 wsl 以及 ubuntu 就不在赘述了,网上一搜一大把。下面从安装完 WSL 以及 ubuntu 开始。

2. 迁移 wsl

系统默认将 ubuntu 安装在了 C 盘,我们以后日常使用,ubuntu 里面的安装的内容越来越多,会导致 C 盘空间不够用,因此在安装完 wsl 之后,我们即可将其迁移到合适的盘。

wls 本身提供了 export 和 inport 功能,而 move wsl 是一个 powershell 脚本,可以帮助我们傻瓜式进行 wsl 的迁移。下面开始利用 move wsl 进行迁移

  • 确保关闭要迁移的 ubuntu

  • 管理员权限打开 powershell,进入 move wsl 文件夹,执行脚本.\move-wsl.ps1
    基于WSL搭建ESP8266开发环境_第1张图片

  • 按 2 选择 Ubuntu-20.04
    基于WSL搭建ESP8266开发环境_第2张图片

  • 选择需要迁移的文件夹路径
    基于WSL搭建ESP8266开发环境_第3张图片

  • 当出现如下界面,说明迁移已经完成
    基于WSL搭建ESP8266开发环境_第4张图片

  1. ubuntu 基本配置

3.1 更新国内源

使用 sed 命令更新 ubuntu 源为国内源以提高访问速度

sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list
sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list

执行如下命令,更新 ubuntu 中软件

apt-get update 
apt-get upgrade

3.2 linux 准备

根据乐鑫 官方文档 ,安装 ubuntu 下必要组件

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

4.tools

由于国内访问 git 较慢,乐鑫在 gitee 上为大家准备了一个 tools,可以加速访问;

  • 首先先建立工作目录并进入该路径
    在这里插入图片描述
  • 使用 git clone esp-gitee-tools
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

基于WSL搭建ESP8266开发环境_第5张图片

  • 在 esp-gitee-tools 中乐鑫为我们提供了三个工具(具体用法可查看其 readme),其中:
    在这里插入图片描述
  • List item jihu-mirror.sh 适用于解决国内开发者从 github 克隆 esp 相关仓库慢的问题
  • submodule-update.sh 是用于更新 submodule,有了 jihu 之后已经不再需要;
  • install.sh 适用于加速下载各种编译工具链
  • 执行 jihu-mirror.sh 设置镜像
./jihu-mirror.sh set

基于WSL搭建ESP8266开发环境_第6张图片

5 退出 esp-git-tools 文件夹,git clone ESP8266 SDK

git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git

由于使用了 jihu 镜像,git 上的 ESP8266 SDK 很快就 clone 下来了。

6.使用 tools 中的 install.sh 工具

  • 回到 esp-gitee-tools 文件件
  • 执行如下指令
export EGT_PATH=$(pwd)

7.设置 pip 加速

pip --version
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com

8.执行 install.sh 脚本

回到 ESP8266SDK 目录下,执行如下命令

$EGT_PATH/install.sh

报错如下:
在这里插入图片描述
执行如下三个命令后,在此执行 shell 脚本成功

python3 --version
whereis python3
sudo ln -s /usr/bin/python3 /usr/bin/python

直到出现如下界面,表明环境配置成功
基于WSL搭建ESP8266开发环境_第7张图片

9.编译运行 helloworld

  • 首先执行. ./export.sh,每次打开新的终端,都需要执行该脚本。其重要用于导入 SDK 的各种环境变量
  • 退出 ESP8266_RTOS_SDK,并建立 project 目录
    基于WSL搭建ESP8266开发环境_第8张图片
  • copy helloworld 到 project
cp -r ESP8266_RTOS_SDK/examples/get-started/hello_world/ project/
  • 进入 project 下面的 helloworld 执行 make
    报错入下:
    在这里插入图片描述
    这是因为 ubuntu 下的 curses 库未安装,执行如下指令安装
sudo apt-get install libncurses5-dev

接下来可以成功编译。

10.Monitor

10.1 usbipd

在 wsl 下,我们使用 usbipd 来讲 windows 下的 usb 串口绑定到 ubuntu 下。 usbipd下载
同时,在 wsl 环境下,我们也需要下载安装 usbipd

sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

接下来通过以下两个命令,在 powshell 中将 usb 接口绑定到 wsl

usbipd wsl list
usbipd wsl attach --busid <busid>

usbipd具体应用参考

10.2 运行 idf.py monitor 即可在 wsl 下查看 ESP8266 运行的串口 log

11.卸载与清除 ubuntu

  • 在 windows“添加删除程序”中删除需要卸载的 ubuntu;
  • 以管理员权限打开 powershell,运行 wsl -l -v 测试可以看到刚才删除的 ubuntu 还在;
    基于WSL搭建ESP8266开发环境_第9张图片
  • 运行如下命令:wsl --unregister Ubuntu-20.04
    在这里插入图片描述
  • 此时再使用 wsl -l -v 发现 Ubuntu-20.04 已经完全删除

你可能感兴趣的:(ESP,物联网)