Christopher Krug,
Philipp Kosar, Daniel Konieczny
Freetz ‒ Modifizieren der FRITZ!Box Firmware
Facharbeit im Kurs Fachpraxis Informationstechnik
Inhaltsverzeichnis
2.
Die ersten Schritte (und viele weitere)
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.
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.
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
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.
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.
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
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.
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