Setup Linux Toolchain from Scratch¶
The following instructions are alternative to downloading binary toolchain from Espressif website. To quickly setup the binary toolchain, instead of compiling it yourself, backup and proceed to section Standard Setup of Toolchain for Linux.
Note
The reason you might need to build your own toolchain is to solve the Y2K38 problem (time_t expand to 64 bits instead of 32 bits).
Install Prerequisites¶
To compile with ESP-IDF you need to get the following packages:
CentOS 7:
CentOS 7 is still supported but CentOS version 8 is recommended for a better user experience.
Ubuntu and Debian:
Arch:
Note
CMake version 3.5 or newer is required for use with ESP-IDF. Older Linux distributions may require updating, enabling of a “backports” repository, or installing of a “cmake3” package rather than “cmake”.
Compile the Toolchain from Source¶
Install dependencies:
CentOS 7:
Ubuntu pre-16.04:
Ubuntu 16.04 or newer:
Debian 9:
Arch:
Create the working directory and go into it:
Download crosstool-NG
and build it:
Note
To create a toolchain with support for 64-bit time_t, you need to remove the --enable-newlib-long-time_t
option from the crosstool-NG/samples/xtensa-esp32-elf/crosstool.config
file in 33 and 43 lines.
Build the toolchain:
Toolchain will be built in ~/esp/crosstool-NG/builds/xtensa-esp32-elf
.
Add Toolchain to PATH¶
The custom toolchain needs to be copied to a binary directory and added to the PATH
. Choose a directory, for example ~/esp/xtensa-esp32-elf/
, and copy the build output to this directory.
To use it, you will need to update your PATH
environment variable in ~/.profile
file. To make xtensa-esp32-elf
available for all terminal sessions, add the following line to your ~/.profile
file:
Note
If you have /bin/bash
set as login shell, and both .bash_profile
and .profile
exist, then update .bash_profile
instead. In CentOS, alias
should set in .bashrc
.
Log off and log in back to make the .profile
changes effective. Run the following command to verify if PATH
is correctly set:
You are looking for similar result containing toolchain’s path at the beginning of displayed string:
Instead of /home/user-name
there should be a home path specific to your installation.
Next Steps¶
To carry on with development environment setup, proceed to Step 2. Get ESP-IDF.