Compile Manually

Version 4 (Gioacchino Mazzurco, 06/12/2014 01:40 pm)

1 1 Gioacchino Mazzurco
h1. Compile Manually
2 2 Ilario Gelmetti
3 2 Ilario Gelmetti
h2. Starting from OpenWrt
4 2 Ilario Gelmetti
5 2 Ilario Gelmetti
*Resources needed:*
6 2 Ilario Gelmetti
7 2 Ilario Gelmetti
Probably a Linux based operating system.
8 2 Ilario Gelmetti
9 2 Ilario Gelmetti
Some tools for the compilation process, on Debian:
10 2 Ilario Gelmetti
11 4 Gioacchino Mazzurco
<pre>
12 4 Gioacchino Mazzurco
apt-get install git build-essential libncurses5-dev zlib1g-dev gawk subversion
13 4 Gioacchino Mazzurco
</pre>
14 2 Ilario Gelmetti
15 2 Ilario Gelmetti
About 9 GB of disk space.
16 2 Ilario Gelmetti
17 2 Ilario Gelmetti
About 3 hours of compilation time.
18 2 Ilario Gelmetti
19 1 Gioacchino Mazzurco
*Download trunk version of OpenWrt* (Attitude Adjustment isn't supported by Libre-Mesh).
20 1 Gioacchino Mazzurco
21 4 Gioacchino Mazzurco
<pre>
22 4 Gioacchino Mazzurco
git clone git://git.openwrt.org/openwrt.git
23 4 Gioacchino Mazzurco
</pre>
24 1 Gioacchino Mazzurco
25 1 Gioacchino Mazzurco
*Add our repositories* to the default ones.
26 1 Gioacchino Mazzurco
27 4 Gioacchino Mazzurco
28 4 Gioacchino Mazzurco
<pre>
29 4 Gioacchino Mazzurco
cd openwrt
30 2 Ilario Gelmetti
cp feeds.conf.default feeds.conf
31 2 Ilario Gelmetti
echo "src-git libremap git://github.com/libremap/libremap-agent-openwrt.git" >> feeds.conf
32 4 Gioacchino Mazzurco
echo "src-git lime https://github.com/libre-mesh/lime-packages.git" >> feeds.conf
33 4 Gioacchino Mazzurco
</pre>
34 1 Gioacchino Mazzurco
35 2 Ilario Gelmetti
If you want to use a specific branch of lime-packages specify it adding ;nameofthebranch at the end of the last line. For example:
36 1 Gioacchino Mazzurco
37 4 Gioacchino Mazzurco
<pre>
38 4 Gioacchino Mazzurco
src-git lime https://github.com/libre-mesh/lime-packages.git;develop
39 4 Gioacchino Mazzurco
</pre>
40 2 Ilario Gelmetti
41 2 Ilario Gelmetti
Download all these packages and put sources in the right place.
42 1 Gioacchino Mazzurco
43 4 Gioacchino Mazzurco
<pre>
44 4 Gioacchino Mazzurco
scripts/feeds update -a
45 4 Gioacchino Mazzurco
scripts/feeds install -a
46 4 Gioacchino Mazzurco
</pre>
47 2 Ilario Gelmetti
48 2 Ilario Gelmetti
Then enter the OpenWrt *configuration* menu.
49 2 Ilario Gelmetti
50 4 Gioacchino Mazzurco
<pre>
51 4 Gioacchino Mazzurco
make menuconfig
52 4 Gioacchino Mazzurco
</pre>
53 1 Gioacchino Mazzurco
54 1 Gioacchino Mazzurco
Go in "Base system" and *deselect "dnsmasq"* (this is the IPv4 version which conflicts with Libre-Mesh, the IPv6 version will be automatically selected).
55 1 Gioacchino Mazzurco
56 2 Ilario Gelmetti
Exit from "Base system" end *enter in "LiMe", select what you want* (for example everything or everything except reghack and lime-full), exit.
57 2 Ilario Gelmetti
58 1 Gioacchino Mazzurco
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.
59 1 Gioacchino Mazzurco
60 1 Gioacchino Mazzurco
Launch the *compilation*.
61 2 Ilario Gelmetti
62 4 Gioacchino Mazzurco
<pre>
63 4 Gioacchino Mazzurco
make
64 4 Gioacchino Mazzurco
</pre>
65 1 Gioacchino Mazzurco
66 2 Ilario Gelmetti
You can try to speed up the process launching the compilation on more than one CPU core.
67 2 Ilario Gelmetti
68 4 Gioacchino Mazzurco
<pre>
69 4 Gioacchino Mazzurco
make -j 4
70 4 Gioacchino Mazzurco
</pre>
71 2 Ilario Gelmetti
72 2 Ilario Gelmetti
But if you encounter some errors (maybe related to network connectivity problems) it's better to clean up with
73 2 Ilario Gelmetti
74 4 Gioacchino Mazzurco
<pre>
75 4 Gioacchino Mazzurco
make clean
76 4 Gioacchino Mazzurco
</pre>
77 2 Ilario Gelmetti
78 2 Ilario Gelmetti
and start over with only a core.
79 2 Ilario Gelmetti
80 2 Ilario Gelmetti
Flash on your devices and enjoy!