IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> ESP32 esp-idf 4.x ubuntu下环境搭建(完全踩坑记录) -> 正文阅读

[系统运维]ESP32 esp-idf 4.x ubuntu下环境搭建(完全踩坑记录)

一、再次采坑

  1. 这周末,又重新搭建了一次esp32的环境,在ubuntu16.04下捣鼓python环境,各种坑。这里必须注意一点,python版本必须在3.6以上

二、Vmware安装ubuntu18.04

  1. 下载ubuntu18.04,这里用阿里的开源镜像站来拉(为什么选择18.04,因为python版本就是3.6了)
    http://mirrors.aliyun.com/ubuntu-releases/18.04/

  2. 下载VMware,必须用 16.0.0以上,否则很容易出现蓝屏问题…家里电脑14.x的版本,只要开镜像,必死机 http://big3.ddooo.com/vmware_177981.rar?key=0dfa0a4e8e3bacbc44094054b61354f7

  3. 镜像导入到vmware里面

  4. 设置网络适配器为桥接,复制物理状态

  5. 设置共享文件夹

三、配置环境

  1. 该上代理上代理

    //git代理
    git config --global http.proxy 192.168.1.7:1080 
    //全局代理
    export https_proxy=192.168.1.7:1080
    export http_proxy=192.168.1.7:1080
    
  2. 更新APT源,这里使用代理方法 ,所有的apt-update或者apt-install都可以加这个后缀
    有时会一直卡着,那就断开ubuntu的网络,重连一下wireless,重连成功后一段时间肯定是正常的

     sudo apt-get update  -o Acquire::http::proxy="http://192.168.31.88:7890"
    
  3. 更新一些用到的包

    sudo apt-get install -y make build-essential zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm tk-dev libc6-dev gcc libssl-dev 
    sudo apt-get install git wget flex bison gperf python python-pip python-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util
    
  4. 将python切换到python3.6

    cd /usr/bin/
    sudo rm python
    sudo ln -s python3.6 python
    
  5. 安装pip

    1.sudo rm /var/lib/dpkg/lock
      sudo rm /var/lib/dpkg/lock-frontend
    #先删除了apt的锁,有可能apt被锁住了提示 Could not get lock /var/lib/dpkg/lock-frontend  问题
    
    1.wget https://bootstrap.pypa.io/pip/3.6/get-pip.py  --no-check-certificate #拉取PIP下载文件(这里是按照提示拉的地址,之前拉的是 https://bootstrap.pypa.io/get-pip.py )
    
    2.python get-pip.py #安装pip,这里提示错误,找不到 distutils 
    
    3.sudo apt-get install python3-distutils #安装distutils
    
    4.sudo apt-get install python3.6-dev #安装py36的dev
    
  6. 拉取SDK,指定4.4版本,子模块都拉取,并将名字定义成esp-idf-4.4

    git clone -b v4.4 --recursive https://github.com/espressif/esp-idf.git esp-idf-4.4
    
  7. 拉取SDK需要用到的包

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

这里重点说明一下,对于4.x的版本,工具链常常更新,很容易出现一些奇怪的现象,例如我用esp32-who,用到4.4的版本,然后我自己拿工具链,最后出现一个 nents/newlib/locks.c:240:23:的错误,issue地址:https://esp32.com/viewtopic.php?t=21692#p79046 所以这里建议用脚本的方法来拿工具链,和设置全局!!!!!!!

  1. 拿工具链,芯片是啥就拿哪个,我这里拿的是xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz
    https://github.com/espressif/crosstool-NG/releases
    注意,对于ESP32-C3的工具链,这里使用idf.py的命令去获取就行,必须先配置好idf.py到环境变量(或者直接在 tools/里面用)

    安装好工具链以后,需要将工具链路径放到全局里面,这里是通过 export.sh 脚本来执行的,具体可以看官方的说明。我这里直接手动将工具链加到全局,工具链位置:~/.espressif/tools/riscv32-esp-elf/1.24.0.123_64eb9ff-8.4.0/riscv32-esp-elf/bin
    参考地址:https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/get-started/index.html#id16

    cd /mnt/hgfs/ubshare/esp-idf/ #进入到idf目录
    export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"#下载的地址
    ./install.sh#这里直接./运行
    chomod 777 export.sh #若提示没权限,例如idf放在home里面,先搞权限
    . $HOME/esp-idf/export.sh #临时放全局 注意前面一点+空格来运行sh
    
    
  2. 工具链解压到opt,并设置一下环境变量

    sudo cp /mnt/hgfs/share/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz /opt
    sudo tar -xvf xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz
    sudo gedit /etc/environment #加入
    source /etc/environment
    
  3. 设置IDF_PATH

    export IDF_PATH=/mnt/hgfs/share/esp-idf-4.4
    
  4. 设置idf.py到环境变量

    sudo gedit /etc/environment
    /mnt/hgfs/ubshare/esp-idf/tools
    source /etc/environment
    

  1. 设置芯片类型

注意切换平台,或者编译不过去了,必须先rm -rf build 文件夹

	```c
	rm -rf build
	idf.py set-target esp32c3
	```
  1. 配置,编译

    ../../../tools/idf.py menuconfig
    ../../../tools/idf.py build
    

四、用过的命令history(拉取SDK的不在此)

/mnt/hgfs/share/esp-idf-4.4/examples/get-started/hello_world$ history
    1  cd /opt/
    2  ls
    3  rm -rf xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz.sgdownload 
    4  sudo rm -rf xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz.sgdownload 
    5  sudo cp /mnt/hgfs/share/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz ./
    6  sudo tar -xvf xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch3-linux-amd64.tar.gz 
    7  cd xtensa-esp32-elf/
    8  ls
    9  cd bin/
   10  sudo gedit /etc/environment 
   11  cd /mnt/hgfs/share/esp-idf-4.4/
   12  ls
   13  export IDF_PATH=/mnt/hgfs/share/esp-idf-4.4/
   14  source /etc/environment 
   15  python -m pip install --user -r $IDF_PATH/requirements.txt 
   16  idf.py
   17  ./tools/idf.py 
   18  sudo update-alternatives --list python
   19  sudo update -alternatives --list python
   20  ./tools/idf.py 
   21  python -m pip install --user -r $IDF_PATH/requirements.txt 
   22  cd ..
   23  wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate
   24  python get-pip.py
   25  wget https://bootstrap.pypa.io/pip/3.6/get-pip.py  --no-check-certificate
   26  python get-pip.py1
   27  python get-pip.py.1
   28  sudo apt-get install python3.6-dev
   29  sudo apt-get install python3.6-dev 
   30  pkill -9 apt
   31  sudo pkill -9 apt
   32  sudo apt-get install python3.6-dev 
   33  ps afx|grep apt
   34  sudo rm /var/lib/dpkg/lock-frontend  
   35  sudo apt-get install python3.6-dev 
   36  sudo rm /var/lib/dpkg/lock
   37  sudo apt-get install python3.6-dev 
   38  sudo apt-get install python3-distutils
   39  python get-pip.py.1
   40  python -m pip install --user -r $IDF_PATH/requirements.txt 
   41  cd esp-idf-4.4/
   42  ./tools/idf.py 
   43  ./tools/idf.py menuconfig
   44  cd examples/get-started/
   45  ls
   46  cd hello_world/
   47  ls
   48  ../../../tools/idf.py menuconfig
   49  ../../../tools/idf.py build
   50  history

五、编译OK截图

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 16:03:51  更:2022-02-28 16:04:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:22:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码