ubuntu系统搭建ESP32 开发环境

前言

ESP32 可以说是物联网市场一款比较精悍的芯片了。集成了BLE和802.11b Wi-Fi。低功耗、同时处理速度还挺强的。目前自己也是刚入手ESP32。可是在装环境的时候,踩了不少坑。
当然ESP32 支持的开发方式挺多的。例如在 arduino开发,windows下的msys32加esp-idf的开发环境(因为msys32 是虚拟一个linux环境,所以这种方式编译程序会比较慢),也可以用Eclipse IDE+CMake+esp-idf开发,还有可以使用linux 系统下的GNU Make + esp-idf 开发。
本人使用的是linux系统下的开发环境。这里就不扯了,下面开始填坑之路。
环境的安装主要参考。
(注意:因为在安装环境的过程中需要下载比较多的库和工具,所以要保证网络通畅)

一、安装准备

  • 这里使用linux发行版本是ubuntu 16.04 LTS
  • 需要的基本环境还有python2git工具(没有这些的工具的可以百度安装)
  • mkdir -p ~/esp32/source ~/esp32/crossTool ~/esp32/demos 使用这个命令创建好这些目录

1、更新ubuntu的源

  1. 为了后面能正常安装工具,最好更新一下源。同时最好将源切换为国内的源。ubuntu 系统的是如下命令更新源,其他的Linux 发行版本可以百度更新:
  • sudo apt-get install update
  1. 因为安装esp32环境的过程中需要安装python的库,所以这里也最好将 pip 工具更新到最新版本。目前最新的版本是19.3.1,使用下面命令更新,如果不是最新版本一般都能正常更新。
  • sudo python -m pip install --default-timeout=100 --upgrade pip

2、出错处理:

pip工具更新到最新版本之后,使用pip install 安装包有可能会出现下面的错误:

  # 错误的原因是新版本的库找不到 main 模块了
  Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
  from pip import main
ImportError: cannot import name 'main'

解决的方法是修改 /usr/bin/pip 源程序
sudo vi /usr/bin/pip 命令打开源程序
然后按照下面的方式修改,修改完之后应该就不会报错了

################修改前程序####################

import sys
from pip import main
if __name__ == '__main__':
    sys.exit(main())

################修改前程序####################

################修改后程序####################

import sys
from pip import __main__  # 这行修改
if __name__ == '__main__':
    sys.exit(__main__._main()) #这行修改

################修改后程序####################

3、按装依赖包

在中的提到ununtu系统(其他系统或发行版本可以去官网查看)需要安装下面的依赖包。执行下面命令即可,或者去官网查看。

sudo apt-get install gcc git wget make flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools

二、交叉工具

1、下载交叉工具(xtensa-esp32-elf)

这个页面有交叉工具的下载连接,如果下面给的这个链接下载不了,可以去官网复制,然后替换掉下面的链接(注意自己的是32系统还是64位系统)。然后执行下面的命令来下载 。(尽量下载官方最新稳定的工具和库)

  1. cd ~/esp32/crossTool/
  2. wget -c https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp-2019r2-linux-amd64.tar.gz
  3. tar zxvf xtensa-esp32-elf-gcc8_2_0-esp-2019r2-linux-amd64.tar.gz 具体的包名以下载的为准

2、设置交叉工具的环境变量

执行下面的步骤来设置环境变量
1、使用 sudo vi ~/.profile命令打开这个文件
2、在.profile最后一行添加export PATH="$HOME/esp32/crossTool/xtensa-esp32-elf/bin:$PATH"
3、执行reboot 命令重启系统,重启后交叉工具环境变量就起效了
4、echo $PATH 看一下有没有设置成功

三、源码库下载

1、下载源码库(esp-idf)

  • 有库esp-idf的链接,如果下面的链接访问不了,可以去官网查看,或者自行去githubesp-idf 库然后下载。
  • 注意事项: 用 git 下载的时候一定要加 --recursive 选项,因为在下载完库之后还要下载比较多的依赖种子。如果不下载依赖种子的话后面编译的时候会报各种奇怪的错误例如: 找不到 micro-ecc目录之类的。 如果没加 --recursive 选项, 下载完之后需要执行 cd ~/esp32/source/git submodule update --init 命令。
  • 执行下面的命令下载 esp-idf 源码库
    1. cd ~/esp32/source/
    2. git clone --recursive https://github.com/espressif/esp-idf.git

2、设置环境变量

执行下面的步骤来设置esp-idf环变境量
1、使用 sudo vi ~/.profile命令打开这个文件
2、在.profile最后一行添加export IDF_PATH="$HOME/esp32/source/esp-idf"
3、执行reboot 命令重启系统,重启后交叉工具环境变量就起效了
4、echo $IDF_PATH 看一下有没有设置成功

四、安装 Python 软件包

在这个过程几乎是绝望的,可能是网络不好然后导致下载软件包下载老是超时失败。经历过好几十次的尝试之后,最终把坑给填上了。下面来介绍一下填坑的办法。

1、官方安装方法

官方是执行下面的命令安装的。个人在这个过程中只能能下在前面一两个软件包,然后就报超时失败了。历经几十遍的尝试,最后我放弃了。如果能全部下安装完成就不用执行下面的解决办法了

  • python -m pip install --user -r $IDF_PATH/requirements.txt

2、解决办法一

在官方给的基础上增加了超时限制。命令如下:

  • python -m pip install --default-timeout=100 --user -r $IDF_PATH/requirements.txt
  • 虽然增加了超时限制,但是还是会报超时异常。而且这种方式安装有个缺点,就是报超时异常之后,下一次尝试之后又要全部重新下载。当然如果顺利的话就可以下载完了。又经历了几十遍之后,我真的要绝望了。然后果断放弃这种方法。

3、解决办法二

方法二这个方法就是查看 $IDF_PATH/requirements.txt 文件的作用是什么。文件的内容如下

# This is a list of python packages needed for ESP-IDF. This file is used with pip.
# Please see the Get Started section of the ESP-IDF Programming Guide for further information.
#
#查看 setuptools 软件包的版本是否大于或者等于 21
setuptools>=21
# The setuptools package is required to install source distributions and on some systems is not installed by default.
# Please keep it as the first item of this list. Version 21 is required to handle PEP 508 environment markers.
#

click>=5.0  #比较 click 软件包的版本是否大于或者等于 5.0
pyserial>=3.0  #比较 pyserial 软件包的版本是否大于或者等于 3.0
future>=0.15.2 #比较 future 软件包的版本是否大于或者等于 0.15.2
cryptography>=2.1.4 #比较 cryptography 软件包的版本是否大于或者等于 2.1.4
pyparsing>=2.0.3,<2.4.0 #比较 pyparsing软件包的版本是否大于或者等于 2.0.3 并且 小于 2.4.0
pyelftools>=0.22 #比较 pyelftools 软件包的版本是否大于或者等于 0.22
# windows-curses are required in Windows command line but cannot be installed in MSYS2. A requirement like
# "windows-curses; sys_platform == 'win32'" would want to install the package on both of them. There is no environment
# marker for detecting MSYS2. So instead, a dummy custom package is used with "windows-curses" dependency for Windows
# command line.
file://${IDF_PATH}/tools/kconfig_new/esp-windows-curses; sys_platform == 'win32'

大概了解到这个文件的内容之后,就是用命令来一个一个的更新,虽然有些软件包还是下载超时,但是至少能正常的安装部分了。安装的命令如下:

  1. sudo pip install --default-timeout=100 --upgrade setuptools
  2. sudo pip install --default-timeout=100 --upgrade click
  3. sudo pip install --default-timeout=100 --upgrade pyserial
  4. sudo pip install --default-timeout=100 --upgrade future
  5. sudo pip install --default-timeout=100 --upgrade cryptography
  6. sudo pip install --default-timeout=100 --upgrade pyparsing
  7. sudo pip install --default-timeout=100 --upgrade pyelftools

如果上面的步骤都可以正常安装,然后就在执行一下下面的命令,看一下版本又没都正确或者没有少什么依赖库,如果全部检查通过,并且没有下载的过程就说明环境搭建完成了。如果还有的软件包下载超时,可以查看往下看 《解决办法三》

  • python -m pip install --user -r $IDF_PATH/requirements.txt

3、解决办法三

这个办法是最后的一个办法了,如果这个在解决不了,我也就没辙了。这个办法就是去 Python packages官网下载离线软件包来安装。直接在官网上搜索上面的方法还没能完成的python软件包,然后下载对应的版本(这个可以在上面的方法下载的过程中能看到),然后使用浏览器下载下来。
下面我以cryptography软件包为例:

  • 我在命令行下载的过程下载的是cryptography-2.8-cp27-cp27mu-manylinux2010_x86_64 版本,所以选择 cryptography 2.8 的版本, 如下图:
  • 找到 cryptography-2.8-cp27-cp27mu-manylinux2010_x86_64.whl 软件包然后下载

下载完之后 在本地中找到 cryptography-2.8-cp27-cp27mu-manylinux2010_x86_64.whl(一般在 ~/Downloads/ 目录中),然后执行下面的命令安装:

  • sudo pip install --default-timeout=100 ~/Downloads/cryptography-2.8-cp27-cp27mu-manylinux2010_x86_64.whl
  • python -m pip install --user -r $IDF_PATH/requirements.txt 检查一下还有没有需要安装的

经历上面的方法应该可以将python的软件包按转完成

五、编译第一个demo

编译和烧写的过程可以参考乐鑫官网,这里就不过多介绍了,上面的的环境都安装成功了,一般都能正确编译。烧写的过程可能需要改一下串口的权限。环境装好了,剩下就靠自己去怎么耍了。如果个人以后做了什么比较好玩的demo也会更新上来。

原文地址:https://www.cnblogs.com/gulan-zmc/p/11992359.html

时间: 2024-09-30 15:37:56

ubuntu系统搭建ESP32 开发环境的相关文章

ubuntu下搭建android开发环境(一)安装ubuntu系统(by 星空武哥)

    转载请标注原创地址:http://blog.csdn.net/lsyz0021/article/details/52187026 ubuntu下搭建android开发环境(一)安装ubuntu系统 ubuntu下搭建android开发环境(二)设置ubuntu的root管理员密码 ubuntu下搭建android开发环境(三)ubuntu安装搜狗输入法 虽说已经有很多ubuntu的安装教程了,但是今天我还是要写一篇这样的文章,因为这篇文章是为了在ubuntu下搭载android开发环境所

ubuntu下搭建android开发环境之超顺畅模拟器

如果说android系统的卡,像耳边蚊子让人抓狂,那么android模拟器的卡,那就像午睡时的苍蝇.大概就是一样的恶心~~ 那么,这样的问题对于开发者肯定忍无可忍,我也一样,虽然我还没有入门,但我也一样纠结,为什么会这么卡??这么卡?我是i5 4G内存啊~~ 解决: 第一种解决方法(也算是比较直接,比较烧包的办法): 用真机调试~方法上篇文章有谈论,请看ubuntu下搭建android开发环境: 烧包原因:我不能兼容每个系统版本,每种型号机器,每种屏幕大小,都去搞台真机对吧~ 第二种解决方法:

cocos2d-x-2.2.3在Windows7和Ubuntu下搭建桌面开发环境(非Android环境)

要cocos2d-x-2.2.3搭建环境需要有以下的几个基本要求:(在我的小本本上) 1.一个操作系统(Win7或Ubuntu[只在这两个系统下测试过]): 2.在Win7下需要的是VS2010以上的版本(我用的是VS2012,虽然我不想用VS,但是现在我还没有办法不用IDE就编译代码),在Ubuntu下不需要,然后安装好VS2012,我没有安装那个VS2012.4的更新照样没事: 3.Python开发环境:(这个跟正常配置一样,一路Next再把Python安装目录(我用的2.7.x,因此是C:

ubuntu下搭建android开发环境(四)核心篇安装AndroidStudio、sdk、jdk(by 星空武哥)

转载请标注原创地址:http://blog.csdn.net/lsyz0021/article/details/52215996 所有的软件均在ubuntu 14.04 LTS下测试 ubuntu下搭建android开发环境(一)安装ubuntu系统 ubuntu下搭建android开发环境(二)设置ubuntu的root管理员密码 ubuntu下搭建android开发环境(三)ubuntu安装搜狗输入法 ubuntu下搭建android开发环境(四)核心篇安装AndroidStudio.sdk

Ubuntu 下搭建 Android 开发环境

网上的N多教程全是Windows平台的,而Google官网是推荐用Ubuntu开发Android,很多朋友也是用Linux的系统开发的,下面我介绍下在Linux下Android开发环镜的搭建. 一.Linux 下安装配置 JDK 自从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将"Operating System Distributor License for Java"许可证终结,这意味着第三方将不可以依据这一许可分发他们的软件包.因此Ubuntu Linux已经

在Ubuntu中搭建.NET开发环境

Mono简介Mono是Xamarin公司C#和CLR的ECMA标准基于开发的一个开源的.NET实现版本,它是Linux平台上开发.NET应用程序首选.同时其也提供了Xamarin.IOS和Xamarin.Andriod,是我们可以直接使用C#开发IOS和Andriod手机开发.安装MonoMono的乌班图版本是由社区提供维护的.以下的版本在标准的Ubuntu库中是可用的:Ubuntu Hardy (8.04 LTS):     1.2.6Ubuntu Lucid (10.04 LTS):   

ubuntu下搭建JAVA开发环境【转】

转自:http://jingyan.baidu.com/article/86fae346b696633c49121a30.html JAVA开发环境是一种跨平台的程序设计语言,可以在windows.LINUX等操作系统上进行开发.小编以前是做LINUX C开发的,最近因为工作,需要在UBUNTU下进行java开发环境的搭建,故写下这篇经验,和大家共享.参考.本篇经验分四步: 1)下载JDK 2)下载eclipse 3 ) 安装JDK 4)安装eclipse 工具/原料 UBUNTU eclips

在ubuntu下搭建python开发环境(pycharm,postgresql,virtualenv, Django)

使用的系统及软件 Ubuntu 12.10 Python 2.7.3 Django 1.4.2 Pycharm 2.6.3 Postgresql 9.1 Virtualenv Virtualenvwrapper Openjdk 在开始之前,一定要给系统做一下备份.因为如果误操作了会有不必要的麻烦.我就是误安装了Postgresql,然后出现了大问题,最后不得不把系统给重装了. Ubuntu的系统自带python 2.7,所以不用特别的设置,直接用就行.当然因为使用了Django 1.4,也无法使

安装Ubuntu并且搭建php开发环境(lamp)

一.  安装ubuntu 1.安装虚拟机:由于我是Mac 系统虚拟机选择vmware fusion,可以在网上直接下载,再在网上找个注册码,不然就只有30天试用. 2.安装操作系统:这里我选择的是ubuntu 12.04.5版本,这是稍微稳定的发行版本(lts):具体安装不难,有几个问题要注意一下: (1).开机设置为默认进入命令行设置: sudo vim /etc/default/grub 将代码:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"