Direkt zum Hauptinhalt

Freetz auf 7490 installieren

1. Image bauen

Das geht am komfortabelsten mit https://github.com/pfichtner/pfichtner-freetz

Dazu unter Windows 10/11 die Docker Engine nutzen und folgende Befehle ausführen

# start docker container (will start /bin/bash)
docker run --rm -it -v freetz-workspace:/workspace pfichtner/freetz
# clone (checkout) the remote repo into the current directory (only needed once/the first time)
git clone https://github.com/Freetz-NG/freetz-ng.git
# cd into the cloned repo
cd freetz-ng
# configure image
make menuconfig
# make image - on error try again
make

Abhängig davon ob es sich um einen NAND Router (7490) handelt, muss das Image noch als "In-Memory-Image" aufbereitet werden

builduser@a744b2c9009d:~/freetz-ng/tools$ ./image2inmemory
Reading /workspace/freetz-ng/images/7490_07.59.all_freetz-ng-24803-b2015be9aa_20241025-071013.image
Writing /workspace/freetz-ng/images/7490_07.59.all_freetz-ng-24803-b2015be9aa_20241025-071013.image.inmemory
Success!

Das Image kann nun aus dem Container "exportiert werden"

grafik.png

2. Image auf FritzBox hochladen

Da es sich bei der 7490 um eine NAND Version handelt, können wir das "push_firmware" tool aus dem Freetz-Docker nicht verwenden. PeterPawn hat passende PowerShell Scripte geschrieben. Folgendes Repository lokal clonen: https://github.com/PeterPawn/YourFritz

Die nachfolgenden Punkte sind eine Zusammenfassung aus folgender Quelle: https://web.archive.org/web/20190529205946/https://www.ip-forum.eu/howto-fritz-box-firmware-images-auch-unsignierte-ueber-den-bootloader-installieren-577

Bootloader (EVA) per FTP erreichen und anhalten

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).

4. Methode (für Windows-Systeme, mit PowerShell-Script)

Mit folgendem Kommando wechseln wir in den Ordner mit dem PowerShell-Script:

  1. Code: Alles auswählen

    cd c:\YourFritz\master\eva_tools\
    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>
  2. Nun beginnt man zum Beispiel mit folgendem Befehl die Suche nach dem Bootloader der FRITZ!Box:

    Code: Alles auswählen

    .\EVA-Discover.ps1 -maxWait 120 -Debug -Verbose
  3. 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> 
  4. 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.

Firmware-Image in den RAM hochladen und installieren lassen - 7490

Voraussetzung: Die Box ist bereits im Bootloader angehalten

Zu beachten ist, dass sich das in den RAM der FritzBox hochgeladene Firmware-Image üblicherweise in das gerade aktive Partitionsset schreibt (das bestimmt nicht der Bootloader sondern das verwendete Firmware-Image, also theoretisch könnte man das entsprechende Script in der Firmware dbzgl. auch abändern). Wenn man das nicht möchte also z.B. vorher die Environment-Variable "linux_fs_start" entsprechend abändern.Man startet die PowerShell (Voraussetzungen s.h. Beitrag #3), falls diese vom vorhergehenden Schritt nicht mehr offen sein sollte:

  1. Code: Alles auswählen

    Windows PowerShell
    Copyright Microsoft Corporation. Alle Rechte vorbehalten.
    
    PS C:\Users\MaxMuster>
  2. Bei Bedarf auslesen des aktiven Partitionsset (Variable "linux_fs_start") per folgendem Kommando:

    Code: Alles auswählen

    c:\YourFritz\master\eva_tools\EVA-FTP-Client.ps1 -ScriptBlock { GetEnvironmentValue linux_fs_start }
    Das Ergebnis sieht dann z.B. so aus:

    Code: Alles auswählen

    PS C:\Users\MaxMuster> c:\YourFritz\master\eva_tools\EVA-FTP-Client.ps1 -ScriptBlock { GetEnvironmentValue linux_fs_start }
    1
    PS C:\Users\MaxMuster>
  3. Den Wert der Variable linux_fs_start (hier im Beispiel "1") bei Bedarf ändern wenn man die Firmware im anderen (derzeit inaktiven) Partitionsset installieren möchte (ansonsten diesen Schritt einfach überspringen):

    Code: Alles auswählen

    c:\YourFritz\master\eva_tools\EVA-FTP-Client.ps1 -Verbose -ScriptBlock { SwitchSystem }
    In diesem Beispiel ist der aktuelle Wert 1. Das bedeutet, das Script setzt den Wert auf 0, das sieht dann so aus:

    Code: Alles auswählen

    PS C:\Users\MaxMuster> c:\YourFritz\master\eva_tools\EVA-FTP-Client.ps1 -Verbose -ScriptBlock { SwitchSystem }
    AUSFÜHRLICH: current setting - linux_fs_start=1
    AUSFÜHRLICH: new setting     - linux_fs_start=0
    AUSFÜHRLICH: new value set successfully
    True
    PS C:\Users\MaxMuster>

  4. Hochladen des In-Memory Images mit folgendem Kommando:

    Code: Alles auswählen

    c:\YourFritz\master\eva_tools\EVA-FTP-Client.ps1 -Verbose -Debug -ScriptBlock { BootDeviceFromImage c:\YourFritz\Images\firmware.image.in-memory }
    • Alternativ für die IPQ4019-Modelle (FRITZ!Box 7520, 7530 und FRITZ!Repeater 3000) mit zusätzlichem Parameter 0 (Null oder False):

      Code: Alles auswählen

      c:\YourFritz\master\eva_tools\EVA-FTP-Client.ps1 -Verbose -Debug -ScriptBlock { BootDeviceFromImage c:\YourFritz\Images\firmware.image.in-memory 0 }
      Weiteres dazu siehe Beitrag von @PeterPawn im IPPF: https://www.ip-phone-forum.de/posts/2320843/
    Nun abwarten bis das Image hochgeladen wurde.


Hinweis
Nach dem Hochladen des Image kann die PowerShell-Konsole geschlossen werden aber die Box darf noch nicht von der Stromversorgung getrennt werden!
Die Box nach dem hochladen der Firmware in den RAM eine Weile in Ruhe zu lassen (nicht die Stromzufuhr unterbrechen), es ist normal, dass die Box während des Vorganges zweimal neu startet.

3. Login

Nachdem die Fritzbox neu gebootet hat (192.168.178.1), kann man nun entweder über Port 81 oder im Webinterface über den Button auf die Freetz Oberfläche:

grafik.png

 

Das Standartlogin lautet:

Benutzername: admin
Passwort: freetz