Christopher Krug, Philipp Kosar, Daniel Konieczny

 

Freetz ‒ Modifizieren der FRITZ!Box Firmware

Facharbeit im Kurs Fachpraxis Informationstechnik

 

 

Inhaltsverzeichnis

1. Einleitung. 1

2. Die ersten Schritte (und viele weitere). 1

2.1. Freetz-Linux. 2

2.2. Ubuntu?. 2

2.3. Ubuntu!. 3

3. Durchführung. 3

4. Schlusswort. 5

5. Quellenverzeichnis. 5

 

1. Einleitung

Unsere Aufgabe bestand darin, die Firmware einer AVM FRITZ!Box zu modifizieren. Freetz ist eine Firmware-Modifikation, die genau dies ermöglicht. Mit Freetz kann man die Original-Firmware der FRITZ!Box um zusätzliche Funktionen und mit einer individuellen Zusammenstellung von Programmen erweitern.

Freetz ist freie Software und wird von Oliver Metz, Alexander Kriegisch u.v.a. auf der Internetseite http://trac.freetz.org/ kostenlos zur Verfügung gestellt.

Das von uns verwendete Modell ist eine AMV FRITZ!Box Fon WLAN 7170.

2. Die ersten Schritte (und viele weitere)

Da für die Installation von Freetz Linux als Betriebssystem vorausgesetzt wird, bestand unser erster Schritt darin, den VMWare Player herunterzuladen und zu installieren. Der VMWare Player eignet sich dazu, Betriebssysteme zu virtualisieren.

Bei der Auswahl der Linux-Distribution hatten wir nun zwei Möglichkeiten: Das eigens für die Erstellung von Freetz-Firmware-Images entwickelte Freetz-Linux oder Ubuntu.

2.1. Freetz-Linux

Da das Freetz-Linux nur etwa halb so groß ist wie Ubuntu, und speziell für Freetz entwickelt wurde, entschieden wir uns zuerst hierfür. Freetz-Linux hat im Gegensatz zu Ubuntu keine graphische Benutzeroberfläche (GUI) und muss nicht installiert werden, da es direkt als VMWare-Image zum Download angeboten wird.

Leider offenbarte sich ziemlich bald ein Hindernis, welches uns davon abhielt, das Freetz-Linux effektiv nutzen zu können. Wir hatten keine Möglichkeit eine Verbindung zum Internet oder zur FRITZ!Box herzustellen, da der Port vom VMWare Player im Netzwerk der Schule anscheinend gesperrt war.

Abb. 1: Freetz-Linux

2.2. Ubuntu?

Da wir keine Möglichkeit hatten, das Freetz-Linux mit dem Netzwerk zu verbinden, es jedoch auch nicht möglich war, das Freetz-Linux außerhalb des VMWare-Player zu installieren, versuchten wir es nun mit Ubuntu.

Schon bald zeigte sich ein weiteres Problem. Da der Internetzugriff in unserer Schule über einen Proxy-Server erfolgt und die Zuordnung der IP-Adressen der einzelnen Computer im Netzwerk nicht dynamisch ist, war es uns erst nicht möglich, gleichzeitig eine Verbindung zur FRITZ!Box und zum Schulnetzwerk herzustellen. Nachdem wir jedoch die IP- und DNS-Einstellungen der FRITZ!Box an die des Schulnetzwerks angepasst hatten und einige Ausnahmen zur Proxy-Konfiguration des Web-Browsers hinzugefügt hatten, war dieses Problem gelöst und wir konnten über die FRITZ!Box auf das Internet zugreifen.

Nun versuchten wir über das Terminal von Ubuntu unser Firmware-Image zu erstellen und nach einigen Versuchen begann der sogenannte Build-Prozess. Man mag es kaum glauben, aber nun stießen wir auf ein weiteres Problem: Aus irgendeinem Grund bekamen wir bei jedem Versuch, das Image zu erstellen, eine Fehlermeldung die uns mitteilte, dass das zu erstellende Image zu groß sei. Auch nach dem Abwählen jeglicher zusätzlicher Komponenten erhielten wir weiterhin diese Fehlermeldung.

Da wir die Ursache für diesen Fehler nicht finden konnten, versuchten wir es zu Hause erneut.

2.3. Ubuntu!

Da wir die Befehle und den genauen Ablauf nun bereits kannten, funktionierte diesmal alles einwandfrei. Keine blockierten Ports, keine Proxy-Server und auch keine DNS-Server mit statischen IP-Adressen.

3. Durchführung

Um mit Ubuntu ein Freetz-Image erstellen zu können, muss man noch einige benötigte Pakete installieren. Da es sich um relativ viele Pakete handelt, ist der einfachste Weg, den folgenden Befehl zu kopieren und im Ubuntu-Terminal einzufügen.

Befehl für Ubuntu 9.04:

sudo apt-get -y install subversion gcc g++ binutils autoconf automake automake1.9 libtool make bzip2 libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config jikes ecj fastjar realpath perl libstring-crc32-perl ruby ruby1.8 gawk python libusb-dev unzip intltool

Befehl für Ubuntu 9.10:

sudo apt-get -y install subversion gcc g++ bzip2 binutils automake patch autoconf libtool pkg-config make libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config ecj fastjar realpath perl libstring-crc32-perl ruby ruby1.8 gawk python libusb-dev unzip intltool libglib2.0-dev

Nach Eingabe dieses Befehls wird man aufgefordert, sein Passwort einzugeben. Sofern man dieses eingibt und eine Verbindung zum Internet besteht, werden die notwendigen Pakete installiert.

Hat man die notwendigen Pakete installiert, kann man endlich das Freetz-Image erstellen. Dazu lädt man Freetz von dieser Internetseite herunter: http://trac.freetz.org/wiki/Download und entpackt das Archiv.

Als nächstes wechselt man mit dem cd-Befehl in das Verzeichnis, in dem sich die entpackten Dateien befinden (z.B. cd Downloads/freetz-1.1.3/).

Nach Eingabe des Befehls  make menuconfig erscheint ein nun Dialog, mit dem man sich seine Konfigurationsdatei für das Freetz-Image erstellen kann.

 Abb. 2: Konfigurationsdialog von Freetz (make menuconfig)

Hat man sich seine Konfiguration erstellt, schließt man den Dialog über den Exit-Button und speichert die Änderungen.

Nun folgt die eigentliche Erstellung des Firmware-Images (Build-Prozess). Diesen Prozess kann man ganz einfach mit dem Befehl make starten.

Abb. 3: make

Verläuft alles fehlerfrei, kann man nach Abschluss des Build-Prozesses sein fertiges Firmware-Image im Unterordner images finden (z.B. images/7170_04.80freetz-1.1.3.de_20100506-014302.image).

Im letzten Schritt muss das soeben erstellte Image auf die FRITZ!Box geladen werden. Dazu meldet man sich an der FRITZ!Box an (http://fritz.box/), wählt unter „Einstellungen“ die Option „Firmware aktualisieren“ und wählt das Firmware-Image aus. Normalerweise erhält man nun nach kurzer Zeit eine Meldung, dass das Firmware-Image kein freigegebenes ist; diese Meldung bestätigt man mit „Update fortsetzen“. Wenn alles reibungsfrei verläuft, wird die FRITZ!Box am Ende des Updates neu gestartet und man findet ab sofort den Unterpunkt „Freetz“ in den Einstellungen der FRITZ!Box, über den man zur Freetz-Konfiguration gelangt (Benutzername/Passwort: admin/freetz).

Abb. 4: Freetz-Konfiguration

4. Schlusswort

Wie bereits am Anfang deutlich wurde, sind wir während unserer Arbeit mit Freetz auf einige Probleme gestoßen, welche jedoch in erster Linie mit der Konfiguration des Schulnetzwerks zusammenhingen.

Man sollte beachten, dass während des Erstellens des Firmware-Images eine Internetverbindung zwingend notwendig ist. Des Weiteren sollte man berücksichtigen, dass, sobald man die Firmware der FRITZ!Box durch eine nicht freigegebene Firmware ersetzt, jegliche Garantieansprüche erlöschen.

Nichtsdestotrotz ist Freetz ein gelungenes Werkzeug zur Modifikation der Firmware einer FRITZ!Box für alle experimentierfreudigen Benutzer, da es eine Fülle an zusätzlichen Funktionen und nützlichen Erweiterungen für fast jedes Modell bietet.

Ein weiterer Vorteil liegt darin, dass es sich bei Freetz um freie Software handelt: Jeder kann den Quellcode nach Belieben verändern und weiterverteilen und somit wird Freetz kontinuierlich weiterentwickelt und verbessert.

5. Quellenverzeichnis

VMware, Inc., VMWare Player 3.0.1, http://www.vmware.com/products/player/, 18. Februar 2010

Silent-Tears, Freetz-Linux 1.1.1, http://www.ip-phone-forum.de/showthread.php?t=194433, 15. August 2009

Ubuntu Foundation, Ubuntu 10.04 LTS, http://www.ubuntu.com/, 29. April 2010

Oliver Metz, Alexander Kriegisch u.a., Freetz 1.1.3, http://trac.freetz.org/wiki/Download/, 29. April 2010

 

 

4. Juni 2010