esp8266 linux

2018-10-29 09:21:21 mianhuantang848989 阅读数 2314

0.前言
最近在研究WIFI模块,发现一块由上海乐鑫公司开发的ESP8266芯片,非常便宜,但功能并不弱,支持二次开发。针对ESP8266模块,乐鑫官方提供的是Linux环境的开发工具,正好能借此熟悉一下Linux的平台上的软件开发。

1.安装Ubuntu
乐鑫官网已经有虚拟机下搭建好的虚拟机,打开就可以直接使用。我为了熟悉linux平台安装配置过程,采用vmware虚拟机再重新安装一个ubuntu系统,走一遍流程。

1.1。下载Ubuntu镜像
打开ubuntu官方网站https://www.ubuntu.com/download,下载一个桌面桌面版ISO镜像。 
我下载的是16.04 LTS版本。

1.2。下载并安装VMware Workstation
去VMware,然后选择VirtualBox,它是免费的。

1.3。安装Ubuntu系统
打开VMware Workstation,新建一个虚拟机
选择安装镜像,选择刚才下载的Ubuntu安装文件。
输入用户名,密码,下
等待安装过程结束(安装结束后虚拟机会自动重启,可能会碰到虚拟机不能重启,则手动重启一下)
1.4。安装VMware Tools
安装完成后进入系统,发现VMware Tools已经安装好了,如果没有自动安装,点击菜单栏虚拟机 - >安装VMware Tools。方便以后主机与ubuntu之间传文件。

2.系统配置及常用软件安装
系统安装好以后我们再安装一些基本工具,做一些简单配置,可以使用ubuntu系统更好用。

2.1系统更新
执行以下命令更新系统安装源及软件更新。这两条命令比较耗时,可以先跳过,等以后有空再处理。

sudo apt-get update
sudo apt-get upgrade
1
2
2.2安装git
有了git可以很方便的克隆网上的开源代码,也可以管理自己编写的代码。有了git,整个github就是你的了(还有git .oschina.net)。

sudo apt-get install git
1
测试一下

git --version
1


2.3安装zsh
一句话,zsh是sh中的极品。很好用,特别是补全功能,很强大。此处就不详细安装过程了,请自行度娘。

2.1更新VI编辑器配置文件
配置一下VIM,可以是他用来来更顺手。找到一个github上星星比较多的vim配置文件, 
https://github.com/amix/vimrc 
你也可以搜索尝试其他的vim配置文件,网上有很多。

sudo apt-get install vim
git clone git://github.com/amix/vimrc.git~ / .vim_runtime
sh~ / .vim_runtime / install_basic_vimrc.sh
1
2
3


Ubuntu的自带的VI比较简陋,安装一个完全版的VIM,再结合上述配置文件,VI编辑起来就顺手多了。

3.下载安装ESP8266编译工具
写了这么多还没到正题:),下面开始下载配置esp8266工具链,其实很简单。

3.1下载工具链压缩包
打开乐鑫官方给出的下载地址 
https://pan.baidu.com/s/1dEOw8bZ 
密码:v81b 
下载其中的xtensa-lx106-elf.tar.bz2文件。 


3.2解压安装工具链
将下载的xtensa-lx106-elf.tar.bz2文件拖到ubuntu虚拟机中。

cd~ / Desktop
sudo tar jxvf xtensa-lx106-elf.tar.bz2 -C / opt
1
2
将工具链解压安装到/ opt文件夹下,查看一下

ls / opt
1


3.3配置环境变量
gedit~ / .profile
1
在.profile文件中增加如下代码,保存退出 


记得退出 - >登录重新登录一下ubuntu,使用PATH配置生效。

3.4测试工具链
运行测试下

xtensa-lx106-elf-gcc -v
1


嗯?出错!

直接绝对地址运行下

/ opt / xtensa-lx106-elf / bin / xtensa-lx106-elf-gcc -v
1
依然提示命令不存在? 


模式也是正确的,有执行权限

ll / opt / xtensa-lx106-elf / bin / xtensa-lx106-elf-gcc
1


明明文件存在,怎么提示找不到?

度娘告诉我原来我的ubuntu的是64位的,运行不了32位程序,需要安装一下依赖包:

sudo apt-get install lib32ncurses5 lib32z1
1
好的,再来测试一下

xtensa-lx106-elf-gcc -v
1


好!至此,esp8266的工具链就安装好了。

参考
1。乐鑫官网http://www.espressif.com

来至:https://blog.csdn.net/embsun/article/details/53808720

2020-03-31 15:08:26 qq_41714908 阅读数 884

该系列博文是因为制作毕业设计时使用到了ESP8266,然后发现了8266巨大的魅力,然后博客是为了记录这一路的学习和笔记,一路参考了很多这方面的大佬的博客,学习到很多,推荐一位大佬徐哥,入坑8266就是看了他的博客,学到了很多很多。
本文使用的Linux环境是Ubuntu 16.04;

1. 获取交叉工具链

首先下载对应的交叉编译工具链,将其保存到事先创建好的文件夹中 /ESP-Work

2. 安装软件包

sudo apt-get install git wget libncurses-dev flex bison gperf python python-click python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

3. 解压交叉工具链压缩包

tar -xzf xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz 

4. 配置环境变量

进入xtensa-lx106-elf下的bin目录,可以看到

在这里插入图片描述

将当前路径写入到**~/.bashrc**中去

#ESP_8266
export ESP_8266=/home/bbigq/ESP-Work/xtensa-lx106-elf/bin
export PATH=$PATH:$ESP_8266

5. 检测是否安装成功

运行

xtensa-lx106-elf-gcc -v

出现如下提示即安装成功

Using built-in specs.
COLLECT_GCC=xtensa-lx106-elf-gcc
COLLECT_LTO_WRAPPER=/home/bbigq/ESP-Work/xtensa-lx106-elf/bin/../libexec/gcc/xtensa-lx106-elf/5.2.0/lto-wrapper
Target: xtensa-lx106-elf
Configured with: /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-lx106-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-lx106-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --with-sysroot=/builds/idf/crosstool-NG/builds/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-100-ge567ec7' --disable-__cxa_atexit --enable-cxx-flags='-fno-exceptions -fno-rtti' --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-cloog=/builds/idf/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-libelf=/builds/idf/crosstool-NG/.build/xtensa-lx106-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-libgomp --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-nls --disable-multilib --enable-languages=c,c++
Thread model: single
gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-100-ge567ec7) 

可见我的gcc版本是5.2.0

6. 获取ESP8266_RTOS_SDK

我习惯将一个系列的工程放在同一个文件夹下,所以在*/ESP-Work*文件夹下进行获取

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

6.1 将ESP8266_RTOS_SDK的工程链接添加到环境变量

export ESP_8266_IDF=/home/bbigq/ESP-Work/ESP8266_RTOS_SDK
export IDF_PATH=$ESP_8266_IDF

6.2 根据官方文档去检验是否已经成功搭建环境

进到克隆下来的文件目录下

cd /ESP8266_RTOS_SDK/examples/get-started/hello_world
make menuconfig

如果没有问题的话,会出现一个蓝色的框框,如本文后图;

在我系统的操作下,有提示一下问题

......
make[1]: Leaving directory '/home/bbigq/ESP-Work/ESP8266_RTOS_SDK/tools/kconfig'
The following Python requirements are not satisfied:
cryptography>=2.1.4
Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.
Alternatively, you can run "/usr/bin/python -m pip install --user -r /home/bbigq/ESP-Work/ESP8266_RTOS_SDK/requirements.txt" for resolving the issue.
make: *** No rule to make target 'check_python_dependencies', needed by 'menuconfig'.  Stop.

英语是弱项哈,但是不难看出应该是python版本不适用,还提供了解决方案

Alternatively, you can run "/usr/bin/python -m pip install --user -r /home/bbigq/ESP-Work/ESP8266_RTOS_SDK/requirements.txt" for resolving the issue.

运行提示中的命令试试:

/usr/bin/python -m pip install --user -r /home/bbigq/ESP-Work/ESP8266_RTOS_SDK/requirements.txt

是个漫长的过程,不用着急,完了之后再运行一下。

make menuconfig

在这里插入图片描述

成功了!

搭建环境总会遇到各种各样的问题,可能会在不同的电脑,相同的系统安装都会出现不一样的问题,但是很多情况都是因为一些依赖库没安装好或者某些库的版本不匹配等等,去分析失败的错误,总能找到解决的办法


我的GITHUB

我的个人博客

CSDN

2015-09-19 11:11:45 yfj300 阅读数 11629

ESP8266的Windows开发环境编译程序实在是太慢了,应该Linux速度还不错,至少我是这么认为的,于是在Ubuntu15.4 x64下尝试搭建其开发环境。
开发环境的搭建参考wiki


安装必需库

sudo apt-get install git autoconf gperf bison flex texinfo gawk libtool libncurses5-dev expat

ubuntu默认安装的libtool好像太低,为了确保版本高于1.5.26。所以最好对libtool进行升级。
1. wget ftp://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz
2. tar -xvf libtool-2.4.6.tar.xz
3. cd libtool-2.4.6
4. ./configure && sudo make install


下载交叉编译工具

git clone -b lx106 git://github.com/jcmvbkbc/crosstool-NG.git

http://crosstool-ng.org/download/crosstool-ng/


编译交叉编译工具

cd crosstool-NG/
./bootstrap && ./configure –prefix=`pwd` && make && make install


生成配置文件

./ct-ng xtensa-lx106-elf


编译目标文件

./ct-ng build
最后gdb编译不成功,说是expat missing,调试一般用不到,就不管了,因为已经安装过expat还是不行,就算了,反正gdb对于我来讲基本上是用不到的。
生成的目标文件位于当前目录build。


设置环境变量

编译好后,还需要将xtensa-lx106-elf加入环境变量。
cd ~
gedit .bashrc
在文件最后添加
XCC=/tmps/crosstool-NG/builds/xtensa-lx106-elf
export PATH=$XCC/bin: $ PATH
保存退出


添加ESP8266库及头文件

编译ESP8266必须添加以下库文件,不然就会报找不到相应库(如: xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: cannot find -lhal)
wget https://github.com/esp8266/esp8266-wiki/raw/master/libs/libc.a
wget https://github.com/esp8266/esp8266-wiki/raw/master/libs/libhal.a
wget https://github.com/esp8266/esp8266-wiki/raw/master/include.tgz
mv libc.a libhal.a $XCC/xtensa-lx106-elf/sysroot/lib/
tar -xvf include.tgz
mv include/* $XCC/include


安装Linux下载工具

wget https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz#md5=794506184df83ef2290de0d18803dd11
tar -xvf pyserial-2.7.tar.gz
cd pyserial-2.7/
sudo python setup.py install

wget https://github.com/themadinventor/esptool/blob/master/esptool.py
sudo mv esptool.py /usr/bin


下载SDK

  1. git clone https://github.com/espressif/esp_iot_rtos_sdk
  2. git clone https://github.com/espressif/esp8266_iot_platform
  3. git clone https://github.com/espressif/esp8266_at
  4. git clone https://github.com/nodemcu/nodemcu-firmware
2018-12-13 15:27:24 chenjiawei8 阅读数 3054

看网上说linux下开发比较舒服,就想试试在linux上搭建一个环境。
用的是ESP8266_RTOS_SDK v3.1的,作为一个新手,仅仅是搭个环境,顺便熟悉一下好久没用的linux,入门还是先拿以前的环境和sdk,毕竟资料和教程多。sdk v3.1是esp-idf的架构,编译、二次开发方便了很多,其他一些库的更新就没去多了解了(反正最近一段时间是用不上)。

系统环境安装

Windows10系统下装虚拟机ubuntu16.04 64bit
具体虚拟机的安装可以参考我的另一篇博客
TensorFlow新手入门笔记(1)——环境配置

编译工具链搭建

首先打开你的终端,到你的用户主目录

cd ~

创建编译链目录

//下面两种方法选一个就行,建议第一个
mkdir -p esp/toolchain                    //直接创建多级目录
//或者
mkdir esp
cd esp
mkdir toolchain                           //一级一级创建

进入刚刚创建的目录下

cd ~/esp/toolchain
//可以用pwd看一眼是不是在这个目录,用ls看一眼目录下的文件,你们现在应该是空的没有东西的。

在这里插入图片描述
开始下载解压编译工具链

//下载
wget -c https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-88-gde0bdc1-4.8.5.tar.gz
//解压
tar xvf xtensa-lx106-elf-linux64-1.22.0-88-gde0bdc1-4.8.5.tar.gz

设置环境变量

export PATH=$HOME/esp/toolchain/xtensa-lx106-elf/bin:$PATH

下载esp8266-rtos-sdk

//先创建一个目录
cd ~/esp
mkdir esp8266
//进入刚刚创建的目录
cd esp8266
//git
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git

可能会报错提示你没有安装git,按照提示安装就行,一般都需要管理员权限,命令前加sudo就行。后面还有一系列的东西没有安装,都按照提示安装就行,到时候具体点再标注一下。一般是用apt-get。比如这个git

sudo apt-get install git

下载sdk比较慢,静静的等他下完吧,我是Windows上用IDM工具直接去GitHub上下载的,然后拖过去解压缩。
下载完后,你的esp8266目录下就有一个这个东西啦

然后配置sdk环境变量

export IDF_PATH=$HOME/esp/esp8266/ESP8266_RTOS_SDK

到这里东西基本都准备好了,可以找个例程编译下载一下了。
按照传统,打印一个helloworld先。
进入到我们get-started例子的主目录

cd ~/esp/esp8266/ESP8266_RTOS_SDK/examples/get-started/project_template/

在这里插入图片描述
用vim打开main目录下的user_main.c文件
在这里插入图片描述
vim的操作就不细说了,有兴趣的可以了解一下,神器。
按i进入编辑,然后在app_main里加个打印,然后按esc返回命令模式,按:进入末行模式,输入wq回车保存退出。
在这里插入图片描述
编辑好后用make menuconfig查看编辑串口,flash等配置,具体很多细节没去了解,就写一下我用到的吧,我用的是nodemcu,esp8266-12e,32mflash
在这里插入图片描述
上下操作上面的选择,左右操作下面一栏,选serial flasher config回车进到里面
在这里插入图片描述
设置好后选save,然后退出就行。
打开menuconfig的时候可能会有这个错误,那是因为你中断框太小了,拉大就行

mples/get-started/project_template# make menuconfig
WARNING: Toolchain version is not supported: 1.22.0-88-gde0bdc1
Expected to see version: 1.22.0-92-g8facf4c
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Please download and use the toolchain from the URL of README.md
WARNING: Compiler version is not supported: 4.8.5
Expected to see version(s): 5.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Please download and use the toolchain from the URL of README.md
MENUCONFIG
Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
make: *** No rule to make target 'menuconfig', needed by '/home/chenjiawei/esp/esp8266/ESP8266_RTOS_SDK/examples/get-started/project_template/build/include/config/auto.conf'。 停止。

设置好后就可以make了,直接输入make,这是编译ok的图
在这里插入图片描述
不过刚开始的时候遇到了好多问题,一堆东西没装,应该有落下的,欢迎评论区留言讨论,先把记得的列一下吧。

serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such fil

这个好像是没找到设备文件,你插拔一下串口去/dev目录看看有没有相关设备文件,有就ok了,插拔完记得ls刷新目录。

ImportError: No module named serial.tools.list_ports

这个是缺一个python的模块,好像是串口相关的,安装一下就行

easy_install pyserial

sudo apt-get install python-pip

sudo pip install pyserial

可以检查一下,这样就没问题了,输入quit()退出
在这里插入图片描述
其他就是看打印出什么,缺啥apt-get啥,有什么欢迎讨论区讨论。
make完后我们插上板子,先擦除,在烧录,这个下载的比Windows快。

make erase_flash

make flash

在这里插入图片描述
在这里插入图片描述
然后用乐鑫的监视工具看一下结果,差不多就是个串口助手一样的,不过有颜色区分,挺好的。

make monitor

在这里插入图片描述
可以按复位键看看效果,然后就可以开心的学习了。

两个坑

  1. 刚开始不知道怎么退出这个监视工具,直接关终端结束进程。最后去官网找到了(还是官网靠谱)ctrl+]退出。
  2. 这个是为了第一次搭建快速看效果留下的坑,两个环境变量最好是放到用户目录下的.bashrc文件下,不然每次重新开终端都要配置环境变量。保存环境变量的方法网上有好多,我写一个我常用的吧,只对当前用户有效。编辑用户主目录下的.bashrc文件。
vim ./bashrc
//没有配置过vim想复制粘贴的可以用gedit编辑器打开,就跟Windows的记事本一样。
gedit  ./bashrc

然后把这两句话加到最后,保存退出

export PATH=$HOME/esp/toolchain/xtensa-lx106-elf/bin:$PATH
export IDF_PATH=$HOME/esp/esp8266/ESP8266_RTOS_SDK

在这里插入图片描述
然后终端source一下就行了

source ~/.bashrc

在这里插入图片描述
最好reboot重启一下,不过应该关系不大。