Compile Manually

Version 1 (Gioacchino Mazzurco, 05/30/2014 09:08 am) → Version 2/15 (Ilario Gelmetti, 06/05/2014 12:28 pm)

h1. Compile Manually

h2. Using lime-build

h3. First build

Libre-Mesh firmware is organized as a feed of packages for OpenWRT. To build the current firmware you could use our SDK lime-build.

See instructions in "this":http://libre-mesh.org/projects/libre-mesh page.

h3. Update a previous build

@make update_all@

h2. Starting from OpenWrt

*Resources needed:*

Probably a Linux based operating system.

Some tools for the compilation process, on Debian:

@apt-get install git build-essential libncurses5-dev zlib1g-dev gawk svn@

About 9 GB of disk space.

About 3 hours of compilation time.

*Download trunk version of OpenWrt* (Attitude Adjustment isn't supported by Libre-Mesh).

@git clone git://git.openwrt.org/openwrt.git@

*Add our repositories* to the default ones.

@cd openwrt
cp feeds.conf.default feeds.conf
echo "src-git libremap git://github.com/libremap/libremap-agent-openwrt.git" >> feeds.conf
echo "src-git lime https://github.com/libre-mesh/lime-packages.git" >> feeds.conf@

If you want to use a specific branch of lime-packages specify it adding ;nameofthebranch at the end of the last line. For example:

@src-git lime https://github.com/libre-mesh/lime-packages.git;develop@

Download all these packages and put sources in the right place.

@scripts/feeds update -a
scripts/feeds install -a@

Then enter the OpenWrt *configuration* menu.

@make menuconfig@

Go in "Base system" and *deselect "dnsmasq"* (this is the IPv4 version which conflicts with Libre-Mesh, the IPv6 version will be automatically selected).

Exit from "Base system" end *enter in "LiMe", select what you want* (for example everything or everything except reghack and lime-full), exit.

If you need to compile images only for one type of devices you could specify the type in the menu "Target system" and "Target profile", otherwise keep the default and images for each profile will be produced. Exit and save.

Launch the *compilation*.

@make@

You can try to speed up the process launching the compilation on more than one CPU core.

@make -j 4@

But if you encounter some errors (maybe related to network connectivity problems) it's better to clean up with

@make clean@

and start over with only a core.

Flash on your devices and enjoy!