前言
最近在腾讯云物联网平台买了一个月的标准示例送了一块ESP-12S的开发板,开始系统的学习ESP8266,也因此大大小小已经重装过ubuntu好几次了,想来想去还是记录一下ESP8266_RTOS_SDK_V3.0的linux环境搭建过程,从装完操作系统开始一步一步搭建,希望大家能避免不必要的坑。(文中使用shell指令都基于相对路径)
Linux环境搭建
虚拟机:VMware Workstation 16 Pro
Ubuntu操作系统:ubuntu-18.04.5-desktop-amd64.ios
阿里云镜像:(比较接近我目前的版本)ubuntu-18.04.6-desktop-amd64.iso
搭建环境教程这边就不细说了,自行百度参考,或者有空的时候我再把链接附上。
Linux下软件安装和配置
目录英文切换:家目录下的中文文件名不适于终端操作,建议切换英文文件名。
-
设置>>区域与语言>>选择英语>>重启>>弹窗勾选不再提醒并选择更新文件名
-
设置>>语言支持>>选择中文>>重启>>完成>>查看家目录文件
Vmware tools
解决屏幕固定比例和部分操作问题
- 虚拟机菜单栏虚拟机安装VMware Tools
- 光盘文件在/media/faceless/下
- 复制VMware Tools文件到当前目录
sudo cp -r /media/faceless/VMware\ Tools/ .
- 进入VMware Tools并解压VMwareTools-10.3.22-15902021.tar.gz
cd VMware\ Tools/
ls -la
sudo tar -zxvf VMwareTools-10.3.22-15902021.tar.gz
- 执行sh文件安装VMware Tools
cd vmware-tools-distrib/
sudo ./vmware-install.pl
Vim编辑器
sudo apt-get purge vim-common
sudo apt-get install vim
使用阿里云镜像源下载
备份linux下载源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo vim /etc/apt/sources.list
阿里云Ubuntu镜像源获取
将符合改ubuntu版本的镜像源加入并按ESC再输入:wq!保存,最后需要更新一下源
更新软件镜像源列表
sudo apt-get update
Windows与ubuntu文件互传(FTP服务和FTP客户端FileZilla)
Ubuntu下FTP服务
下载安装FTP服务
sudo apt-get install vsftpd
修改配置文件vsftpd.conf
sudo vim /etc/vsftpd.conf
local_enable=YES
write_enable=YES
设置完配置需要重启FTP才能生效
sudo /etc/init.d/vsftpd restart
下载安装网络工具(使用ifconfig查看ip地址)
sudo apt install net-tools
FileZilla软件
根据自己的电脑版本选择相应的FileZilla
在windows下打开FileZilla客户端,在菜单栏选择文件>>站点管理>>新建站点配置如图,我的Ubuntu主机是192.168.41.133,然后输入用户的账号密码即可连接
此时连接成功,左侧为windows下的文件,右侧为ubuntu下的文件
SDK基本环境搭建
安装依赖包
环境搭建所需最新软件包文档
如下是目前博主亲测可使用的依赖包指令,安装时间比较漫长
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 libncurses5-dev
SDK工具链
下载地址:xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
这边我已经下载完了,通过FilaZilla客户端传到Ubuntu,解压工具链压缩包到ESP8266目录下
sudo tar -zxvf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
修改其文件下的权限
sudo chmod 777 -R xtensa-lx106-elf
获取ESP8266_RTOS_SDK源码
- 官方拉取源码
sudo git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
- 建议使用半颗心脏博主贡献的原仓库资源(感谢大佬分享)
拉取源码
sudo git clone https://gitee.com/xuhongv/ESP8266_RTOS_SDK.git
修改ESP8266_RTOS_SDK文件权限
sudo chmod 777 -R ESP8266_RTOS_SDK/
由于该子模块不规范,需要对.gitmodules修改
cd ESP8266_RTOS_SDK/
sudo vim .gitmodules
将文件里面的内容修改成以下内容并按ESC再输入:wq!保存
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = https://gitee.com/xuhongv/cJSON.git
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = https://gitee.com/xuhongv/mbedtls.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = https://gitee.com/xuhongv/esp-lwip.git
[submodule "components/mqtt/esp-mqtt"]
path = components/mqtt/esp-mqtt
url = https://gitee.com/xuhongv/esp-mqtt.git
[submodule "components/coap/libcoap"]
path = components/coap/libcoap
url = https://gitee.com/xuhongv/libcoap.git
修改完毕需要更新拉取子模块源码
sudo git submodule update --init --recursive
设置环境变量
工具链路径:/home/faceless/ESP8266/xtensa-lx106-elf
SDK路径:/home/faceless/ESP8266/ESP8266_RTOS_SDK
修改bashrc文件内容
sudo vim ~/.bashrc
添加以下内容并按ESC再输入:wq!保存
export PATH=$PATH:/home/faceless/ESP8266/xtensa-lx106-elf/bin
export IDF_PATH=/home/faceless/ESP8266/ESP8266_RTOS_SDK
更新bashrc文件内容
source ~/.bashrc
查看工具链设置状态
xtensa-lx106-elf-gcc -v
查看SDK设置状态
echo $IDF_PATH
编译示例代码
cd examples/get-started/hello_world/
make menuconfig
之后make menuconfig还是会报错,根据提示需要更新requirements.txt文件
/usr/bin/python -m pip install --user -r /home/faceless/ESP8266/ESP8266_RTOS_SDK/requirements.txt
终于可以了!
make menuconfig
编译代码
make all
烧写代码
make flash
以上问题可能有两种
- 硬件未连接,将硬件连接到虚拟机下
- 未设置串口权限,需要sudo chmod 777 /dev/ttyUSB0
若问题解决的话 会连接硬件并烧写程序
串口显示
make monitor
一般我直接使用
make flash monitor