2018-07-05 09:01:03 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								***** ***** ***** ***** ***** ***** ***** **
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								Standard Setup of Toolchain for Linux
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								***** ***** ***** ***** ***** ***** ***** **
 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-27 14:46:13 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:link_to_translation:`zh_CN:[中文]` 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Install Prerequisites
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								=====================
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								To compile with ESP-IDF you need to get the following packages:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  CentOS 7::
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-10-01 16:19:37 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    sudo yum install gcc git wget make ncurses-devel flex bison gperf python python2-cryptography
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  Ubuntu and Debian::
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-11-22 22:03:35 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  Arch::
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-11-22 22:03:35 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial python2-cryptography python2-future python2-pyparsing
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-15 09:52:07 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								..  note :: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-10-01 16:19:37 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Some older Linux distributions may be missing some of the Python packages listed above (or may use `` pyserial ``  version 2.x which is not supported by ESP-IDF). It is possible to install these packages via `` pip ``  instead - as described in section :ref: `get-started-get-packages` .
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Toolchain Setup
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								===============
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 21:30:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								..  include ::  /_build/inc/download-links.inc
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								ESP32 toolchain for Linux is available for download from Espressif website:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  for 64-bit Linux:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 21:30:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  |download_link_linux64|
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  for 32-bit Linux:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 21:30:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  |download_link_linux32|
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								1.   Download this file, then extract it in `` ~/esp ``  directory:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    -  for 64-bit Linux:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ..  include ::  /_build/inc/unpack-code-linux64.inc
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 21:30:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    -  for 32-bit Linux:
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 21:30:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      ..  include ::  /_build/inc/unpack-code-linux32.inc
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								..  _setup-linux-toolchain-add-it-to-path: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								2.   The toolchain will be extracted into `` ~/esp/xtensa-esp32-elf/ ``  directory.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-01 22:44:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    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::
 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-27 14:55:37 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-01 22:44:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    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::
 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-27 14:55:37 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        alias get_esp32='export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"'
 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Then when you need the toolchain you can type `` get_esp32 ``  on the command line and the toolchain will be added to your `` PATH `` .
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-01 22:44:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ..  note :: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-06-24 23:12:12 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        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 `` .
 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-01 22:44:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								3.   Log off and log in back to make the `` .profile ``  changes effective. Run the following command to verify if `` PATH ``  is correctly set::
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        printenv PATH
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-01-24 20:03:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    You are looking for similar result containing toolchain's path at the beginning of displayed string::
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $ printenv PATH
 
							 
						 
					
						
							
								
									
										
										
										
											2019-01-24 20:03:03 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        /home/user-name/esp/xtensa-esp32-elf/bin:/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
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-05-24 07:00:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Instead of `` /home/user-name ``  there should be a home path specific to your installation.
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-25 17:44:08 +13:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Permission issues /dev/ttyUSB0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								------------------------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-20 16:10:38 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								With some Linux distributions you may get the `` Failed to open port /dev/ttyUSB0 ``  error message when flashing the ESP32. :ref: `This can be solved by adding the current user to the dialout group<linux-dialout-group>` .
 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-25 17:44:08 +13:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								Arch Linux Users
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								----------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-08 17:58:00 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								To run the precompiled gdb (xtensa-esp32-elf-gdb) in Arch Linux requires ncurses 5, but Arch uses ncurses 6. 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								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/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-22 17:38:08 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Before installing these packages you might need to add the author's public key to your keyring as described in the "Comments" section at the links above.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-27 00:01:52 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								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 :ref: `get-started-get-esp-idf` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Related Documents
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								=================
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								..  toctree :: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :maxdepth:  1 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    linux-setup-scratch
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								..  _AUR:  https://wiki.archlinux.org/index.php/Arch_User_Repository