Cross-compile the firmware for your router from a ubuntu machine

A basic knowldge of the procedure of compiling a OpenWRT firmware and flashing your router is a prerequisite for this task.

Make sure that you have the needed software installed in your system.

sudo apt-get update
sudo apt-get install build-essential subversion git-core libncurses5-dev gawk wget gettext

download

First, we download OpenWRT. The version we tested this was svn revision 39211.

mkdir ~/openwrt
cd ~/openwrt
svn -r 39211 co svn://svn.openwrt.org/openwrt/trunk workdir
cd workdir
# Revision 39211 needs patches:
#   http://patchwork.openwrt.org/patch/4588/
wget -O - http://patchwork.openwrt.org/patch/4588/raw | patch -p1
./scripts/feeds update -a
./scripts/feeds install -a

Now download and apply a patch to the openwrt configuration files in order to make its build system download and build netsukuku.

wget -O - http://download.savannah.gnu.org/releases/netsukuku/openwrt-39211-netsukuku-0.9.patch 2>/dev/null | patch -p0

b u i l d

We prepare to compile OpenWrt with Netsukuku.

make menuconfig

Select your Target, Subtarget and Profile (e.g. Atheros AR7xxx/AR9xxx - Generic - TP-LINK TL-WR1043N/ND)

We have to produce the binaries with eglibc instead of uClibc.
For this, select "Advanced configuration options".
Inside it, select "Toolchain Options".
Inside it, as C Library implementation choose eglibc 2.15.

Inside category Network, select package netsukuku

It is optional to activate the openwrt web interface. You find it inside LuCI, Collections, luci

Build with:

ionice -c 3 nice -n 20 make

After approx. 90 minutes (+ download time of various pkgs) you will find your new firmware in ./bin/ar71xx-eglibc.