Rettung für die Fritz Box

Aus Zebradem WIKI
Wechseln zu: Navigation, Suche

ZD-Logo.png
Das Board mit Freiheiten





Rettung für die Fritz Box

Meist gibt sich die Fritz Box gutmütig. Egal ob man bei der Konfiguration über das Webinterface einen sinnlosen Eintrag vornimmt oder bei der Installation von Erweiterungsmodulen einen Fehler macht: Der DSL-Router ist nach einem Reboot wieder im Netzwerk ansprechbar, und man kann den Fehler korrigieren.

Doch was tun, wenn nach der Eingabe von http://fritz.box in die Adresszeile des Browsers nur ein „Server nicht gefunden“ erscheint? Bei Konfigurationsfehlern in der Original-Firmware mag ja die Hotline von AVM noch helfen. Aber wer mit Erweiterungen und Firmware-Modifikationen gebastelt hat, sollte den Support von AVM nicht belästigen. Ein Garantiefall ist eine modifizierte Fritz Box sicher nicht.

Im Folgenden bieten wir Ihnen Tipps, wie Sie sich bei Konfigurationsfehlern wieder Zugang zur Box verschaffen und falsche Einstellungen korrigieren. Wir beginnen dabei recht harmlos mit Tipps, die sich mit etwas Suche auch im Handbuch und auf den FAQ-Seiten von AVM finden lassen. Doch keine Angst: Spätestens dann, wenn wir am Ende dieses Beitrags die Box über den Bootloader ihrer AR7-CPU von Texas Instruments ansprechen, dürften sich bei einigen die Nackenhaare sträuben.

Unbekannte IP-Adresse

Standardmäßig arbeitet die Fritz Box als DSL-Router und ist die zentrale Anlaufstelle für das Netzwerkmanagement. Daher fungiert sie auch als DHCP-Server sowie DNS-Relay und versorgt die angeschlossenen PCs mit einer IP-Adresse nebst den netzwerkrelevanten Diensten. Durch die Eingabe von http://fritz.box im Browser landet man im Normalfall immer auf den Konfigurationsseiten der Box.

Wer jedoch seine Netzwerkadressen manuell vergeben hat, muss bei einer Änderung des Subnetzes oder der IP-Adresse der Fritz Box diese Einstellungen manuell auf den PCs nachführen. Hat man sich jedoch bei der Vergabe der IP-Adresse der Box vertan oder die Adresse vergessen, ist der Router zunächst nicht mehr über das Netz auffindbar.

Sofern der DHCP-Server der Box noch aktiviert ist, ist die Lösung simpel. Stellt man am PC die Netzwerkeigenschaften vorübergehend auf „IP-Adresse und DNS-Adresse automatisch beziehen“, erhält der PC eine zum Subnetz der Box passende Netzwerkkonfiguration. Daraufhin ist die Fritz Box via Browser wieder erreichbar und man kann den Fehler korrigieren.


Detail.jpg

Notfall-IP

Was aber, wenn man den DHCP-Server der Box abgeschaltet hat? Oder wenn man die Box als VoIP-Telefonadapter nutzt und sie nur als passiver Client im Netz läuft? Dann hat man zunächst ein Problem, falls man die IP-Adresse der Box nicht mehr kennt.

Aber AVM hat für diesen Fall eine Hintertür eingebaut. Egal wie man die Box auch konfiguriert, unter der Notfalladresse 192.168.178.254 ist die Box immer erreichbar. Allerdings muss man dazu dem PC manuell eine IP-Adresse aus dem Subnetz 192.168.178 geben (nicht aber .0, .1, .254, oder .255). Mit den Netzwerkeinstellungen im Screenshot sollte sich die Box immer melden, wenn man im Browser die Adresse http://192.168.178.254 eintippt bzw http://169.254.1.1


Detail2.jpg

Falls anschließend immer noch Probleme auftreten: Einige Fritz-Box-Modelle mit mehreren LAN-Ports reagieren nur auf einem Netzwerkanschluss auf die .254-Adresse. Deshalb muss man gegebenenfalls das Netzwerkkabel in eine andere Buchse umstecken.

Auf Werkseinstellungen zurücksetzen

Haben Sie das Passwort zur Konfigurationsoberfläche vergessen, müssen Sie die Fritz Box innerhalb der ersten zehn Minuten nach ihrem Start per Browser auf die Werkseinstellungen zurücksetzen. Damit beseitigen Sie auch alle anderen Konfigurationsprobleme und können mit einer jungfräulichen Fritz Box von vorne beginnen. Klicken Sie zum Werks-Reset einfach auf das „hier“ im Begrüßungsbildschirm.

Lässt sich die Box aber trotz angepasster Netzwerkkonfiguration und Notfalladresse nicht mehr über den Browser erreichen, bleibt einem der Reset per Mausklick verwehrt. Im Gegensatz zu anderen DSL-Routern bietet die Fritz Box auch keinen versteckten Schalter für das Zurücksetzen. Doch zumindest bei den Modellen mit Telefonanschluss (FON-Modelle) kann man den Werks-Reset per Telefon erledigen. Dafür muss auf der Box lediglich eine halbwegs aktuelle Firmware (ab xx.03.89) installiert sein.

Schließen Sie zum Zurücksetzen der Fritz Box ein beliebiges analoges oder ISDN-Telefon an die Box an. Nehmen Sie dann den Telefonhörer ab, geben Sie nach dem Wählton die Nummer „#991*15901590*“ ein und legen Sie wieder auf.

Lassen Sie der Fritz Box daraufhin eine Minute Zeit. Dann sollte sich die Box rebooten und mit den Einstellungen des Auslieferungszustands starten. Dadurch erhält sie wieder die Standard-IP-Adresse 192.168.178.1 und läuft mit aktiviertem DHCP-Server. Auch ein eventuelles Konfigurationspasswort ist durch den Reset gelöscht.

Beachten Sie, dass beim Zurücksetzen auch alle Firewall-Änderungen und die Konfiguration des DSL-Anschlusses und des WLANs resettet werden. Sichern Sie sich diese Daten daher rechtzeitig durch einen Ausdruck auf Papier.

Probleme in der debug.cfg

Eine Datei bleibt allerdings beim Werks-Reset unangetastet: die debug.cfg . Wenn in dieser für alle in unserer Fritz-Box-Serie vorgestellten Modifikationen zentralen Datei ein schwerer Fehler vorliegt, sind andere Lösungen angesagt.

Ein ganz trivialer Ansatz ist das Booten bei gezogenem DSL-Stecker. Die meisten über die debug.cfg eingespielten Modifikationen beginnen mit einem Block wie diesem: while !(ping -c 1 www.tecchannel.de); do sleep 5 done ..... Bevor also das Script wirklich etwas Sinnvolles tut, wartet es in einer ping-Endlosschleife, bis der Server www.tecchannel.de über die DSL-Verbindung erreichbar ist. Ohne DSL-Verbindung stoppt die Abarbeitung an dieser Schleife und es entsteht kein weiterer Schaden.

Daraufhin kann man sich in aller Ruhe per telnet auf die Box einwählen und den Fehler in der debug.cfg via nvi /var/flash/debug.cfg korrigieren. Was aber, wenn telnet zu diesem Augenblick noch gar nicht läuft und ein Aktivieren über Pseudo-Image (siehe Teil 1 unserer Serie) nicht möglich ist?

Hat man eine Fritz ox mit neuerer Firmware und mit Telefonanschluss, lässt sich der telnet-Daemon ganz einfach per Telefon durch die Eingabe von „#96*7*“ starten und die Box dann aus der Ferne warten. Abschalten kann man den Daemon übrigens über die „Telefonnummer“ „#96*8*“.

Lowlevel-Zugriff über den Bootloader

Die bislang gezeigten Ansätze funktionieren nur, solange die Box noch bootet und die AVM-Firmware startet. Kritisch wird es, wenn man eine falsche Firmware eingespielt hat oder das Firmware-Update durch einen Stromausfall oder Absturz in der Mitte abgebrochen wurde. Dann fehlt der Fritz Box ihr Linux-Betriebssystem und sie ist zunächst klinisch tot.

Wer jedoch schon einmal den Status der Netzwerkverbindungen unter Windows-XP beim Start der Fritz Box beobachtet hat, kann ein interessantes Verhalten beobachten. Der Status wechselt von „Netzwerkkabel wurde entfernt“ zu „Verbindung hergestellt“. Nach rund fünf Sekunden erscheint dann wieder „Netzwerkkabel wurde entfernt“, bevor die Box endgültig eine stabile Leitung aufbaut.

In diesen ersten paar Sekunden nach dem Boot übernimmt ein Bootloader, den noch der Hersteller des in der Fritz Box verbauten AR7-Prozessors installiert hat, die Kontrolle über die Box. Der ADAM2 genannte Loader befindet sich in einem von der Firmware getrennten Speicherbereich im Flash und wird auch bei einem Firmware-Update nicht angetastet. Ist die Box nicht durch einen Hardware-Defekt beschädigt, meldet sich ADAM2 bei jedem Start kurz im Netzwerk und bietet so die Möglichkeit, auch eine Fritz Box ohne Betriebssystem mit neuer Firmware zu flashen.

Im Folgenden beschreiben wir zunächst, wie Sie mit einem speziellen Recovery-Programm von AVM Kontakt zum Bootloader aufnehmen und ein neues Betriebssystem einspielen. Ist dies nicht möglich oder planen Sie gewagtere Umbauten, erfahren Sie anschließend, wie Sie sich direkt per FTP auf ADAM2 einloggen und manuell eine neue Firmware auf scheintote Boxen flashen.

Rettung per Recover.exe

AVM bietet „Wiederherstellungsprogramme“ für die verschiedenen Fritz-Box-Modelle an, mit denen es möglich ist, eine nicht ansprechbare Box wieder zum Leben zu erwecken. Das Wiederherstellungsprogramm ist bei neueren Fritz Boxen bereits auf der mitgelieferten CD zu finden. Wer sie dort nicht findet, kann sich auch an den AVM-Support wenden, der einem die passende Recovery.exe unbürokratisch zusendet.

Auf Nachfrage hat AVM bestätigt, dass in Kürze das Wiederherstellungsprogramm für jede Fritz Box auf dem AVM-FTP-Server ftp://ftp.avm.de/ bereitgestellt wird. Schon seit langer Zeit ist das Rettungs-Tool dort für die meisten Modelle über einen Trick zu finden: Im Verzeichnis /fritz.box liegt für die neueren Modelle eine aktuelle Beta-Firmware zum Downloaden. In den selbstextrahierenden Archiven befindet sich neben der Beta-Firmware stets auch die zur Box passende Recovery.exe , um den Beta-Test im Notfall rückgängig machen zu können. Doch selbstverständlich lassen sich auch andere Katastrophen damit abwenden

In den Programmnamen kodiert AVM das jeweilige Modell und die darin enthaltene Firmware-Version mit ein. So eignet sich die Datei FRITZ.Box_Fon_WLAN_7050.04.01.recoverimage.exe für das Modell 7050 und spielt die Firmware *.04.01 ein.

Noch ein Tipp: Der FTP-Download gelingt nicht immer über den Browser. Besser ist der Connect über einen echten FTP-Client.

Lauschen an der Netzwerkbuchse

Für das Recovery muss die Fritz Box direkt mit dem PC verbunden sein. Beim erstmaligen Start ändert Recover.exe einen Eintrag in der Registry des PCs und fordert zum Reboot des Computers auf. Die Änderung betrifft das DHCP-Mediasensing und ermöglicht dem Programm, den physikalischen Aufbau einer Netzwerkverbindung schneller zu ermitteln.

Detail3.jpg


Nach dem Reboot des PCs fordert Recover.exe zum Einschalten der Fritz Box auf. Dann lauscht es an der Netzwerkbuchse und versucht, den erstmaligen, kurzen Aufbau einer Hardware-Verbindung zu detektieren. Im passenden Zeitfenster verbindet sich Recover.exe dann per FTP mit dem rudimentären Bootloader ADAM2. Gelingt dies, spielt Recover.exe eine neue Firmware ein und die Box ist gerettet.

Manchmal sind dazu mehrere Versuche nötig. Laut AVM können bis zu sechs Anläufe nötig sein, bis die Box wieder im Auslieferungszustand ist. Da dabei der komplette Flash-Speicher (bis auf den Bootloader) überschrieben wird, sind anschließend alle Modifikationen und auch Änderungen in den Konfigurationsdateien restlos beseitigt.


Direkter FTP-Zugang zu ADAM2

Im Prinzip kann man die Funktionen des Recover-Tools von AVM auch manuell ausführen. Allerdings sollte man dies nur machen, wenn Recover.exe scheitert, wenn man mal so richtig auf die Innereien der Box zugreifen will oder man exotischere Pläne hat. Im ip-phone-forum wird beispielsweise berichtet, dass sich ein Eumex-300-IP-Router der Telekom über ADAM2 zur Fritz Box Fon umflashen lässt. Dadurch soll der Router ein weitaus besseres Userinterface bieten.

Der Bootloader ADAM2 stellt für wenige Sekunden einen sehr rudimentären FTP-Server unter der IP-Adresse 192.168.178.1 über das Netzwerk zur Verfügung. Erfolgt kein Connect in diesem Zeitfenster, gibt er die Kontrolle über einen definierten Einsprungpunkt an das von AVM entwickelte Linux der Fritz Box weiter. Die Kunst beim Aufbau der FTP-Verbindung zum Bootloader ist es, den FTP-Connect im richtigen Zeitfenster abzusetzen. Üben Sie dies ruhig einmal bei Ihrer funktionsfähigen Box, dann haben Sie im Notfall ein besseres Gefühl für den richtigen Zeitpunkt.


Detail4.jpg


Bevor Sie beginnen, müssen Sie die Netzwerkadresse Ihres PCs fest in das Subnetz 192.168.178 legen (aber nicht auf die .0, .1, .254 oder .255). Bewährt hat sich, im Hintergrund ein Fenster mit den Eigenschaften der Netzwerkverbindungen laufen zu lassen. Im Vordergrund öffnen Sie ein CMD-Fenster und geben gleich einmal die Zeile ftp 192.168.178.1 ein. Stecken Sie dann die Stromzuführung der Fritz Box an und beobachten Sie den Status der Netzwerkverbindung. Wenn dieser das erste Mal von „Netzwerkadresse beziehen“ auf „Verbindung hergestellt“ wechselt, drücken Sie die Enter-Taste.

Haben Sie den richtigen Augenblick erwischt, meldet sich ADAM2. Ansonsten brechen Sie den FTP-Client mit Strg-C ab, stecken die Box wieder vom Stromnetz ab und versuchen es erneut. Variieren Sie dabei den Augenblick der FTP-Anmeldung und geben Sie nicht gleich auf. Zehn Fehlversuche sind ganz normal. Meldet sich dann endlich der FTP-Server, lauten der Benutzername und das Passwort für den Login „adam2“.

Registry-Patch erspart Fehlversuche

Weitaus einfacher klappt der Verbindungsaufbau, wenn Sie vorher das DHCPMediaSense in der Windows-Registry abschalten. Dann lässt Windows den TCP/IP-Stack weiterlaufen, auch wenn die physikalische Netzwerkverbindung kurzfristig unterbrochen ist. Der Status einer Netzwerkverbindung springt dadurch ohne lange Neukonfiguration von „Netzwerkkabel wurde entfernt“ auf „Verbindung hergestellt“. Somit verlängert sich das Zeitfenster, das man für die Kontaktaufnahme mit ADAM2 hat, deutlich. Nach dem Registry-Patch gelang uns der FTP-Login jedes Mal auf Anhieb. Man muss nach dem Start der Fritz Box nur warten, bis der Netzwerkstatus auf „Verbindung hergestellt“ wechselt, und hat dann noch gut zwei Sekunden für den FTP-Connect zur Verfügung.

Für den Patch rufen Sie regedit.exe auf und wechseln zum Schlüssel HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters Fügen Sie dort ein neues REG_DWORD mit dem Namen DisableDHCPMediaSense und dem Wert 1 ein.


Detail5.jpg

Nach einem Reboot des PCs gelingt der ADAM2-Connect problemlos. Im Normalfall können Sie den Registry-Wert auch nach der Fritz-Box-Reparatur beibehalten. Probleme dadurch sind nur zu erwarten, wenn Sie einen PC oder ein Notebook im laufenden Betrieb an einem Netzwerk abstecken und an ein anderes anschließen. Auch wer mit zwei Netzwerkkarten im PC parallel arbeitet, sollte den Registry-Wert am Ende auf 0 setzen.

Vorwissen

Bevor wir mit ADAM2 arbeiten, sind noch ein paar interne Grundlagen über die Fritz Box nötig. Der Flash-Speicher der Box teilt sich in fünf Bereiche, deren Größe je nach Modell schwankt. Diese Bereiche werden im späteren Verlauf über ihre symbolischen Namen angesprochen:

   mtd0: Filesystem, root, 3 bis ca. 6 MB
   mtd1: Linux Kernel, 704 KB
   mtd2: ADAM2 Bootloader, 64 KB
   mtd3, mtd4: 2 Blöcke, je 128 oder 256 KB mit transaktionssicherem Flash-File-System (TFFS) für die variablen Konfigurationsdaten

Folgender Befehl zeigt die Blockverteilung mit ihrer Start- und Endadresse an, wenn man sich per telnet auf eine funktionsfähige Box einloggt : cat /proc/sys/dev/adam2/environment Einige Fritz-Box-Versionen fassen den Kernel und das Filesystem zu einem großen Block zusammen. In diesem Fall ist die Start- und Endadresse von mtd0 identisch und dessen Größe somit 0. mtd1 hat zum Ausgleich dann eine Größe von mehreren Megabyte.

Detail6.jpg

Sind Sie bereits in ADAM2 eingeloggt, können Sie sich die Größe eines Blocks (hier mtd0) auch mit folgendem Kommando anzeigen lassen. Beachten Sie dabei unbedingt die Groß- und Kleinschreibung: quote GETENV mtd0 Im Prinzip muss man für einen manuellen Firmware-Update jetzt nur die Blöcke mtd0 und mtd1 per ADAM2-FTP mit einem funktionierenden Image überschreiben. Stellt sich zunächst die Frage: Woher bekommt man diese beiden Dateien?

Dateien für das Update

Die Lösung ist einfach: Beide sind in der Image-Datei enthalten, die man bei einem Firmware-Update oder direkt per FTP vom AVM-Server herunterladen kann. Diese Dateien enden zwar auf die Extension .image . Doch spätestens, wenn man sie in .tar umbenennt, können sie Entpacker wie Winrar oder Winzip öffnen.


Detail7.jpg

Für das manuelle Update benötigt werden die beiden Dateien kernel.image und filesystem.image . Für Fritz-Box-Modelle, bei denen Kernel und Filesystem zu einem Block zusammengefasst sind (mtd0-Block hat die Größe 0), hat auch die Datei filesystem.image die Größe 0.

Jetzt genügt es, die beiden Dateien per FTP an die richtige Stelle im Flash-Speicher der Fritz Box zu kopieren. Als Beispiel benutzen wir im Folgenden eine Fritz Box Fon WLAN und erläutern die Hürden, die dabei noch auftreten. Diese sind bei allen Modellen ähnlich zu lösen, meist muss man nur die Adresslagen der Firmware-Blöcke anpassen.

Kernel-Update

Bei Boxen mit getrenntem Filesystem und Kernel gelingt zumindest der Kernel-Upload noch problemlos. Kopieren Sie die Datei kernel.image in das Arbeitsverzeichnis, aus dem Sie den FTP-Client aufgerufen haben. Auf dem ADAM2-FTP-Prompt genügen dann folgende Komandos (Achtung: Großschreibung beachten!): debug bin quote MEDIA FLSH put kernel.image “kernel.image mtd1“ Keine Panik: Der put-Befehl zeigt rund 30 Sekunden keine Reaktion. Die Fritz Box muss den angegebenen Flash-Bereich erst löschen, bevor sie neue Daten darin ablegen kann. Anschließend läuft der eigentliche Datei-Upload in wenigen Sekunden ab.

Detail8.jpg

Wer nun glaubt, das Filesystem oder einen damit kombinierten großen Kernel ebenso einfach hochladen zu können, scheitert an zwei Hürden:

   Durch die Dateigröße von drei bis vier Megabyte dauert die Pause zum Löschen des Flash-Speichers zu lange. Der Windows-FTP-Client bricht vorher die Verbindung mit einem Timeout ab.
   Je nach Version scheint der ADAM2-Bootloader nur Häppchen von maximal einem Megabyte oder sogar noch etwas weniger zu verdauen. Bei größeren Blöcken brach er zumindest bei uns den Upload ab.

Filesystem-Update

Die Lösung beider Probleme ist einfach, wenn auch etwas mühsam: Zerteilen Sie die Datei einfach in mundgerechte Stücke. Bei unserer Fritz Box haben sich Portionen von 512 KB als praktikabel erwiesen. Das Aufteilen erledigen Sie mit einem der vielen Freeware-Dateisplitter wie etwa HJSplit. Im Folgenden gehen wir davon aus, dass Sie die Datei filesystem.image in die sechs Teile à 512 KB filesystem.image.001 bis filesystem.image.006 aufgeteilt haben.

Vor dem Upload der einzelnen Segmente müssen noch die Start- und Endadressen des verkleinerten Blocks berechnet werden, da wir ja nicht mehr den kompletten mtd0-Block auf einmal überschreiben. Geben Sie dazu am ADAM2-FTP-Prompt folgendes Kommando ein: qoute GETENV mtd0 Dadurch erfahren Sie die Lage des kompletten Zielblocks, in unserem Fall von Adresse 0x900C0000 bis 0x903C0000 . Vor dem Upload müssen wir diesen Bereich jetzt anpassen und dafür etwas hexadezimal rechnen. Der erste 512-KB-Teil-Upload soll zwar weiterhin ab Adresse 0x900C0000 starten, geht dann aber nur noch bis 0x9014000 . Den entsprechenden Environment-Eintrag ändern Sie mit dem Befehl: quote SETENV mtd0,0x900C0000,0x9014000 Somit können Sie den ersten Teilblock hochladen mit den Befehlen debug bin quote SETENV mtd0,0x900C0000,0x90140000 quote MEDIA FLSH put filesystem.image.001 “filesystem.image.001 mtd0“ Für den zweiten Upload passen Sie mtd0 auf die neuen Grenzen 0x90140000 und 0x901C0000 an. Die komplette zweite Upload-Sequenz lautet also: debug bin quote SETENV mtd0,0x90140000,0x901C0000 quote MEDIA FLSH put filesystem.image.002 “filesystem.image.002 mtd0“


Mühsam, aber erfolgreich

So fahren Sie fort, bis Sie den sechsten Teil in den Block von 0x90340000 bis 0x903C0000 hochladen. Jetzt genügt ein abschließendes quote REBOOT und die Box startet durch und meldet sich, als käme sie frisch aus der Fabrik. Der folgende Screenshot verdeutlicht nochmals das Verfahren:

Detail9.jpg

Ganz analog verfahren Sie, falls Ihre Box das System nur in einer mehrere Megabyte großen kernel.image enthält, nur dass Sie dabei jeweils mtd1 anpassen und bei dem put -Befehl mtd1 als Ziel angeben.

Zwei letzte Besonderheiten seien noch erwähnt: Der abschließende Reboot dauert etwas länger und die Fritz Box benötigt mehrere Anläufe, bis Sie endlich hochlädt. Lassen Sie ihr dafür fünf Minuten Zeit.

Zudem hatten wir Probleme, alle sechs Teile hintereinander hochzuladen. Jeweils nach zwei 512-KB-Blöcken ging die Box in den Reboot. Loggen Sie sich in diesem Fall wieder in ADAM2 ein und fahren Sie mit den noch nicht hochgeladenen Segmenten fort.

RuKerneltool

Einfacher geht das alles mit dem RuKernelTool

Fazit

Mit den hier gezeigten Methoden können Sie eine Fritz Box selbst aus ausweglos erscheinenden Situationen retten. Wir haben im letzten halben Jahr viele Experimente mit diversen Fritz-Box-Modellen durchgeführt. Doch all unsere Boxen haben dies unbeschadet überstanden und laufen noch immer.

Scheuen Sie sich nicht, mit den kleinen Kästchen zu spielen. Sie sind ein wunderbarer Einstieg in die Linux-Welt und machen auch einem eingefleischten Windows-User klar, was man mit Linux und seiner Kommandozeile alles zaubern kann. Wir hatten jedenfalls viel Spaß beim Spielen und Experimentieren mit den AVM-DSL-Routern.


Quellenangaben

http://www.tecchannel.de/

Wichtige Links