|**Project owner:**| [[user:lichnak|lichnak]], [[user:peterbay,|PeterBay]] |
|**Interested:** | |
|**Related:**| |
|**Reference:**| https://Espressif.com |
| **License:** | [[http://creativecommons.org/licenses/by-sa/4.0/|Creative Commons Attribution-ShareAlike; CC BY-SA]] |
===== NodeMCU Linux Build Environment =====
Installation and configuratin guide of required toolchain for successful compilation of nodeMCU firmware with ''make'' tool.
Original guide at [[http://www.esp8266.com/wiki/doku.php?id=toolchain|ESP8266 Wiki]]
Linux build environemnt for nodeMCU firmware is based on Ubuntu Server.
Mini iso version will be enough for firmware compilation purpose.
[[http://archive.ubuntu.com/ubuntu/dists/precise-updates/main/installer-amd64/current/images/netboot/mini.iso|64-bit Ubuntu (mini.iso)]]
In Ubuntu Installer select options **"Basic Ubuntu Server"** and **"openSSH Server"**
After reboot install software required by toolchain
sudo apt-get install build-essential zip gdb vim make unrar autoconf automake bison texinfo libtool mc gcc g++ gperf libc-dbg ncurses-dev expat lua5.1 lua5.1-doc luarocks gperf bison flex texinfo git help2man gawk python python-pip unzip screen python2.7 python-serial
for m in lua-bitlib luafilesystem md5 luaposix luasocket; do sudo luarocks install $m; done
sudo pip install mkdocs
Download **ESP Open SDK** from GitHub and run **make**
git clone --recursive https://github.com/pfalcon/esp-open-sdk
cd esp-open-sdk
make STANDALONE=y |& tee make0.log
If running **make STANDALONE=y |& tee make0.log** makes error (missing application, etc.), then install missinf application and run **make STANDALONE=y |& tee make0.log** again.
Open file ''~/.bashrc'' for editing and add two lines at the end.
export PATH="$HOME/esp-open-sdk/xtensa-lx106-elf/bin/:$PATH"
alias xgcc="xtensa-lx106-elf-gcc"
Find the firmware version you want to compile on page with [[https://github.com/nodemcu/nodemcu-firmware/releases|firmware]]
Download and extract firmware source code
cd ~
wget https://github.com/nodemcu/nodemcu-firmware/archive/1.5.4.1-master_20161201.zip
unzip 1.5.4.1-master_20161201.zip -d nodemcu-firmware
or
wget https://github.com/nodemcu/nodemcu-firmware/archive/2.0.0-master_20170202.zip
unzip 2.0.0-master_20170202.zip -d nodemcu-firmware
Navigate to firmware folder
cd ~/nodemcu-firmware/nodemcu-firmware-1.5.4.1-master_20161201
In file ''user_modules.h'' can enable or disable firmware modules with which will be compiled
mcedit app/include/user_modules.h
Run firmware compilation
make
Compiled bootloader and firmware is stored in folder bin, e.g.
-rw-rw-r-- 1 node node 27872 Oct 26 11:21 0x00000.bin
-rw-rw-r-- 1 node node 357683 Oct 26 11:21 0x10000.bin