B.2. Der lange Weg

Der lange Weg mach die gleichen Scritte mit dem Ziel die OpenWRT Build Umgebung etwas näherzubringen. Es handelt sich dabei um 11 Schritte. Wir betrachten hier konkret den OWRT Release "backfire 10.03".

Bevor es losgeht wird zuerst ein leeres Directory angelegt:

$ mkdir OpenWRT
$ cd OpenWRT

Schritt 1: OpenWRT Code aus dem SVN Repository holen:

$ svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03/

Schritt 2: HAMNet Patches holen:

Ein Directory für die Patches anlegen und alle HAMNET Patches in dieses Directory kopieren.

$ mkdir patches
Die folgenden Files werden benötigt:

Schritt 3: Den OWRT_trunk.patch einspielen:

$ cd backfire_10.03
$ patch -p0 < ../patches/OWRT_trunk.patch

Schritt 4: Den Wireless Patch kopieren:

$ cd backfire_10.03
$ cp ../patches/9999-xar_wireless.patch package/mac80211/patches/

Schritt 5: Die neue Wireless RegDomain kopieren:

$ cd backfire_10.03
$ cp ../patches/HAMNET_OWRT.key.pub.pem package/crda/files/
$ cp ../patches/regulatory.bin package/crda/files/

Schritt 6: Das ALIX-HAMNet Config File kopieren:

$ cd backfire_10.03
$ cp ../patches/alix_config_hamnet_1003 .config

Schritt 7: Das HAMNet Software Paket hinzufügen:

$ cd backfile_10.03/package/
$ tar xvzf ../../patches/package_hamnet.tgz 

Schritt 8: Das feeds.conf file kopieren:

$ cd backfile_10.03/
$ cp ../patches/feeds.conf .
Das ist notwendig, damit ein definierter Release der Feeds (Add-on Pakete) referenziert wird. Falls dies nicht gemacht wird, wird immer die neueste Version geladen - was dann keinen konsistenten Zustand garantiert.

Schritt 9: Die optionalen OWRT Pakete hinzufügen:

$ cd backfile_10.03/
$ make package/symlinks
Das kann ein paar Minuten dauern.

Schritt 10: Den OWRT_feeds Patch einspielen:

$ cd backfire_10.03/feeds/packages/
$ patch -p0 < ../../../patches/OWRT_feeds_packages.patch 

Schritt 11: Jetzt können wir das ganze bauen:

$ cd backfire_10.03/
$ make clean
$ make world
Zuerst wird die ganze GCC Toolchain (Compiler, C Libraries, ...) gebaut und un einem zweiten Schritt schliesslich alle OpenWRT Pakete.

Warum wird eigentlich der Compiler auch gebaut, der ist ja bereits installiert? Grund ist, dass egal auf welchem Linux Release und mit welchen Compilern / Bibliotheken gebaut wird, immer die gleichen Compiler und C Libraries für OpenWRT verwendet werden. Ebenso ermöglicht dieses Konzept das "Cross-comiling", d.h. das bauen von von binärem Code für eine andere Plattform (z.b. gebaut wird auf einem Intel x86 Linux PC, Zielplattform ist aber ARM oder MIPS).