基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

开发环境:VMware + 14.04

1.更新 cmake

准备工作:官网下载cmake-3.6.3.tar.gz(https://cmake.org/download/)1.解压文件tar -xvf cmake-3.6.3.tar.gz,并修改文件权限chmod -R 777 cmake-3.6.32.检测gcc和g++是否安装,如果没有则需安装gcc-g++:sudo apt-get install build-essential(或者直接执行这两条命令sudo apt-get install gcc,sudo apt-get install g++)3.进入cmake-3.6.3 进入命令 cd cmake-3.6.34.执行sudo ./bootstrap
5.执行sudo make
6.执行 sudo make install
7.执行 cmake –version,返回cmake版本信息,则说明安装成功

2.准备nijia

#1.安装依赖re2c
root@ubuntu:~# apt-get install re2c
root@ubuntu:~# re2c --version
re2c 1.0.1#2.下载ninja
git clone https://github.com/ninja-build/ninja.git#3.编译ninjacd ninja
./configure.py --bootstrap
#会出现报错:
subprocess.CalledProcessError: Command 're2c -b -i --no-generation-date --no-version -o ./src/depfile_parser.cc ./src/depfile_parser.in.cc' returned non-zero exit status 2.
#解决:
vi ./configure.py 删除--no-version
再执行./configure.py --bootstrap4.安装ninja
sudo cp ./ninja  /usr/bin
ninja --version

3.更新python至3.8.5

安装的Ubuntu 16操作系统里面自带的Python版本一个是2.7,一个是3.5。
如果想安装一个3.8.x的版本或其他版本。
注意:此处的安装不是由3.5.2升级到3.8.x,而是单独安装另一个版本3.8.x 。安装步骤如下:第一步:安装依赖环境:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl第二步:下载Python3.8.5的源码
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz第三步:解压      tar -zxvf Python-3.8.5.tgz;第四步:进入解压后的目录(1)cd Python-3.8.5;(2)./configure; #编译前的配置(3)make; #编译(4)sudo make install;#编译后的安装第五步:安装成功后,找到 python3.8 解释器位置,一般是 /usr/local/bin/python3.8#删除原来的软连接#rm -rf /usr/bin/python3sudo rm  /usr/bin/python#rm -rf /usr/bin/pip3#添加python3的软链接sudo ln -s /usr/local/bin/python3.8 /usr/bin/python#添加 pip3 的软链接#ln -s /usr/local/bin/pip3.8 /usr/bin/pip3查看一下是否安装成功:
$ python3 -V
$ pip3 -V
mkdir ~/esp
//把准备好的ESP-SDk和交叉编译链
//解压准备好的ESP-SDK
unzip esp-idf.zip
//解压准备好的交叉编译链
tar -zxvf xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz

设置环境变量:vi ~/.bashrc 在最后添加以下内容:

export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
export IDF_PATH=~/esp/esp-idf
export PATH="$IDF_PATH/tools:$PATH"
alias get_idf='. $HOME/esp/esp-idf/export.sh'

开始布置ESP 开发环境:

cd ~/esp/esp-idf
./install.sh

遇到问题 1:

lindenis@ubuntu:~/esp/esp-idf$ ./install.sh
Installing ESP-IDF tools
: No such file or directory
lindenis@ubuntu:~/esp/esp-idf$

解决方法:

dos2unix ./tools/*

遇到问题 2:

lindenis@ubuntu:~/esp/esp-idf$ ./install.sh
Installing ESP-IDF tools
Installing ESP-IDF tools /home/lindenis/esp/esp-idf
Installing tools: xtensa-esp32-elf, esp32ulp-elf, openocd-esp32
Installing xtensa-esp32-elf@esp32-2019r1-8.2.0
Downloading xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz to /home/lindenis/.espressif/dist/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz.tmp
Traceback (most recent call last):File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 1317, in <module>main(sys.argv[1:])File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 1313, in mainaction_func(args)File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 1107, in action_installtool_obj.download(tool_version)File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 541, in downloadurlretrieve(url, local_temp_path, report_progress if not global_non_interactive else None)File "/usr/local/lib/python3.8/urllib/request.py", line 247, in urlretrievewith contextlib.closing(urlopen(url, data)) as fp:File "/usr/local/lib/python3.8/urllib/request.py", line 222, in urlopenreturn opener.open(url, data, timeout)File "/usr/local/lib/python3.8/urllib/request.py", line 525, in openresponse = self._open(req, data)File "/usr/local/lib/python3.8/urllib/request.py", line 547, in _openreturn self._call_chain(self.handle_open, 'unknown',File "/usr/local/lib/python3.8/urllib/request.py", line 502, in _call_chainresult = func(*args)File "/usr/local/lib/python3.8/urllib/request.py", line 1421, in unknown_openraise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: https>
lindenis@ubuntu:~/esp/esp-idf$

解决方法:

打开 Modules/Setup
//有些python版本是Setup.list
取消注释 以下几行

209 SSL=/usr/local/ssl
210 _ssl _ssl.c \
211 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
212 -L$(SSL)/lib -lssl -lcrypto

重新编译安装:

(1)cd Python-3.8.5;
(2)./configure; #编译前的配置
(3)make; #编译
(4)sudo make install;#编译后的安装

继续出现问题 2.1:

error "libssl is too old and does not support X509_VERIFY_PARAM_set1_host()"

解决问题:重新下载编译ssl

wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz --no-check-certificate
tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d/
./config
make
sudo make installsudo mv /usr/bin/openssl /usr/bin/openssl.old    //将旧版本的openssl进行备份
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl    //将新版本的openssl进行软链接新建或修改 /etc/ld.so.conf.d/libc.conf 配置文件,添加如下内容:/usr/local/lib     //将openssl的安装路径加入配置中然后运行如下命令:ldconfig  //重新加载配置此时在用openssl version命令就可以看到已经是自己安装的新版本了,这样也方便切换为老版本。cd ~/Python-3.8.5
vi  Modules/Setup
SSL=/usr/local/ssl
改为
SSL=/usr/local//重新编译python
make clean
./configure
make

遇到-解决问题 2.2

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_uuid sudo apt-get install uuid-dev
make
sudo make install
//自此安装Python 3.8.5 完毕

遇到问题2.3:

/home/lindenis/esp/esp-idf/install.sh esp32
再次执行,遇到以下错误urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)>
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate>>>
lindenis@ubuntu:/usr/local/ssl$ sudo cp ~/cacert.pem /usr/local/sslcert.pem

解决方法:

python
>>> import ssl
>>> print(ssl.get_default_verify_paths())
DefaultVerifyPaths(cafile=None, capath='/usr/local/ssl/certs', openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/usr/local/ssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/usr/local/ssl/certs')
>>>
//下载cacert.pem
lindenis@ubuntu:/usr/local/ssl$ sudo cp ~/cacert.pem /usr/local/sslcert.pem再次执行:/home/lindenis/esp/esp-idf/install.sh esp32
OK!

4.编译烧录测试hello_world:

cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
cd ~/esp/hello_world
get_idf
idf.py set-target esp32
idf.py build

遇到问题3:

烧录完成后,开机只不断打印:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

解决问题:

是因为烧录时相关地址设置错了:

设置成正确的:

重新上电开机,打印如下,开发环境搭建完成。


参考资料:

ubuntu 安装ninja_陈 洪 伟的博客-CSDN博客_ubuntu安装ninja

Ubuntu Linux 安装Python3.8.x或其他版本的步骤 - 乌鸦哥 - 博客园

关于Shell脚本执行python代码,出现No such file or directorython: can‘t open file的问题_yimenren的博客-CSDN博客

urllib.error.URLError:urlopen error unknown url type:https 解决办法_Tyler_Zx的博客-CSDN博客

python3 安装ssl编译问题_luckydoit的博客-CSDN博客_python 编译ssl

Python打开https链接报错:unable to get local issuer certificate_wjx141的博客-CSDN博客

快速入门 - - — ESP-IDF 编程指南 v4.1.1 文档

END

基于VMware+Ubuntu 14.04 搭建ESP32 开发环境相关推荐

  1. Ubuntu 14.04.5 imx6 开发环境搭建

    1,下载VMware Workstation虚拟机 地址:http://1.xp510.com:801/xp2011/VMware10.7z 2,下载Ubuntu 14.04.5 LTS 32位Ubu ...

  2. Ubuntu 16.04 搭建Android开发环境

    1.Installing Java sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get inst ...

  3. Ubuntu 13.04搭建J2EE开发环境

    摘要: 1.此教程基于 本本:Lenovo v470c OS:Ubuntu 13.04 32bit 2.搭建eclipse J2ee版本+MySQL+Tomcat 7.0+Jdk7开发环境 3.目的: ...

  4. ubuntu 16.04 搭建 python 开发环境

    2019独角兽企业重金招聘Python工程师标准>>> 由于ubuntu 16.04  采用的是python2.7版本,对于采用python3开发作为开发环境的,极为不方便,不过幸好 ...

  5. Ubuntu 14.04下java开发环境的搭建--2--Eclipse的安装

    前面说了JDK的安装,http://www.cnblogs.com/bcsflilong/p/4196536.html 下面我们来安装Eclipse! 安装Eclipse 的前提是,你的JDK已经安装 ...

  6. ubuntu 20.04搭建ESP-ADF开发环境

    1. 下载esp-gitee-tools 包含给 gitee 其他仓库提供的扩展工具,包括 submodule 更新.开发工具安装等. git clone https://gitee.com/Espr ...

  7. 第三篇 Ubuntu 20.04 搭建AI开发环境

    文章目录 摘要 CUDA安装方法 1.检查驱动 2.安装CUDA 3.配置PATH 安装cuDNN 安装Anaconda 安装PyCharm 摘要 这篇文章包括CUDA的安装方法.cuDNN安装方法. ...

  8. PX4-AutoPilot教程-0-使用VMware虚拟机安装Ubuntu系统并搭建PX4开发环境(ROS+mavros+jMAVSim+gazebo+QGC+QT)

    使用VMware虚拟机安装Ubuntu系统并搭建PX4开发环境 本教程使用VMware虚拟机安装Ubuntu18.04系统(官方推荐使用版本),搭建PX4固件版本为v1.9.2,飞控板为pixhawk ...

  9. ubuntu 11.04下Android开发环境的搭建!

    ubuntu 11.04下Android开发环境的搭建! 1.安装JDK 首先到oracle的官网上下载linux版本的JDK,网址为:http://www.oracle.com/technetwor ...

最新文章

  1. python中哈希是什么意思_在python中向量化特征哈希
  2. Geany编辑器配置Python路径(Windows10)
  3. 阿里面试题BIO和NIO数量问题附答案和代码
  4. nessus安装_Nessus忘记密码怎么办?
  5. Java设计模式(7)——装饰者模式
  6. SPSS25安装教程
  7. 前端工程化——Livereload和HMR、本地开发服务器
  8. JAVA理财管理系统(JAVA 毕业设计)
  9. 【NLP】句法分析一
  10. 【系】微信小程序云开发实战坚果商城-扩展篇
  11. 生活品质-装修(01)马桶怎么选?
  12. “啃米族”云米的扑朔自立路
  13. 生活随笔:广州下了一场雨,手游新政策来了
  14. 如何用golang编写单元测试用例
  15. asp.net c#开发的音悦台自动打卡小软件
  16. jfinal框架教程-学习笔记(一)
  17. Jquery 中 ajaxSubmit 、ajaxForm使用讲解
  18. 教你用Python实现经典游戏《弹珠台》
  19. Python输出炫彩颜色字体
  20. 【工具篇】01. 下载与安装 ❀ 数据包分析工具 Wireshark

热门文章

  1. php 判断 ip 城市,利用PHP怎么根据IP地址判断城市
  2. Python爬虫抓取动态数据
  3. GibbsLDA++使用记录
  4. Nacos(一):Nacos介绍
  5. 汉王科技发布多款AI智能新品,布局服务机器人新赛道
  6. 闲谈GDP(4)-GDP统计的几种方法
  7. SAPIEN:铰接、计算机视觉、机器人操作、机器人规划、强化学习、模仿学习的仿真环境
  8. iphone文件连不上电脑服务器,iphone通过USB连接电脑无法上网如何解决
  9. 应用密码学数学基础习题之设有限域GF(28)的不可约多项式为p(x)=x8+x4+x3+x+1
  10. 头插法、尾插法建立单链表