什么是WSL
WSL(Windows Subsystem for Linux) 适用于Linux的Windows子系统
通俗点说:有人习惯了windows下面开发,但是有些东西的开发又需要linux,这时候装个双系统尼,来回切换太麻烦,所以windows就开发了个功能叫做windows子系统,该子系统就是linux系统。可以解决windows与linux共存,无缝切换。并且文件共享等等好处。以上都是我自己的揣测,如有错误请见谅。此次使用WSL来开发ESP8266_RTOS_IDF,是听说了ESP8266_RTOS_IDF在linux下编译速度快,特来试试。
打开WSL功能
请按照该步骤依次操作:
打开服务
打开控制面板
>>> 点击程序
>>点击程序和功能
>>点击启动或关闭Windows功能
>>>勾选适用于Linux的Windows子系统
- windows下怎么访问ubuntu的
采用远程的方法,win+R
输入\\wsl$
就可以看到 - windows下的文件ubuntu系统下怎么访问
输入cd /mnt
之后ls -all
就可以看到所有的盘了。接下来就一步步的cd了
安装linux系统
到Microsoft Store
中搜索linux,装个ubuntu系统(系统随意)。
更改镜像源(方便安装更新的时候更快)。这里不多加介绍,度娘问问一大堆。
系统下载完之后安装后就会自动启动了。
- 关闭后桌面没有了怎么再次打开尼?
到开始栏去找,然后选择固定到任务栏,下次就不麻烦找了。
ESP8266_RTOS_IDF linux下的环境搭建
安装依赖包:
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial
安装工具链
- 在用户目录下创建esp文件夹
mkdir -p ~/esp
cd ~/esp
- 获取工具链
wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
- 解压工具链
tar -xzf xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz
rm xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz
- 环境变量设置
vim ~/.profile
打开后按下i
进如编辑,将export PATH="$PATH:$HOME/esp/xtensa-lx106-elf/bin"
copy到文件末尾,按下Ese
按键,按下Shiht+:
,输入wq
保存退出。重启控制台,输入printenv PATH
查看环境变量是否设置成功。
获取SDK
- 下载SDK包
随便到哪个盘去git一下(可能你的linux没有git,那就需要装一下,度娘会为你解答),这里注意下clone的时候需要使用递归clone
git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
- 安装SDK的python依赖包
cd到ESP8266_RTOS_SDK目录下
可能出错,因为没有安装pip
sudo apt install python-pip
安装完还不算完事,pip会特别慢,要更换下pip源,有代理的大哥略过:
这里不多介绍,参考linux下pip源设置
python -m pip install --user -r $IDF_PATH/requirements.txt
- 设置环境变量IDF_PATH
按照官方说法:工具链程序使用IDF_PATH环境变量访问ESP8266_RTOS_SDK。这个变量应该在您的PC上设置,否则项目将不会生成。设置可以手动完成,每次重新启动PC。另一个选项是通过在用户配置文件中定义IDF_PATH来永久性地设置它。
vim ~.profile
在文件末尾添加IDF_PATH环境变量。(该环境变量就是SDK的路径)
添加完后记得重启控制台!!!
使用printenv IDF_PATH
查看是否设置成功
开始编译
这部分操作和msy32的操作一样的了。
在SDK的根目录下cd到demo目录下如:
cd examples/get-started/hello_world/
如果之前在windows下编译过就先make clean
一下
然后再输入:
make all
等待编译完成吧。。。。
实际测试下来并没有多快,但是linux下编译就是有种逼格,有木有。。。。
到此为止了,不得不感叹下WSL真是个好东西!!!可能要研究研究了,哈哈哈哈