Standard Setup of Toolchain for Linux¶
Install Prerequisites¶
To compile with ESP-IDF you need to get the following packages:
CentOS 7:
sudo yum install git wget make ncurses-devel flex bison gperf python pyserial
Ubuntu and Debian:
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
Arch:
sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial
Toolchain Setup¶
ESP32 toolchain for Linux is available for download from Espressif website:
for 64-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
for 32-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
Download this file, then extract it in
~/esp
directory:mkdir -p ~/esp cd ~/esp tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
The toolchain will be extracted into
~/esp/xtensa-esp32-elf/
directory.To use it, you will need to update your
PATH
environment variable in~/.profile
file. To makextensa-esp32-elf
available for all terminal sessions, add the following line to your~/.profile
file:export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
Alternatively, you may create an alias for the above command. This way you can get the toolchain only when you need it. To do this, add different line to your
~/.profile
file:alias get_esp32="export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin"
Then when you need the toolchain you can type
get_esp32
on the command line and the toolchain will be added to yourPATH
.Note
If you have
/bin/bash
set as login shell, and both.bash_profile
and.profile
exist, then update.bash_profile
instead.Log off and log in back to make the
.profile
changes effective. Run the following command to verify ifPATH
is correctly set:printenv PATH
You are looking for similar result containing toolchain’s path at the end of displayed string:
$ printenv PATH /home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/user-name/esp/xtensa-esp32-elf/bin
Instead of
/home/user-name
there should be a home path specific to your installation.
Arch Linux Users¶
To run the precompiled gdb (xtensa-esp32-elf-gdb) in Arch Linux requires ncurses 5, but Arch uses ncurses 6.
Backwards compatibility libraries are available in AUR for native and lib32 configurations:
- https://aur.archlinux.org/packages/ncurses5-compat-libs/
- https://aur.archlinux.org/packages/lib32-ncurses5-compat-libs/
Alternatively, use crosstool-NG to compile a gdb that links against ncurses 6.
Next Steps¶
To carry on with development environment setup, proceed to section Get ESP-IDF.