零、安装Ubuntu

续上集:《安装Ubuntu并设置共享和Xshell》安装好Ubuntu系统后就可以开始着手搭建ESP8266编译环境,不过过程并不美好,个中滋味及其坎坷只有受过毒打的人才能体会!!!真的比在Windows安装安信可环境麻烦N多倍。(想想之后可能要安装ESP32开发环境,誒,打工人!)
从上篇文章搭好到现在完成SDK_IDF的hello_world编译完成,竟然花了将近20天时间!!虽然都是零星使用上班和晚上下班回去做,但跨度也是有些长,其中各种被蹂躏真不是滋味!!!

@0、补充:上集补充:在安装好之后,发现每次都需要挂载share共享文件夹,很麻烦,因此就想办法每次开机后直接挂载,因此就有以下补充:

  1. sudo vim /etc/fstab
  2. share /mnt/share vboxsf defaults 0 0
    (图:0.0共享文件自动加载) ================================ 我是分鸽线 ================================

@一、安装Ubuntu开发ESP8266_SDK_IDF所需基本软件

1. 安装git、vim、make软件:

sudo apt install git vim make
(图: 1.00安装git-vim-make程序)

2. 安装乐鑫所需相关软件:

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python3 python3-serial
(图:1.10安装乐鑫所需软件)

此时若报故障: (“选中 ‘python-is-python2’ 而非 ‘python’”,则要需要把Python3修改成默认,因为我已设置过,所以可以直接下载通过,算是第一个坑吧!)
这是由于Ubuntu所安装默认的Python为Python2,把它修改默认为Python3即可
查看本机安装的Python版本:
sudo ln -s /usr/bin/python3.8 /usr/bin/python
(图: 1.11查看本机安装的Python)

3. 安装pip软件 (太太太重要了!!忘记安装它的话到后面能给你整出一堆幺蛾子来!)

sudo apt-get install python3-pip
(图:1.12通过Python安装pip软件)

以上基本安装好所需的程序,做个小坑总结:1、该装的程序都得装上,否则后面总出现这样那样的问题,而且在网上还查不到同个问题解法,那时候就很绝望了啊!反正我是受到毒打N遍了!2、现在新的SDK_IDF跟以前ESP8266_SDK_2.0.0版本架构差别太太太太大了,因为以前是在2.0版本上开发,现在要试新SDK,所以环境差异也是十分明显!一定要有耐心!

@二、下载ESP8266最新SDK和Tool编译链工具

1. 下载ESP8266的SDK

去官网下载适合自己开发的SDK(必须3.0及以上),官网有说明!我下的是最新版本。一定一定一定一定要加–recursive拉取所有字模块,否则根本编译不了,而且还不知啥问题!!!这一步不知掉了多少次坑!

方法一(最好但下载速度最慢):去GitHub下载SDK,可以出门办个事,因为时间实在是太太太漫长了……………(如果会科学上网应该好很多,不过没去研究它!有更好办法的小伙伴希望能交流一下哦)
git clone –recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
(图: 2.10从GitHub上下载相应SDK)

方法二(拉下来总会异常):去Gittee码云上下载SDK,官方放一份到码云,但直–recursive拉取时总出现账户登录,试了很多次就放弃了!虽然下载速度很诱人,但……
方法三(下载别人已经打包好的文件):网上找了些,但还是编译不通过!到时候我也贴出自己从GitHub下载好的SDK出来。
(图: 2.13打包好的SDK和编译链工具)

2. 下载编译链工具

方法一(我只找到最新的5.2.0版本):到乐鑫官网下载编译工具链
方法二:网上其他人提供编译链工具,很多都是5.2.0工具。
方法三(我在使用):在SDK目录下有README.md,它提供了合适的编译工具链(图: 2.23从README下载正确版本编译链工具)

使用wget下载适合系统编译链工具(也可从其他地方下载,建议还是从本环境下载,因为其他地方下载不知道又会出什么幺蛾子,这苦也吃过了!)
wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
(图: 2.23使用wget下载编译链工具到当前目录)

使用tar解压编译工具链
sudo tar zxvf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
(图: 2.24解压编译工具链)

@三、设置工具链PATH和SDK的PATH并检查其合法性

1. 设置SDK和工具链PATH(图: 3.10添加SDK和编译链PATH):

打开~/.bashrc文件: sudo vim ~/.bashrc在末尾并添加这两个PATH
export PATH=$PATH:$HOME/esp8266/xtensa-lx106-elf/bin
export IDF_PATH=”$HOME/esp8266/ESP8266_RTOS_SDK”
最后wq保存退出, 注销并重新登录或者直接使用命令source ~/.bashrc使环境更新(图: 3.11更新PATH环境)


2. 检查PATH环境合法性

检查编译工具链(图: 3.20检查编译工具链PATH): echo $PATH
检查SDK(图: 3.21检查SDK的PATH): echo $IDF_PATH


3. 查看编译链工具版本号(图: 3.30查看编译工具链版本号):下载使用的是8.4.0

xtensa-lx106-elf-gcc -v


小坑总结:至此,Ubuntu环境编译搭建基本告一段落!1、编译工具链下载要匹配,我就有好多次下载的是5.2.0版本工具链来编译最新SDK导致各种莫名其妙问题!2、设置PATH一定要做好,不一定非要用我这个办法,网上也有很多,不过经过多次测试后还是觉得这种方式好一些!!

@四、编译hello工程文件

走到这一步你是否已经觉得胜利女神在向你招手了吗?是否觉得万无一失了呢?反正当初我是这么觉得的!不过遭受N多次毒打之后,现在没到程序烧录并跑起来前都不会掉以轻心!
为什么说到这一步还是很多问题呢?因为网上很多很多教程到这一步就基本成功,但^=^不知为啥,到这一步后编译make还是出现各种缺失问题!以前是SDK或者编译工具链问题,之后就应该不会,然而网上这方面资料又寥寥无几!
直到经过好多好多好多次重装Ubuntu重新搭建编译环境,基本在绝望的边缘后!某天中午偶然去看官方文档,发现他们在新SDK架构上引入了install.sh机制,才解决了问题!
方法一:安装所需的Python软件包(我自己安装好也还是编译不通过),网上很多方法就是这个,requirements.txt文件是在SDK根目录下,包含所需环境软件:
python -m pip install –user -r $IDF_PATH/requirements.txt
(图: 4.10安装Python所需要环境程序)

方法二:进入SDK根目录,运行(这相当于一键配置,我是用这个方法配置成功了),其实这个方法也十分十分漫长,网络不好可能还要很多次安装!这其实也挺看运气的!
./install.sh
(图: 4.11使用install自动安装环境软件)

最后进入hello_world文件进行make编译,第一次编译时间比较长,以后就快了!其它往后相关操作网上有很多人写好资料了!
cd $IDF_PATH/examples/get-started/hello_world
(图: 4.12对hello_world编译make结果0)

(图: 4.12对hello_world编译make结果1)

(图: 4.12对hello_world编译make结果2)

最后就是make falsh烧录以及make monitor进行串口监听了!


技术总结:
@一、下载的SDK_IDF必须要完整!必须要包含子模块!!
@二、编译工具链一定要匹配所使用的SDK!
@三、该安装的环境软件一个都不能少,在哪儿报错就得先处理好它!
@四、需要耐心和细心!需要耐心和细心!!需要耐心和细心!!!


相关链接:
个人博客
CDSN