Um die Firmware per Bootloader auf die Box hochzuladen muss die Box erst einmal im Bootloader angehalten werden. Der Bootloader ist nur kurz nach dem Einschalten der FRITZ!Box erreichbar und muss in diesem Zeitraum "angehalten" werden. Der Bootloader ist unabhängig von der derzeit installierten FRITZ!OS-Version, falls also (warum auch immer) die FRITZ!Box in einer Bootschleife hängt (also nicht mehr korrekt startet) so steht weiterhin der Bootloader zur Verfügung über den die Box evtl. wieder "gerettet" werden kann. Es ist also wichtig, dass man sich mit der bzw. einer Methode vertraut macht wie man auf den Bootloader (z.B. per FTP-Client) zugreifen kann.
Vorbereitung
Prinzipiell gibt es mehrere Möglichkeiten den Bootloader zu erreichen. Man verbindet als allererstes einen LAN-Port der FRITZ!Box per Patch-Kabel mit dem LAN-Port des verwendeten PC/Notebook. Da der Bootloader und somit auch die LAN-Ports der FRITZ!Box nur kurz (ca. für 5s) nach dem Einschalten der FRITZ!Box aktiviert sind, kann es passieren, dass der PC/Notebook z.B. aufgrund des MediaSensing oder "Trägheit" des LAN-Ports des PC/Notebook nicht rechtzeitig Kenntnis davon nimmt, dass der LAN-Port der FRITZ!Box eingeschaltet ist. In solchen Fällen hilft z.B. der Einsatz eines einfachen Ethernet-Switches den man zwischen PC/Notebook und FRITZ!Box anschließt (also PC/Notebook
<Patchkabel> Switch
<Patchkabel> FRITZ!Box).
Zu beachten ist außerdem, dass der Bootloader i.d.R. auf die IP-Adresse 192.168.178.1 hört
und zwar unabhängig davon, welche IPv4-Einstellungen man bei der Konfiguration im WebIf der FRITZ!Box eingestellt hat! Der Bootloader hat dbzgl. seine
eigene (Vor)-Einstellung welche nicht über das WebIf der FRITZ!Box bzgl. IPv4-Einstellungen geändert werden kann!
Die IPv4-Einstellung/Adresse des Bootloader ist in der Variable "my_ipaddress" abgelegt, diese kann also z.B. auch über die Support-Daten ausgelesen werden (falls diese Einstellung z.B. mal geändert wurde, m.W.n. macht das z.B. das ruKernelTool gerne, warum auch immer).
Ich gehe davon aus, dass der Bootloader auf die IP-Adresse 192.168.178.1 reagiert. Ist dieser (siehe Support-Daten) evtl. auf eine andere IP-Adresse eingestellt sind die IP-Einstellungen und Kommandozeilen Befehle entsprechend anzupassen.
Es bietet sich also an oder ist je nach verwendeter Methode erforderlich, die IPv4-Einstellungen der verwendeten LAN-Schnittstelle des PC/Notebook (manuell, kein DHCP) entsprechend dem Bootloader einzustellen. Wenn also der Bootloader über 192.168.178.1 erreichbar ist dann bekommt der PC/Laptop eine:
- IPv4-Adresse zwischen 192.168.178.2-254,
- als Subnetzmaske bietet sich 255.255.255.0 an und
- als Gateway kann 192.168.178.1 eingetragen werden (darauf kann auch verzichtet werden wenn man z.B. in den erweiterten Einstellungen dieses Subnetz zusätzlich anlegt).
Ein DNS-Server muss
nicht angegeben werden bei den IPv4-Einstellungen.
Eine aktive (Personal)-Firewall sollte den Zugriff erlauben bzw. bei Problemen ersatzweise (vorübergehend) deaktiviert oder gar deinstalliert werden.
1. Methode (die manuelle Variante, unabhängig vom Betriebssystem)
Prinzipiell funktioniert das mit jedem Betriebssystem (Windows, MacOS, Linux-Distribution usw.) welches einen Kommandozeilen FTP-Client mitbringt.
- Man starte ein Kommandozeilen-Terminal (z.B. "Eingabeaufforderung" bei Windows).
- Man gebe in die Kommandozeile folgenden Befehl ein aber drückt noch nicht ENTER:
- Nun verbindet man die FRITZ!Box mit dem Stecker-Netzteil, nach ca. 2-4s ist der Bootloader erreichbar (man erkennt es daran, dass die Ethernet-Verbindung aktiv ist). Nun hat man (bis zu) 5s Zeit den schon eingegebenen Befehl auszuführen (Enter drücken).
- In Verbindung mit dem richtigen Timing sieht das ganze so aus:
Code: Alles auswählen
Verbindung mit 192.168.178.1 wurde hergestellt.
220 ADAM2 FTP Server ready
530 not logged in
Benutzer (192.168.178.1:(none)):
Steht dort nicht "ADAM2 FTP Server ready" dann hat man nicht den Bootloader der FRITZ!Box erreicht sondern (irgendeinen) anderen FTP-Server, dann braucht man also nicht weiter fortzufahren!
- Mit der Zeile "Benutzer (192.168.178.1:(none)):" fragt der Bootloader nach dem Benutzername, der lautet "adam2" (ohne Anführungszeichen), das ist auch gleich das Passwort was im nächsten Schritt abgefragt wird.
- Ist Benutzername und Passwort eingegeben (und wurden akzeptiert) sieht das nun so aus:
Code: Alles auswählen
Verbindung mit 192.168.178.1 wurde hergestellt.
220 ADAM2 FTP Server ready
530 not logged in
Benutzer (192.168.178.1:(none)): adam2
331 Password required for adam2
Kennwort:
230 User adam2 successfully logged in
ftp>
Nun ist man also mit dem Bootloader verbunden und kann entsprechende Aktionen durchführen. Mit dem Befehl "bye" (ohne Anführungszeichen) kann die Verbindung beendet werden ohne die FRITZ!Box zu rebooten, der Bootloader steht also weiterhin zur Verfügung. Neustart dann indem man die Stromversorgung der FRITZ!Box kurz trennt oder man führt den Reboot durch indem man vor dem beenden der FTP-Verbindung mit "bye" den Befehl "quote REBOOT" (ohne Anführungszeichen) ausführt.
2. Methode (für *nix und MacOS X Systeme, mit Shell-Script)
Eine weitere Methode ist der Einsatz des Tools "eva_discover" aus dem
YourFritz-Repository von PeterPawn:
https://github.com/PeterPawn/YourFritz/ ... a_discover
Das bietet sich z.B. unter Linux-Systemen an wenn man Probleme mit dem richtigen Timing hat und die 3. Methode mangels Windows nicht verwenden möchte.
3. Methode (für Windows-Systeme, mit AVM Wiederherstellungstool)
Das bietet sich an wenn man bei der 1. Methode Probleme mit dem richtigen Timing hat.
Das Wiederherstellungstool von AVM (aka Recovery) bedient sich der gleichen Methode, es spricht den Bootloader (EVA) der FRITZ!Box kurz nach dem einschalten (Stromzufuhr) der FRITZ!Box an, daher ist auch das Wiederherstellungstool von AVM unabhängig davon wie die aktuelle Konfiguration einer FRITZ!Box aussieht oder welche Firmware-Version darauf installiert ist.
Das kann man sich zunutze machen, das Wiederherstellungstool von AVM überprüft vor dem übertragen der Firmware ob das verwendete Wiederherstellungstool überhaupt zur angeschlossenen FRITZ!Box passt, dazu muss es sich aber mit dem Bootloader verbinden um das zu überprüfen. Man verwendet also das AVM Recovery-Tool von einem anderen FRITZ!Box-Modell, hat man z.B. eine 7590 könnte man z.B. das Recovery-Tool einer FRITZ!Box 7490 verwenden. Es gibt dann zwar eine Fehlermeldung aus, dass das Wiederherstellungstool nicht zur angeschlossenen FRITZ!Box passt, aber das Tool hat den Bootloader der FRITZ!Box dennoch erst einmal angehalten und somit hat man nun alle Zeit der Welt z.B. mit einem FTP-Client auf den Bootloader der FRITZ!Box zuzugreifen.
4. Methode (für Windows-Systeme, mit PowerShell-Script)
Diese Methode bietet sich ebenfalls unter Windows an wenn man bei der 1. Methode Probleme mit dem richtigen Timing hat und/oder die PowerShell verwendet.
Wie schon in Beitrag #3 (Hinweise und Voraussetzungen für PowerShell unter Windows) erwähnt gehe ich in diesem Beispiel davon aus, dass sich das PowerShell-Script "EVA-Discover.ps1" von PeterPawn unter "C:\YourFritz\master\eva_tools\" befindet.
- Man startet die PowerShell (Voraussetzungen s.h. Beitrag #3)
- Mit folgendem Kommando wechseln wir in den Ordner mit dem PowerShell-Script:
Ergebnis:
Code: Alles auswählen
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Alle Rechte vorbehalten.
PS C:\Users\MaxMuster> cd c:\YourFritz\master\eva_tools\
PS C:\YourFritz\master\eva_tools>
- Nun beginnt man zum Beispiel mit folgendem Befehl die Suche nach dem Bootloader der FRITZ!Box:
- Innerhalb der eingestellten Wartezeit (120s / 2 Minuten) verbindet man nun die FRITZ!Box mit dem Stecker-Netzteil, nach einer Weile sollte die Box gefunden werden:
Code: Alles auswählen
PS C:\YourFritz\master\eva_tools> .\EVA-Discover.ps1 -maxWait 120 -Debug -Verbose
AUSFÜHRLICH: Sending discovery packet (1) ...
AUSFÜHRLICH: Sending discovery packet (2) ...
AUSFÜHRLICH: Sending discovery packet (3) ...
AUSFÜHRLICH: Sending discovery packet (4) ...
AUSFÜHRLICH: Sending discovery packet (5) ...
AUSFÜHRLICH: Sending discovery packet (6) ...
AUSFÜHRLICH: Sending discovery packet (7) ...
AUSFÜHRLICH: Sending discovery packet (8) ...
AUSFÜHRLICH: Sending discovery packet (9) ...
AUSFÜHRLICH: Sending discovery packet (10) ...
AUSFÜHRLICH: Sending discovery packet (11) ...
AUSFÜHRLICH: Sending discovery packet (12) ...
DEBUG: Received UDP packet from 192.168.178.1:5035 ...
AUSFÜHRLICH: Trying to connect to the FTP port to hold up the device in bootloader ...
DEBUG: Error during FTP connection attempt ...
EVA_IP=192.168.178.1
True
PS C:\YourFritz\master\eva_tools>
- Nun ist der Bootloader der FRITZ!Box angehalten und hat somit alle Zeit der Welt z.B. mit einem FTP-Client oder auch mit dem PowerShell-Script "EVA-FTP-Client.ps1" auf den Bootloader der FRITZ!Box zuzugreifen.
Vorteil der 2., 3. und 4. Methode ist, dass man kein Timing berücksichtigen muss, sowohl das Script
eva_discover, das Wiederherstellungstool von AVM als auch das PowerShell-Script
EVA-Discover.ps1 "suchen" permanent nach dem Bootloader bis sie ihn erreichen können.
Nach Anwendung der 2., 3. oder 4. Methode (oder nachdem man die Verbindung zum Bootloader per "bye" verlassen hat
ohne vorheriges "quote REBOOT") kann man z.B. mit einem FTP-Client, so wie in Methode 1 gezeigt, auf den Bootloader zugreifen (also z.B. per "ftp 192.168.178.1", Benutzername und Passwort s.h. Methode 1), nur, dass man nun keinen "Zeitdruck" mehr dabei hat oder ein Timing berücksichtigen muss (man kann also bei Pkt. 2 der 1. Methode gleich Enter drücken und Pkt. 3 überspringen).
BTW:
Ich persönlich bevorzuge übrigens nc anstatt ftp (unter Linux), damit entfällt dann das "quote" vor jedem Befehl. Für Windows-Nutzer empfehle ich die Variante mit dem PowerShell-Script von PeterPawn.
Die verschiedenen Methoden den Bootloader zu erreichen und noch mehr Hintergründe dazu sind auch sehr umfangreich in der Anleitung BOOTSELECTION.ger von PeterPawn beschrieben:
https://github.com/PeterPawn/modfs/blob ... ECTION.ger
oder im IPPF:
Wie "recovere" ich eigentlich richtig? (bzw. "Wie erreiche ich den Bootloader einer FRITZ!Box wirklich zuverlässig per FTP?")