[HowTo] Infos/Anleitung Freetz auf 7490 und 7590 flashen Stand 2019

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
Hallo,

habe seit langer Zeit mal meine 7390 aktualisert und mit 7490 und 7590 mit freetz ersetzt.

Seit der 7390 hat sich viel verändert und einige Hindernisse sind eingebaut worden, so dass einfach flashen einer Freetz Firmware geht nicht. Da mich das herausfinden dieser Probleme sehr viel zeit gekostet hat, hier eine Sammlung von Dingen die ich nicht wusste, bzw. neu für mich waren um erfolgreich Freetz auf die 7490 und 7590 zu bringen. Diese Punkte dienen mehr als Notiz für mich, wenn ich später mal wieder danach suchen muss, weil die sehr detailierten Posts von PeterPawn und anderen einfach zu lange sind, und mitlerweile irgendwo in the tausend anderen Post untergehen.

1. O2 Branding ist auch unter der Variable "provider" hinterlegt, so dass Stock Recoveries nicht funktionieren.

Lösung: Debranden nach dieser ANleitung: https://www.schongeil.de/fritz-box-branding-entfernen/

Kurzanleitung: Box beim Start per "ftp 192.168.178.1" stoppen, User/Pass: "adam2" eigeben und die foglenden befehle eingeben:


debug bin
quote GETENV provider
quote UNSETENV provider
quote SETENV firmware_version avm
quote reboot


Dann sofort die Stockrecovery die Box komplett neu flashen lassen, damit man eine Stock Box hat ohne irgendwelche dämlichen Brandings. Ohne die befehle oben lässt die AVM Stockrecovery das zurücksetzen einer O" Box nicht zu, und O2 bietet keine recoveries an. Unglaublich, aber wahr, hätte man von o2 eigentlich auch nichts anderes erwarten können.


2. Powershell script von peterPawn runterladen von: https://github.com/PeterPawn/YourFritz/tree/master/eva_tools


Das discover Script is nicht wirklich hilfreich, aber das EVA-FTP-Client.ps1.

Falls die Powersehll scripte Fehler melden, lag das bei mir daran, dass ich zig LAN und VPN Adapter habe, dann alle bis auf den echten LAN Adapter disablen, damit die Scripte probemlos durchlaufen.

Erst Box beim Start per "ftp 192.168.178.1" stoppen, User/Pass: "adam2". Tip: Der Bootloader ist verfügbar, sobald das Icon für die Netwerkkarte von disconnected auf connected wechselt, dann innerhalb von 5 sekunden das ftp commando ausführen.

dann "bye" eingeben, damit der ftp server für andere Tools, wie das Powershell freigegeben wird. Beim Discover script von pterPawn habe ich nicht verstanden wie man aus dem discober script rauskommt, und den ftp server für die anderen tools freigibt, also das was "bye" bei ftp macht, also vom ftp server disconnecten ohne die Box neuzustarten.

Das powershell screipt aus dem Speicherordner aufrufen (powerchel muss im besagten orden sein): ".\EVA-FTP-Client.ps1"

Genaue Anleitung ist in diesem Post: https://www.ip-phone-forum.de/threads/wie-verwende-ich-denn-nun-die-skript-dateien-aus-yourfritz-eva_tools.298591/

Aber kurz, es muss der folgende befehl eingegeben werden:
.\EVA-FTP-Client.ps1 -Verbose -Debug -ScriptBlock { BootDeviceFromImage c:\VerzeichnisWoDieDateienLiegen\7590_06.92-freetz-devel-14596M.de_20180214-212131.image.in-memory }

Das .in-memory Image erhält man, wenn man in freetz unter compiler options oder ähnliches den entsprechenden Stern setzt.

Die pwoershell Methode bei der 7590 ist nötig, da es keine alte Standardfirmware gibt, die noch unsignierte Images flasht, wie bspw. die 6.50 bei der 7490.

Ok. dass sollte es sein.
 
  • Like
Reaktionen: Parallix

KunterBunter

IPPF-Urgestein
Mitglied seit
12 Okt 2005
Beiträge
23,399
Punkte für Reaktionen
186
Punkte
63

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
Erklär mal warum. o_O
Keine Ahnung. Genauso wenig kann ich dir erklären, warum "quote" etc.

Das ist ein Praktiker Beitrag über was funktioniert, und was ich wissen musste, damit ich freetz auf die neueren Boxen bekommen habe und keine Abhandlung über eigensinninge Boot Loader.

Wie viele will ich das es einfach funktioniert und nicht lange darüber philosophieren, warum, weshalb und wieso.

Mir ist schon klar, dass es auch einige gibt, für die diese Befehle selbstverständlich sind. Für mich und viele andere sind diese nicht. Ohne eine gute ANleitung wäre ich im Leben nicht darauf gekommen dass dort einzutippen. Auch werde ich diese wohl nicht nochmal brauchen.

Danke den Link habe ich nicht mehr gefunden, da ist alles viel detailierter beschrieben, aber was ich gepostet habe ist der Extrakt aus diesem Post.

Vielleicht könnte noch jemand noch erklären, wie man die memory image per normalen und gängigen ftp client wie flashfxp oder Filezilla hochläd. DIese ftp clients können ja auch passive mode etc. Da muss man nicht command line clients wie ncftp nutzen, die niemand benutzt.

Ich habe bspw. nicht verstanden, was man dem client mitteilen muss, in welche Region er das Image hochladen soll.

Zum glück hat das Powershell script funktioniert, aber ich habe keine Ahnung was das skript genau macht. Irgendwelche scripte ausführen, von denen man nicht weiß wass ie machen ist schon bizzle haarig.
 
Zuletzt bearbeitet:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,526
Punkte für Reaktionen
852
Punkte
113
Das discover Script is nicht wirklich hilfreich
Dann melde mal ich auch noch Widerspruch an und stelle die Frage, wie man das von mir Zitierte verstehen muß.

Wer verstanden hat, wozu das Skript tatsächlich dient, der startet es einfach, bevor er die FRITZ!Box mit Strom versorgt. Läuft das Skript erfolgreich durch (und wurde die FRITZ!Box innerhalb von 30 Sekunden nach dem Start des Skripts gestartet - da ist tatsächlich noch ein Widerspruch in der "Parameterbeschreibung" vorhanden, weil das PS-Skript nur 30 Sekunden wartet, wenn man nichts anderes angibt), steht die Box einfach im FTP-Modus ... warum sollte man da noch irgendetwas "tun"? Das Skript endet ganz von selbst, wenn es denn die FRITZ!Box finden kann.

Und da sind wir dann auch wieder bei der "Fundamentalkritik" ... es mag ja etwas anstrengend sein, längere Beiträge zu lesen (wobei es nun gerade zum Umgang mit EVA auch genug Anleitungen bereits gibt und wer der Ansicht ist, die würden alle fehlen und es bräuchte nun die x-te Wiederholung, der hat vermutlich nur nicht richtig gesucht) - nur machen schlecht nacherzählte Beschreibungen mit zig Schreibfehlern und genug Stellen, wo es auf "Glück gehabt, daß da die Standardwerte aktiv waren" hinausläuft (was aber nicht immer der Fall sein muß), ja als eigener "Erfahrungsbericht" sicherlich Sinn ... aber von einem "HowTo" erwartet man sich dann (zumindest ich kenne das so) schon noch etwas mehr als die Tatsache, daß es nur unter sehr eng umrissenen Umständen (die aber gar nicht so explizit benannt werden) dann auch so funktioniert, wie es beschrieben wurde. Ich gehe hier auch noch davon aus, daß der Autor eigentlich kein deutscher Muttersprachler ist ... damit wäre eine englische Version vielleicht sogar - auch für andere - nützlicher, denn die gibt es tatsächlich nicht in derselben "Ausführlichkeit". EDIT: Nach #4 ist es wohl doch nur schlecht (bzw. extrem "flüchtig", wenn man #1 liest) nacherzählt.

Den Thread zur Anwendung der "eva_tools" ist oben ja verlinkt in #1 ... die Anleitung von @qwertz.asdfgh ist hier auch oft genug erwähnt und wenn die alten Links dahin auch vielleicht nicht länger funktionieren (daher habe ich ja die Redirections unter yourfritz.de gebaut), so kann man diese Anleitung doch durchaus noch finden und in puncto Genauigkeit und Ausführlichkeit schlägt sie die in #1 stehende eben um Längen.

Das muß zwar jeder selbst wissen, wo und wie er sich informiert ... aber für "Nachahmer", die nur diesen Thread finden können oder nur diesen gelesen haben, sollte man noch einmal festhalten, daß es das tatsächlich schon als Beschreibung gibt (auch in unterschiedlichen "fachlichen" Ausprägungen) und auch wenn in #1 ausdrücklich steht, daß das nur als eigene Gedankenstütze dienen soll (dann ist das aber auch ein komischer Ort, um so etwas zu speichern oder finde nur ich das "merkwürdig"?), wird es sicherlich der eine oder andere Leser (zumindest bei eigener "Faulheit") auch wieder als "Anleitung" mißverstehen (wollen) und dann kommen auch hier die "Nachfragen", warum denn nach dieser Anleitung nun dies oder das genau nicht funktioniert, obwohl das vermutlich in den anderen Beschreibungen bereits erläutert ist.

Das geht dann eben schon bei Sätzen wie diesem los:
Das .in-memory Image erhält man, wenn man in freetz unter compiler options oder ähnliches den entsprechenden Stern setzt.
... in einem echten "HowTo" würde da stehen, daß man diese Einstellung unter "Firmware packaging (fwmod) options --->" findet (und nicht bei den Compiler-Option, denn die stehen unter "Toolchain options --->") und eigentlich fehlt da auch noch der Hinweis, daß man diese Option im Freetz-"menuconfig" auch nur dann findet/sieht, wenn man zuvor bei "Level of user competence (xxx) --->" auf "Expert" geschaltet hat.

Das alles sind Stolpersteine, die sich auch aus #1 noch für "Nachahmer" ergeben ... ein "HowTo" ist (nach meinen Begriffen jedenfalls und ich bin mir sicher, daß einige andere diese "Erwartung" teilen) etwas anderes. Wir werden ja sehen, wieviele "Fragen" hier im Nachhinein noch auftauchen werden von den Leuten, die diesen Thread als Anleitung hernehmen ... und wir werden auch sehen, wer diese Fragen dann beantworten wird (oder wer die nach #1 und der "cherry on top" in #4 nach Ansicht des Autoren beantworten soll).

BTW ... daß es nicht wirklich "zielführend" ist, das Erstellen des "in-memory"-Images mit Standard "n" zu versehen und gleichzeitig die Einstellung unter "Experte" zu verstecken, ist ein alter Kritikpunkt meinerseits (gleich als das (durch Änderung des Symbols, auf dem es basiert - wobei die Änderung/Einführung eines speziellen Symbols dafür sinnvoll ist/war, nur der Standardwert ist es nicht wirklich ... zumindest nicht für "beginners") von "y" auf "n" geändert wurde - gerade auch angesichts der Tatsache, daß es immer mehr Modelle gibt, wo die erste Installation zwangsweise über den Bootloader erfolgen muß, weil es gar nicht mehr anders geht) - das hat aber auch nur am Rande damit zu tun, "wie korrekt" die Anleitung in #1 nun ist.
 

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
War nirgendswo als Kriitk gegen irgendjemanden gemeint. Und ganz bestimmt nicht gegen dich. Du hast echt viel Arbeit darin reingesteckt und ohne deine Scripte wäre ich aufgeschmissen, aber verstehen tue ich die Scripte nicht. Du wirst verstehen, dass du mit 12.400 Beiträgen sicherlich mehr in diesem Forum gestöbert und wissen gesammelt hast als jemand der nur über dieses Forum stolpert wenn er mal probleme mit freetz hat. Auch wirstd du tausende male die gleichen Fragen gelesen haben, und deshalb ärgerst du dich so.

Ich kann verstehen, dass du dich ärgerst, wenn ich einfach schreibe, dass dein detect script nicht hilfreich ist. Warum? Weil: Wenn das script erstmal die Box angehalten hat, wird weiterhin der socket belegt, so dass die nächsten Befehle wegen socket fehler nicht ausführbar sind. Ich konnte nicht in den sehr langen Beiträgen herausfinden, wie man dein script dazu bringt, den socket frizumachen. Aber für das ftp.exe habe ich relativ schnell gefunden, dass man einfach ein "bye" eingeben muss, und schon war der ftp server wieder frei. Deshlab findet dein script zwar zuverlässig den ftp server, macht ihm aber dann nicht frei und belegt ihn. Für einen Anfänger wie mich ist dann endstation.

Mir ist schon klar, dass mein "How to" zu wenig ist, um alle Fragen abschließend zu klären, aber für mich waren diese Punkte die fehlenden Bausteine um zu wissen, wie ich freetz auf die neuen Boxen bekomme.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,526
Punkte für Reaktionen
852
Punkte
113
Ich verstehe das zugegenenermaßen nicht, was Du mit:
wie man dein script dazu bringt, den socket frizumachen.
meinst ... wenn das Skript (wir reden hier doch von "EVA-Discovery.ps1", oder?) die Box findet, endet es auch - und zwar nachdem es seinerseits ein Login in den FTP-Server der FRITZ!Box gemacht hat und sich auch ordentlich mit "QUIT" (das ist das, was ein "bye" am Client am Ende zum Server sendet) wieder verabschiedete. Das ist u.a. deshalb notwendig, weil sich verschiedene Revisionen des Bootloaders (quer durch alle Modelle) auch sehr unterschiedlich verhalten, wenn man die Verbindung zum FTP-Server einfach wieder beendet, ohne sich zuvor ordentlich anzumelden.

Wenn Du tatsächlich die aktuellen Versionen der "Windows Powershell" benutzt, dann handelt es sich beim "Hängenbleiben" des Skripts (anders kann ich es mir nicht erklären, daß Du etwas von einem "belegten Socket" schreibst, wenn Du nicht zuvor schon eine Instanz mit "Ctrl-C" beendet haben solltest, wobei es tatsächlich mal passieren kann, daß der "listen"-Aufruf nicht sauber terminiert ... aber auch das ist mit einem Neustart des PS-Host dann sofort wieder erledigt) um ein neues Phänomen, das bisher noch nicht berichtet wurde.

==========================================================================================

Das mit dem "ärgern" ist gar nicht mal sooo falsch ... aber auch nicht darüber, daß Du das überhaupt geschrieben hast (die damit verbundene Arbeit erkenne ich absolut und ohne Abstriche an, auch wenn ich bei meiner Einschätzung zur "Gründlichkeit" (schon bei der Beachtung der Regeln der deutschen Sprache in #1) bleibe) - ich hätte das nur nicht gleich als "HowTo" deklariert, weil es eben andere dann zu leicht als "Anleitung zum Nachmachen" ansehen könn(t)en, vollkommen unabhängig davon, was Du selbst dazu in #1 schreibst.

Ich habe z.B. durchaus meine Gründe, warum ich selbst eigentlich keine "HowTo"-Beiträge verfasse (wenn mir doch mal einer durchgerutscht sein sollte, weiß ich das tatsächlich nicht mehr), sondern das immer als "Info" verkaufe.
 

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
Man würde die besser finden, wenn die STicky wären, aber mich wundert, dass bspw. der wirklich gute Post vom qwertz nur noch im Internet archiv zu finden ist, und die ganzen Verlinkungsversuche die durch die Forumsoftware zu nichtegmacht werden sind ein thema für sich. Es gitb sicherlich gute Post hier, aber die zu finden ist eine qual.

Ich verstehe das zugegenenermaßen nicht, was Du mit:

meinst ... wenn das Skript (wir reden hier doch von "EVA-Discovery.ps1", oder?) die Box findet, endet es auch - und zwar nachdem es seinerseits ein Login in den FTP-Server der FRITZ!Box gemacht hat und sich auch ordentlich mit "QUIT" (das ist das, was ein "bye" am Client am Ende zum Server sendet) wieder verabschiedete. Das ist u.a. deshalb notwendig, weil sich verschiedene Revisionen des Bootloaders (quer durch alle Modelle) auch sehr unterschiedlich verhalten, wenn man die Verbindung zum FTP-Server einfach wieder beendet, ohne sich zuvor ordentlich anzumelden.

Bei mir hat das script zwar die Box gefunden und hat dann die powershell eingabe wieder freigegebn, aber wenn ich dann weitere Befehle eingegeben habe, bekam ich immer Socket error. Die Verbindung war blockiert, und ich musste alles wieder von Vorne machen und den bootloader manuell per ftp anhalten. Ich habe dass so verstanden, dass ein "bye" etwas anderes ist als ein "quit". Bei einem bye belbt der ftp server aktiv und wartet auf befehle, bei einem verliert man die mühsam gefundene Verbindung zum ftp server wieder. Jedenfalls musste da ein "bye" eingtippt werden, warum auch immer.
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
11,868
Punkte für Reaktionen
253
Punkte
83
Moinsen


Genauso wenig kann ich dir erklären, warum "quote"
Hab dafür auch ne lange Weile gebraucht, zu kapieren.
QUOTE führt ein Kommando aus dem Befehlssatz auf den entfernten FTP Server aus.
Guck mal...

Die Hilfe ( help ) einmal ohne und einmal mit 'quote'
Code:
Microsoft Windows [Version 10.0.18363.535]
(c) 2019 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\a>ftp 192.168.178.1
Verbindung mit 192.168.178.1 wurde hergestellt.
220 FRITZ!Box7560 FTP server ready.
530 Please login with USER and PASS.
Benutzer (192.168.178.1:(none)): anonymous
331 Password required for anonymous.
Kennwort:
230 User anonymous logged in.
ftp> help
Befehle können abgekürzt werden. Befehle sind:

!               delete          literal         prompt          send
?               debug           ls              put             status
append          dir             mdelete         pwd             trace
ascii           disconnect      mdir            quit            type
bell            get             mget            quote           user
binary          glob            mkdir           recv            verbose
bye             hash            mls             remotehelp
cd              help            mput            rename
close           lcd             open            rmdir
ftp> quote help
214- The following commands are recognized (* =>'s unimplemented).
   USER    PASV    MLFL*   ALLO    XCWD    NOOP    XPWD    EPRT
   PASS    TYPE    MAIL*   REST    LIST    MKD     CDUP    FEAT
   ACCT*   STRU    MSND*   RNFR    NLST    XMKD    XCUP    OPTS
   SMNT*   MODE    MSOM*   RNTO    SITE    RMD     STOU    AUTH
   REIN*   RETR    MSAM*   ABOR    SYST    XRMD    SIZE    PBSZ
   QUIT    STOR    MRSQ*   DELE    STAT    RRMD    MDTM    PROT
   PORT    APPE    MRCP*   CWD     HELP    PWD     EPSV
214 Direct comments to [email protected]
ftp>
( Nein - Nicht ADAM2/EVA - Das ist der normale FRITZ!Box FTP Server ;) )


Kritikpunkt von mir :cool:
Vor einer Änderung mit SETENV immer mit GETENV nachgucken ob/was drinne steht und aufschreiben/merken.
quote GETENV firmware_version
quote SETENV firmware_version avm

...und nach der Änderung nochmal nachgucken...
quote GETENV firmware_version
...bye
 
Zuletzt bearbeitet:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,526
Punkte für Reaktionen
852
Punkte
113
bekam ich immer Socket error.
Das ist dann aber eher ein Problem Deines Systems ... bei mir klappt das einwandfrei (und bei manch anderem eben auch, denn das ist der erste Bericht in diesem Punkt, den ich dazu lese bzw. bei den anderen gab es dann immer eine logische Erklärung):
Code:
PS C:\Users\PeH\Desktop\EVA-Tools> .\EVA-Discover.ps1 -requested_address 192.168.168.192 -Debug -Verbose
VERBOSE: Sending discovery packet (1) ...
VERBOSE: Sending discovery packet (2) ...
VERBOSE: Sending discovery packet (3) ...
VERBOSE: Sending discovery packet (4) ...
VERBOSE: Sending discovery packet (5) ...
VERBOSE: Sending discovery packet (6) ...
VERBOSE: Sending discovery packet (7) ...
VERBOSE: Sending discovery packet (8) ...
VERBOSE: Sending discovery packet (9) ...
VERBOSE: Sending discovery packet (10) ...
VERBOSE: Sending discovery packet (11) ...
VERBOSE: Sending discovery packet (12) ...
VERBOSE: Sending discovery packet (13) ...
VERBOSE: Sending discovery packet (14) ...
VERBOSE: Sending discovery packet (15) ...
VERBOSE: Sending discovery packet (16) ...
VERBOSE: Sending discovery packet (17) ...
VERBOSE: Sending discovery packet (18) ...
VERBOSE: Sending discovery packet (19) ...
VERBOSE: Sending discovery packet (20) ...
VERBOSE: Sending discovery packet (21) ...
VERBOSE: Sending discovery packet (22) ...
VERBOSE: Sending discovery packet (23) ...
VERBOSE: Sending discovery packet (24) ...
VERBOSE: Sending discovery packet (25) ...
VERBOSE: Sending discovery packet (26) ...
VERBOSE: Sending discovery packet (27) ...
VERBOSE: Sending discovery packet (28) ...
DEBUG: Received UDP packet from 192.168.168.192:5035 ...
VERBOSE: Trying to connect to the FTP port to hold up the device in bootloader ...
EVA_IP=192.168.168.192
True
PS C:\Users\PeH\Desktop\EVA-Tools> .\EVA-FTP-Client.ps1 -Debug -Verbose -Address 192.168.168.192 -ScriptBlock { RebootSystem }
DEBUG: Response:
220 ADAM2 FTP Server ready

================
DEBUG: Sent
USER adam2
================
DEBUG: Response:
331 Password required for adam2

================
DEBUG: Sent
PASS adam2
================
DEBUG: Response:
230 User adam2 successfully logged in

================
DEBUG: Sent
SYST
================
DEBUG: Response:
215 AVM EVA Version 1.3229 0x0 0x46409

================
DEBUG: Sent
QUIT
================
DEBUG: Response:
221 Thank you for using the FTP service on ADAM2
221 Goodbye.

================
Exception calling "Invoke" with "0" argument(s): "The term 'RebootSystem' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the
path is correct and try again."
At C:\Users\PeH\Desktop\EVA-Tools\EVA-FTP-Client.ps1:638 char:21
+                     $ScriptBlock.Invoke()
+                     ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\PeH\Desktop\EVA-Tools> .\EVA-FTP-Client.ps1 -Debug -Verbose -Address 192.168.168.192 -ScriptBlock { RebootTheDevice }
DEBUG: Response:
220 ADAM2 FTP Server ready

================
DEBUG: Sent
USER adam2
================
DEBUG: Response:
331 Password required for adam2

================
DEBUG: Sent
PASS adam2
================
DEBUG: Response:
230 User adam2 successfully logged in

================
DEBUG: Sent
SYST
================
DEBUG: Response:
215 AVM EVA Version 1.3229 0x0 0x46409

================
DEBUG: Sent
REBOOT
================
False
PS C:\Users\PeH\Desktop\EVA-Tools>
Der erste Aufruf von "EVA-FTP-Client.ps1" mit dem falschen "ScriptBlock"-Parameter ist Absicht ... einfach um zu zeigen, daß da auch ein "ganz normaler FTP-Dialog" mehrfach nacheinander möglich ist, solange man den vorhergehenden sauber beendet hat. Erst beim "REBOOT" startet die Box dann neu und die bis dahin vorgenommenen Änderungen an den Bootloader-Einstellungen werden wieder verworfen.

=========================================================================

Auch die Frage, wohin nun das Skript das Image in der Box lädt, ist in anderen Beschreibungen ja behandelt ... aber "in Kurzform" kann ich das gerne noch einmal zusammenfasssen, damit man auch "weiß", was das Skript da so anstellt.

Zuerst wird die Speichergröße ermittelt und aus dieser (ggf. bei einigen Modellen auch noch einmal künstlich auf 128 MB begrenzt, was mit der Architektur des Kernels zusammenhängt) die höchste Adresse ermittelt. Bei MIPS-Boxen hat eine solche Speicheradresse aus "KSEG1" immer "10" in den höchsten zwei Bit der Speicheradresse stehen (architekturbedingt, die Feinheiten kann man in der Speicherverwaltung für MIPS-Prozessoren nachlesen) und daraus ergibt sich eine "Basisadresse" von 0x80000000 bei 32 Bit-Adressierung. Dazu wird die Speichergröße addiert, das ergibt die Endeadresse des Images im Speicher (0x88000000 bei 128 MB RAM, 0x90000000 bei 256 MB, 0xA0000000 (bei 512 MB) wird auch bei den GRX-Boxen mit 512 MB nicht genutzt, weil da oben dann der "bootcore"-Teil des Kernels landet und das Image überschrieben würde).

Von dieser höchsten Adresse wird jetzt die Größe des Images substrahiert, das ergibt die Startadresse des Images im Speicher. Diese beiden Adressen werden dann auch beim "STOR"-Kommando angegeben (später aber erst), mit dem das Image in den Speicher geschrieben wird. Damit das System jetzt beim Start das Image im Speicher nicht gleich wieder überschreibt, wird der verfügbare Platz im RAM (als "memsize" im Environment zu finden) jetzt um die Größe des Images verringert - damit bleibt das Image im Speicher erst einmal unangetastet, wenn der Kernel startet.

Dem muß man nun nur noch mitteilen, daß er nicht aus dem Flash gestartet wurde, sondern aus dem RAM ... das erledigt der Zusatz "mtdram1=<start>,<end>" in "kernel_args_tmp" (das wird beim nächsten Start vom Bootloader auch gleich wieder gelöscht). Daraus leitet der Filesystem-Parser im Kernel (der stammt in diesem Falle dann eben von AVM und interpretiert den "mtdram1"-Parameter) die passenden MTD-Partitionen ab für den Kernel und das Dateisystem ... später kann dann das laufende System darauf zugreifen und den Inhalt dieser Partitionen im RAM einfach in den Flash-Speicher übertragen.

Nach einem "STOR"-Kommando ins RAM der Box versucht der Bootloader, den Kernel an der Adresse zu finden, die bei "mtdram1" als Anfangsadresse angegeben wurde. Ist der vorhanden und kann vom Bootloader entpackt und gestartet werden, gibt es eine positive Quittung für den FTP-Client, ansonsten eine negative (i.d.R. 553), und die Box startet mit dem Kernel aus dem RAM.
 

NDiIPP

Aktives Mitglied
Mitglied seit
13 Apr 2017
Beiträge
2,500
Punkte für Reaktionen
416
Punkte
83
Genauso wenig kann ich dir erklären, warum "quote" etc.
Damit der FTP-Client den Befehl nicht selbst verarbeitet (wenn man einen FTP-Client für den Zugriff auf den Bootloader verwendet).


... und keine Abhandlung über eigensinninge Boot Loader.
Das hat nichts mit eigensinnigen Bootloadern zu tun. Der Befehl "debug bin" ist in diesem Zusammenhang schlicht überflüssig/nutzlos. Das könntest du also aus deinem HowTo entfernen.

Bei dieser Gelegenheit gibt es von mir auch gleich noch weitere Verbesserungsvorschläge für dein HowTo:
Das ist in diesem Fall (nach dem "UNSETENV provider") ebenfalls nicht notwendig. Hier ginge auch ein "bye" oder "quit" anstatt "reboot", damit startet die Box nicht neu sondern es wird nur die Verbindung zum Bootloader beendet. Der Bootloader steht dann aber weiterhin für Verbindungen zur Verfügung. Das AVM Recovery-Tool kann dann die Box finden, ohne dass man die Stromverbindung erneut trennen muss und auch ohne auf das "Timing" achten zumüssen. Macht es also eher etwas einfacher. Zudem man so auch gleich die Gefahr umgeht, dass neuere Bootloader-Versionen die Variable nach einem Reboot ggf. gleich wieder anlegen.

1. O2 Branding ist auch unter der Variable "provider" hinterlegt, so dass Stock Recoveries nicht funktionieren.
Das O2-Branding ist nicht in der Variable "provider" hinterlegt. Diese Variable dient nur dem Schutz des "Provider-Additive", damit dieses nicht durch das Recovery-Tool von AVM entfernt wird. Durch das entfernen dieser Variable wird dementsprechend auch noch nicht das Provider-Additive entfernt, das geschieht eben erst beim nachträglichen Einsatz des Recovery-Tool (was erst durch entfernen dieser Variable seine Arbeit aufnimmt).

Die pwoershell Methode bei der 7590 ist nötig, da es keine alte Standardfirmware gibt, die noch unsignierte Images flasht, wie bspw. die 6.50 bei der 7490.
Da ist so nicht richtig. Die Powershell-Methode ist ein möglicher Weg, aber eben nicht (zwingend) notwendig. Gerade wenn man sich mit Freetz eine Firmware baut, kann man auf die Powershell-Methode verzichten, da Freetz bereits entsprechende Tools zum flashen des (ggf. unsignierten) Freetz-Images beiliegen.
 

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
Da ist so nicht richtig. Die Powershell-Methode ist ein möglicher Weg, aber eben nicht (zwingend) notwendig. Gerade wenn man sich mit Freetz eine Firmware baut, kann man auf die Powershell-Methode verzichten, da Freetz bereits entsprechende Tools zum flashen des (ggf. unsignierten) Freetz-Images beiliegen.
Ist das die Option "signieren" im freetz menu? Oder welche andere Möglichkeiten meinst du zum flashen unsignierter images?

Ich dachte das signieren wäre nicht so einfach, daher diese ganzen umständlichen tricks.
 

NDiIPP

Aktives Mitglied
Mitglied seit
13 Apr 2017
Beiträge
2,500
Punkte für Reaktionen
416
Punkte
83
Ist das die Option "signieren" im freetz menu?
Nein.

Oder welche andere Möglichkeiten meinst du zum flashen unsignierter images?
Für freetz ist das in der in #2 verlinkten Anleitung beschrieben. Freetz-ng bringt ein angepasstes "push_firmware" mit.

Ich dachte das signieren wäre nicht so einfach,
Das signieren (mit einem eigenen Schlüssel) ist nicht sonderlich schwer.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,526
Punkte für Reaktionen
852
Punkte
113
Ihr schreibt aneinander vorbei ... hier: https://freetz.github.io/wiki/help/howtos/development/sign_image.html ist das erläutert.

Das erste eigene Image MUSS über den Bootloader installiert werden (die ganzen Dummheiten mit einem Downgrade ignoriere ich absichtlich bei dieser Feststellung) und danach kann man - wenn man die Signatur im ersten eigenen Image aktiviert hat(te) - auch über das AVM-GUI installieren. Fertig.
 

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
OK verstehe. Da ich wenn einmal freetz auf der Box ist ohnehin nur über freetz flashe, macht das signieren gar keinen Sinn. man mus einmal über EVA to Memory flashen, ob man zu erst nur die signatur pusht, oder gleich die ganze firmware. macht merh sinn die ganze Firmware zu pushen.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,526
Punkte für Reaktionen
852
Punkte
113
ohnehin nur über freetz flashe, macht das signieren gar keinen Sinn.
Das ist zwar so immer noch nicht ganz korrekt ... aber ich bin es inzwischen auch leid, darüber zu diskutieren.

Der Installationsprozess in Freetz läuft jedenfalls - wenn auch nur in Nuancen - anders ab als bei AVM und wenn es von AVM-Seite hier Änderungen gibt (und das war erst ab 07.0x wieder mal der Fall), dann kann/wird der Freetz-Vorgang auf die Nase fallen, während AVM das beim eigenen Installationsvorgang eben bereits berücksichtigt (https://www.ip-phone-forum.de/threads/openvpn-server-bridge-auf-7560-ipclient-fritz-os-7-01-freetz15014.302100/post-2328568 - unter dem letzten (gefaketen) Ruler).

Benutzt man hier den "Freetz way", ist man also immer darauf angewiesen, daß den auch jemand angepaßt hat und/oder aktuell hält, wenn AVM hier ändert (und wer von Freetz wollte AVM daran hindern). Auch heute noch kannst Du ja einfach mal probieren, bei Freetz die Option "Downgrade" zu aktivieren bei einer solchen Installation - wenn ich nichts Wesentliches verpaßt habe, wirst Du dabei scheitern.

Wobei das Downgrade an sich über den AVM-Weg auch nicht funktioniert, aber es geht hier ja "ums Prinzip" ("ich brauche/mache ohnehin nur dies und das") und da reicht eben bereits ein Gegenbeispiel aus, um die "Abhängigkeit" von AVM-Änderungen zu beweisen - was hier mit der "Freetz-Option für ein Downgrade" erbracht wäre.

Wenn man sich (wirklich) informiert, bevor man solche Behauptungen aufstellt, erntet man auch weniger Widerspruch bzw. dann haben es diejenigen, die einem widersprechen wollen, deutlich schwerer mit ihren Begründungen.

Auf die anderen Vorteile, die sich aus dem eigenen Schlüssel in der laufenden Firmware ergeben, gehe ich mal erst gar nicht weiter ein ... das wird dann wieder "zu komplex" oder "zu lang".
 

R0cket

Mitglied
Mitglied seit
20 Sep 2009
Beiträge
342
Punkte für Reaktionen
1
Punkte
18
OK. wusste ich nicht. Werde dann wohl künftig siignieren.

Habe ich das richtig verstanden, dass die signatur automatisch auf die Box geschrieben wird, wenn ich eine signierte freetz memory.image datei über deine EVA-to-Memory Methode flashe?

Dann habe ich bereits alles richtig gemacht. Muss nur noch daran denken, die signature files zu sichern. ;-)
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,526
Punkte für Reaktionen
852
Punkte
113
Die Signatur ist Bestandteil der "image"-Datei, sowohl bei AVM als auch (bei Benutzung der Signaturmöglichkeit) bei Freetz und steht als "signature" im TAR-File.

Um die Signatur zu verifizieren (mit AVM-"Bordmitteln", wie es das AVM-GUI macht/machen muß), braucht es den passenden öffentlichen Schlüssel und der wird (wenn man "Signieren" ausgewählt hat im Freetz-Menü beim Build) automatisch in das erstellte Image übernommen - somit ist er dort vorhanden, wenn man beim nächsten Mal aus dem dann laufenden Freetz-System heraus das AVM-Update anwerfen will (beim "Freetz way" interessiert die Signatur ja nicht).

Die Signatur wird also immer mit dem Schlüssel aus dem bereits installierten (und laufenden) System geprüft - ansonsten wäre das tatsächlich Mumpitz.
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,653
Punkte für Reaktionen
5
Punkte
38
@R0cket Deine Behauptung aus #17 war schon richtig, obwohl @PeterPawn es ungerne hört, aber natürlich mit den Einschränkungen, die er dir nachfolgend erklärt hat. Es macht nicht viel Aufwand, diese Signierung in FREETZ zu aktivieren, also tu es bitte. Flashen kannst du trotzdem noch über FREETZ, wie du es bis jetzt getan hast. Aktuell geht es noch. Das, was PeterPawn meint, betrifft evtl. Labor-Firmwares und ganz neue Firmwares, wenn die frisch von AVM kommen und FREETZ darauf noch nicht angepasst ist. Soll heißen: Es ist momentan eher als Warnung für die Zukunft anzusehen. Downgrade ist sowieso ein Thema für sich und wird von AVM doch auch nicht unterstützt. Der Vorteil von FREETZ-Update: Du bekommst da wenigstens einige Log-Meldungen, bevor du dich dazu entscheidest, Reboot der Box durchzuführen.
Speziell zu dem Fall, wenn du mehrere Boxen unterschiedlicher Familie hast (z.B. 7490 und 7590) oder einfach mehrere Images für deine Familie/Verwandte/Bekannte erstellst (soll manchmal vorkommen). Komm in dem Falle bitte nicht auf die Idee, unterschiedliche Schlüssel dafür zu verwenden! Zumindest ging es mir so und hat bei mir für ein Paar Stunden und Verwirrungen gesorgt. Die Schlüssel werden pro Benutzer und nicht im FREETZ-Verzeichnis abgespeichert. Dies führt dazu, dass wenn du unter dem gleichen Benutzer mehrere Verzeichnisse für unterschiedliche Boxen/Konfigurationen verwendest, es immer noch dieselben Schlüssel dafür benutzt werden. Wenn dein Passwort dann nicht passt, wird entweder das Signieren abgebrochen oder du kannst den Schlüssel überschreiben, kriegst aber im anderen Fall wieder dasselbe Problem.
Es mag ja sein, dass ich es nur falsch angewendet habe oder etwas dabei nicht verstanden habe, ich wollte dir nur deine kostbare Zeit ersparen, wenn du vor ähnlichen Problemen stehst.
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
234,033
Beiträge
2,041,863
Mitglieder
353,347
Neuestes Mitglied
menten-gmbh