半秋鲤 發表於 2020-3-7 14:30:00

deepin下安装ESP32的开发环境

<h1>deepin下安装ESP32的开发环境</h1>
<p>本文章用于记录在deepin下安装ESP32的开发环境,前几日在CentOS7之下实现过,但CentOS7对于我这个Linux新手太不友好,于是重装deepin,体验非常好,故尝试在deepin 下安装ESP32开发环境。</p>
<p>步骤依据是乐鑫提供的官方文档:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/linux-setup-scratch.html</p>
<h2>1.编译 ESP-IDF 需要以下软件包</h2>
<div class="cnblogs_Highlighter">&nbsp;</div>
<div class="cnblogs_code">
<pre>sudo apt-<span style="color: rgba(0, 0, 255, 1)">get</span> install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev</pre>
</div>
<p>&nbsp;</p>
<h2>2.从源代码编译工具链</h2>
<div class="cnblogs_code">
<pre>sudo apt-<span style="color: rgba(0, 0, 255, 1)">get install gawk gperf grep gettext libncurses-dev python python-dev automake bison flex texinfo help2man libtool make</span></pre>
</div>
<p>创建工作目录,并进入该目录:</p>
<div class="cnblogs_code">
<pre>mkdir -p ~/<span style="color: rgba(0, 0, 0, 1)">esp
cd ~/esp</span></pre>
</div>
<p>下载并编译&nbsp;<code class="docutils literal notranslate"><span class="pre">crosstool-NG</span></code>&nbsp;:</p>
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//<span style="color: rgba(0, 128, 0, 1)">github.com/espressif/crosstool-NG.git
cd crosstool-<span style="color: rgba(0, 0, 0, 1)">NG
git checkout esp-<span style="color: rgba(0, 0, 0, 1)">2019r2
git submodule update --<span style="color: rgba(0, 0, 0, 1)">init
./bootstrap &amp;&amp; ./configure --enable-local &amp;&amp; make</span></span></span></span></span></pre>
</div>
<p>最后一步,编译时,可能会报错:configure: error: Required tool not found: GNU libtool &gt;= 2.4</p>
<p>安装libtool 后解决</p>
<p>sudo apt-get install libtool</p>
<p>如果安装了还出现这种问题接着安装</p>
<p>sudo apt-get install libtool-bin&nbsp;</p>
<p>编译工具链:</p>
<div class="cnblogs_code">
<pre>./ct-ng xtensa-esp32-<span style="color: rgba(0, 0, 0, 1)">elf
./ct-<span style="color: rgba(0, 0, 0, 1)">ng build
chmod -R u+w builds/xtensa-esp32-elf</span></span></pre>
</div>
<p>&nbsp;build时间很长,会下载文件,若下载文件失败,可取消并重新build,也可查看系统状态,确定正在下载</p>
<p>下载到一半,报错,如下:</p>
<p><span style="color: rgba(255, 102, 0, 1)"> error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received.</span></p>
<p><span style="color: rgba(255, 102, 0, 1)"><span style="color: rgba(0, 0, 0, 1)">百度得:<br></span></span></p>
<p>这是由于git默认缓存大小不足导致的,使用下面的命令增加缓存大小</p>
<p>$ git config --global http.postBuffer 2000000000</p>
<p>在deepin中,build花了很长时间,大概1个多小时,而在Centos7中,大概只花了半小时搞定,不知道是因为网速原因还是其他,git下载时有时候龟速,可尝试取消后重新下载,速度有时可变快</p>
<p>&nbsp;</p>
<p>编译得到的工具链会被保存到&nbsp;<code class="docutils literal notranslate"><span class="pre">~/esp/crosstool-NG/builds/xtensa-esp32-elf</span></code></p>
<p>将工具链添加到&nbsp;<code class="docutils literal notranslate"><span class="pre">PATH:</span></code></p>
<div class="cnblogs_code">
<pre>export PATH=<span style="color: rgba(128, 0, 0, 1)">"<span style="color: rgba(128, 0, 0, 1)">$HOME/esp/crosstool-NG/builds/xtensa-esp32-elf/bin:$PATH<span style="color: rgba(128, 0, 0, 1)">"</span></span></span></pre>
</div>
<p>改命令行其实只是暂时将工具链添加到了PATH,退出终端后,将失效,永久方法:</p>
<p>通过修改.bashrc文件:</p>
<div class="cnblogs_code">
<pre>vim ~/.bashrc </pre>
</div>
<p>最后一行添加:</p>
<div class="cnblogs_code">
<pre>export PATH=<span style="color: rgba(128, 0, 0, 1)">"<span style="color: rgba(128, 0, 0, 1)">$HOME/esp/</span></span>crosstool-NG/builds/<span style="color: rgba(128, 0, 0, 1)"><span>xtensa-esp32-elf/bin:$PATH<span>"</span></span></span></pre>
</div>
<p>ESC,输入“:wq”保存退出,关闭终端,再次打来生效,可通过 echo $PATH验证:</p>
<div class="cnblogs_code">
<pre>blue@blue-PC:~<span style="color: rgba(0, 0, 0, 1)">$ echo $PATH<br>/home/blue/esp</span>/crosstool-NG/builds<span>/xtensa-esp32-elf/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin</span></pre>
</div>
<h2>3.获取ESP-IDF</h2>
<p>可通过git获取:</p>
<div class="cnblogs_code">
<pre>cd ~/<span style="color: rgba(0, 0, 0, 1)">esp
git clone --recursive https:<span style="color: rgba(0, 128, 0, 1)">//<span style="color: rgba(0, 128, 0, 1)">github.com/espressif/esp-idf.git</span></span></span></pre>
</div>
<p>也可通过复制现有的ESP-IDF文件夹到~/esp下,为节约时间,我选择复制现有的esp-idf-v3.3</p>
<h2>4.设置工具</h2>
<div class="cnblogs_code">
<pre>cd ~/esp/esp-<span style="color: rgba(0, 0, 0, 1)">idf
./install.sh</span></pre>
</div>
<p>本步骤中介绍的脚本将 ESP-IDF 所需的编译工具默认安装在用户根文件夹中,即 Linux 系统中的&nbsp;<code class="docutils literal notranslate"><span class="pre">$HOME/.espressif</span></code></p>
<h2>5.设置环境变量</h2>
<p>此时,您刚刚安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本完成。</p>
<div class="cnblogs_code">
<pre>. $HOME/esp/esp-idf/export.sh</pre>
</div>
<h2>6.开始创建工程</h2>
<div class="cnblogs_code">
<pre>cd ~/<span style="color: rgba(0, 0, 0, 1)">esp
cp -r $IDF_PATH/examples/<span style="color: rgba(0, 0, 255, 1)">get-started/hello_world .</span></span></pre>
</div>
<p>编译后报错:</p>
<div class="cnblogs_code">
<p>esptool.py v2.8</p>
<p>The following Python requirements are not satisfied:<br>cryptography&gt;=2.1.4<br>Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.<br>Alternatively,
you can run "/usr/bin/python -m pip install --user -r
/home/blue/esp/esp-idf/requirements.txt" for resolving the issue.<br>/home/blue/esp/esp-idf/make/project.mk:501: recipe for target 'check_python_dependencies' failed<br>make: *** Error 1</p>





</div>
<p>根据提示,为python环境错误,运行推荐修复方法:</p>
<div class="cnblogs_code">
<pre>/usr/bin/python -m pip install --user -r /home/blue/esp/esp-idf/requirements.txt</pre>
</div>
<p>再次make</p>
<div class="cnblogs_code">
<pre>LD build/hello-<span style="color: rgba(0, 0, 0, 1)">world.elf
esptool.py v2.<span style="color: rgba(128, 0, 128, 1)">8<span style="color: rgba(0, 0, 0, 1)">
To flash all build output, run <span style="color: rgba(128, 0, 0, 1)">'<span style="color: rgba(128, 0, 0, 1)">make flash<span style="color: rgba(128, 0, 0, 1)">'<span style="color: rgba(0, 0, 0, 1)"> or:
python /home/blue/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB1 --baud <span style="color: rgba(128, 0, 128, 1)">115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect <span style="color: rgba(128, 0, 128, 1)">0x1000 /home/blue/esp/hello_world/build/bootloader/bootloader.bin <span style="color: rgba(128, 0, 128, 1)">0x10000 /home/blue/esp/hello_world/build/hello-world.bin <span style="color: rgba(128, 0, 128, 1)">0x8000 /home/blue/esp/hello_world/build/partitions_singleapp.bin</span></span></span></span></span></span></span></span></span></span></span></pre>
</div>
<p>简直不要太快,全部编译的情况下,只要了大概57s(ps使用的电脑比较老旧的情况下),比在windows下要好太多!!!</p>
<h2>7.感受</h2>
<ul>
<li>第一次使用deepin,对于Linux小白来说,这个界面非常友好,跟Windows差不多,关键是已经自带了wps、网易云音乐、微信、TIM等必要的软件,界面也非常好看。但也许就是界面的原因,有时会出现卡顿的情况,个人感觉CentOS7运行比deepin要稳定、流畅,不知道后面使用运行会如何。</li>
<li>对比了一下同一台笔记本在windows下和linux下全部编译hello_world所花的时间 :</li>
</ul>
<p>    t        make  make -j8</p>
<p>    windows      /    8''7'</p>
<p>    linux        57'   &nbsp; &nbsp;37'&nbsp;</p>
<p>   之前就听说在mac和linux下编译esp32会快很多,没想到真的快这么多,不要太夸张!</p><br><br>
来源:https://www.cnblogs.com/blueoapple/p/12434110.html
頁: [1]
查看完整版本: deepin下安装ESP32的开发环境