7590: Branding ändern, Freetz flashen

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
Nach Posten in 2 verschiedenen Threads mach ich nun einen eigenen auf (Moderator bitte evtl entsprechend verschieben?).

Ausgangssituation: FB 7590, A-CH Version (internationale Version), Branding "avme"
Ziel: Freetz für deutsche FW Version 6.92 zu flashen, Branding dann avm.

Ich krieg das Branding leider nicht geändert mit EVA-FTP-Client.ps1 aus yourfritz.

Code:
PS F:\> .\EVA-Discover.ps1
EVA_IP=192.168.178.1
True
PS F:\>
PS F:\> .\EVA-FTP-Client.ps1 -ScriptBlock { GetEnvironmentValue firmware_version }
avme
PS F:\> .\EVA-FTP-Client.ps1 -ScriptBlock { GetEnvironmentValue linux_fs_start }
0
PS F:\> .\EVA-FTP-Client.ps1 -ScriptBlock { SetEnvironmentValue firmware_version avm }
True
PS F:\>
PS F:\> .\EVA-FTP-Client.ps1 -ScriptBlock { GetEnvironmentValue firmware_version }
avm
[Reboot durch Netzstecker ziehen, also auch durch Skriptbefehl bei anderem Versuch.]

Code:
PS F:\> .\EVA-Discover.ps1
EVA_IP=192.168.178.1
True
PS F:\> .\EVA-FTP-Client.ps1 -ScriptBlock { GetEnvironmentValue firmware_version }
avme
Kann das Branding bei dieser Box gar nicht geändert werden?
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,091
Punkte für Reaktionen
997
Punkte
113
Das hat Dir doch @qwertz.asdfgh gestern(!) schon geschrieben (ich meine nicht #2 hier oben) ... und im angepinnten Thread zum Ändern des Brandings kannst Du es auch noch einmal nachlesen, dort ist das spätestens seit August 2017 und auf den letzten zehn Seiten ebenfalls immer wieder ein Thema.

Warum braucht das nun noch einmal einen eigenen Thread? Wird es irgendwelche neuen Erkenntnisse oder Vorschläge zur Lösung geben?

Einen (kleinen) Einfluß hat die verwendete Firmware sogar dann, wenn man nicht einfach in der "rc.conf" das Branding der Box ignoriert und einen festen Wert einsetzt ... am Ende entscheidet ja der verwendete Kernel, ob er das "Environment" nun aus den Daten aus "chosen" im FDT zusammenbaut oder auf die Daten aus dem TFFS zurückgreift. Man könnte also auch noch mit einem geänderten Kernel auf den Wert aus dem TFFS setzen (er sollte dort drinstehen, muß ich glatt noch einmal testen) und dann interessiert der FDT an dieser Stelle nicht mehr.
 

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
Sorry, ich hab das einfach übersehen bzw. überlesen bei zu vielen offenen Tabs und Info zusammensuchen.
Habe zwar seit Jahren eine FB, aber damals war das alles leichter ... (7360)

Kann ich zumindest die 06.83 oder die aktuelle Labor (06.98 IIRC) nach der Anleitung zu telnet verhelfen?
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,091
Punkte für Reaktionen
997
Punkte
113
Du solltest Dich ein wenig "settlen" und genauer darlegen, was Du eigentlich willst und nicht jedes (teilweise) Scheitern gleich zum Anlaß nehmen, den bisher verfolgten Weg total abzuschreiben und nach anderen zu suchen ... es gibt auch "workarounds". Die findet man aber nur dann, wenn man die Ursache des Problems analysiert und dann gezielt versucht, dieser entgegenzuwirken.

Man kann problemlos auch eine deutsche Freetz-Version auf einer internationalen 7590 betreiben, man muß nur eine einzige Änderung (eben das "Festtackern" auf "avm" in der "rc.conf") selbst vornehmen ... das kann man problemlos in eine eigene "fwmod_custom" packen, wenn man will.
 

qwertz.asdfgh

IPPF-Promi
Mitglied seit
18 Feb 2011
Beiträge
4,464
Punkte für Reaktionen
61
Punkte
48
@rolex0815
Wenn du sowieso ein deutsches Freetz-Image aufspielen möchtest ist es doch kein Problem auch die bereits angesprochene rc.conf im Freetz-Image entsprechend abzuändern sodass das Freetz-Image die Brandingvariable ignoriert, somit brauchst du doch die Brandingvariable im Environment gar nicht erst ändern...

Edit: war zu langsam... ;)
 

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
Danke für Eure Hilfe soweit!

Für jemanden, der nicht sooo tief in der Materie drinnen ist wie ihr ist das Ganze schon etwas viel, auch wenn die Lernkurve steil ist.

Mir ist leider das Ändern/Anpassen der rc.conf nicht klar, was exakt zu tun ist. Das Ändern der entsprechenden Variable im freetz Ordern unter ".../build/original/filesystem/..." auf
Code:
export CONFIG_OEM_DEFAULT="avme"
scheint es nicht zu sein --> bootloop. Das setting wird aber in den ...modified... Ordner übertragen und sollte meinem Verständnis nach daher auch im freetz image sein.
Wenns irgendwie geht, soll es ohne fwmod_custom ablaufen - will sowenig wie möglich an der freetz config ändern *pray* und das (fwmod_custom) ist bisher nie verwendet worden von mir.

Was ist mit "festtackern" gemeint? Mir ist das entsprechende Setting nicht klar und bin auch nicht der Lage es zu finden.

Und warum auf "avm" - wenn doch vom Bootloader "avme" kommt - was ja nicht mehr geändert werden kann.
Das verstehe ich nicht.

linux_fs_start stand auf "0" - durch recover und FW Update auf die aktuelle Labor ist die Variable nun auch belegt.
Konnte es mit dem PS Skript auf die "1" ändern, flash ging dann diesmal ohne Fehler durch aber siehe oben bootloop.

Wenn das freetz image erfolgreich in die "1" geschrieben wird, kann man theoretisch mit einer Änderung der Variablen zwischen beiden FW Versionen hin- und herschalten? Ich fand's nirgends komplett explizit geschrieben und reines Ausprobieren ist mir zu heikel, wenn ich nicht genau weiß was passiert.



Noch eine Anmerkung zu den eva_tools, wenn man Linux in einer VM verwendet.
Durchs NAT kann man die FB zwar erreichen - aber ein Flash geht nicht, ich bin ja in unterschiedlichen Netzwerken.

Code:
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.8.128
Das meinte ich mit Netzwerk entsprechend konfigurieren, so ohne weiteres scheint es aus einer VM nicht zu gehen.

Will hier nichts postulieren oder kritisieren, rein Erfahrungswerte bzw. Beobachtungen bekannt geben, denn ich denke es kann mehreren so gehen.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,091
Punkte für Reaktionen
997
Punkte
113
Ich fange mal hinten an ... welche Netzwerk-Konfiguration eine VM verwendet (Brigde zum Host, "host-only" oder gar mit dem Host als Router - also NAT für die VM), kann man in aller Regel einstellen. Hat also eher mit der "Basiskonfiguration" für eine VM zu tun als mit den Skript-Dateien ... die müssen halt in demselben Netz ausgeführt werden, in dem die FRITZ!Box auch per UDP-Broadcast zu finden ist. Wenn AVM für die Verwendung des Recovery-Programms die direkte Kabelverbindung zur Box fordert, ist das in einer falsch konfigurierten VM ja genausowenig möglich.

Wenn die deutsche Firmware halt die Einstellung "avm" erwartet (und nur diese unterstützt) und der Bootloader aber "avme" liefert ... was kann man da noch machen? Man sorgt einfach dafür, daß die Firmware eben nicht den Wert vom Bootloader übernimmt - das ist mit "Festtackern" gemeint. Das steht aber auch in anderen Threads, wo es genau um dieses Thema geht - hast Du denn einen davon gefunden/gelesen und wenn ja, welchen?

Eine Änderung an der "rc.conf" kann man selbstverständlich auch von Hand ausführen ... für jemanden, der an der Freetz-Konfiguration nichts ändern will, ist das aber eine sehr, sehr mutige Forderung bzw. ein mutiges Vorhaben. Immerhin muß diese Änderung ja irgendwie zwischen dem Auspacken der originalen AVM-Firmware und dem Einpacken innerhalb der Freetz-Toolchain erfolgen - wie Du das auf anderem Wege bewältigen willst, erschließt sich mir nicht. Weißt Du denn, was die "fwmod_custom" bewirkt bzw. was man in der machen kann? Wenn nicht, hätte ich einen "Lesetipp": http://freetz.org/wiki/help/howtos/development/repack_fw

Das hat aber mit "im Stoff stehen" auch nur wenig zu tun ... wenn man da ändern will, muß man sich eben informieren und der Normalfall (in meinen Augen) wäre es, daß man nach entsprechenden Hinweisen dann selbst sucht.

Ein Beispiel dafür wäre die Suche nach allen Vorkommen von "firmware_version" in der "rc.conf":
Code:
vidar:/home/FritzBox/FB7580/153.06.92/etc/init.d # grep -C 10 firmware_version rc.conf
export CONFIG_VERSION_MAJOR="153"
export CONFIG_ROMSIZE="0-nand_size=512MB"
export CONFIG_RAMSIZE="512"
export CONFIG_RELEASE="1"
export CONFIG_BETA_RELEASE="0"
export CONFIG_BUILDTYPE="1"
export CONFIG_BUILDNUMBER="47571"
##########################################################################################
## OEM Ermitteln
##########################################################################################
OEM_tmp=`cat $CONFIG_ENVIRONMENT_PATH/firmware_version`
if [ -z "${OEM_tmp}" ] ; then
OEM_tmp=$CONFIG_OEM_DEFAULT
fi
OEM=${OEM_tmp%,*}
OEM_DEFAULT_INDEX=${OEM_tmp#*,}
if [ "$OEM_DEFAULT_INDEX" = "$OEM" ] ; then
OEM_DEFAULT_INDEX=""
fi
export OEM_DEFAULT_INDEX
export OEM
(hier mal am Beispiel der 7580), denn die Überlegung oder Schlußfolgerung, daß dieser Wert ja dann irgendwo ausgelesen werden muß, wenn die Box ihn verwenden will, ist nun nicht sooo abwegig und wenig naheliegend, daß man dafür tiefergehende Kenntnisse brauchen würde - da reicht etwas Nachdenken, Suchen und Lesen.

Wenn man dann die Fundstelle nicht versteht, muß man sie eben Zeile für Zeile mithilfe des Internets untersuchen und interpretieren ... dann findet man auch sehr schnell mindestens eine sinnvolle Möglichkeit, wie man das "Festtackern" realisieren kann. Dazu braucht es (als eine Möglichkeit) nur eine Änderung der Zeile "export OEM" in "export OEM=avm", weil dann eben nicht der aus dem Environment gelesene Wert als "OEM" exportiert wird, sondern der fest vorgegebene Wert "avm" - am Ende genau das, was man hier braucht.

Jetzt frage aber bitte nicht im nächsten Schritt, wie Du das nun in der "fwmod_custom" machen sollst ... wenn Du das tatsächlich nicht selbst herausfinden kannst (erst recht mit der o.a. "Quelle" im Freetz-Wiki), dann würde ich von einer Modifikation der Firmware generell abraten. Aber vielleicht fühlt sich ja jemand anderes berufen, das auch haarklein zu erklären ... ich bin nicht dieser "Jemand" (ist auch nicht böse gemeint, aber schon das Sprichwort weiß: "Ohne Fleiß kein Preis." und eine Lernkurve ist auch nur dann überhaupt vorhanden (egal ob steil oder nicht), wenn man sich selbst kümmert).
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,091
Punkte für Reaktionen
997
Punkte
113
Der Screenshot macht mich dann gleich wieder darauf aufmerksam, daß Freetz auch noch der irrigen Meinung ist, man könne bei den GRX-Modellen das Branding einfach ändern (rechts neben der Versionsnummer im Screenshot).

Für den Bootmanager hatte ich letztens mal eine Version eingecheckt (aber auf GRX und Puma noch nicht bis zum Ende getestet), bei der auf den GRX-Boxen kein Wechsel des Brandings mehr angeboten wird und die m.W. alles, was derzeit an NAND-Modellen mit Dual-Boot unterwegs ist (7360/6360 mal ausgenommen, die haben NOR-Flash), korrekt behandeln sollte (die LTE-Boxen und die 7581/7582 konnte ich nicht testen/kontrollieren).
 

qwertz.asdfgh

IPPF-Promi
Mitglied seit
18 Feb 2011
Beiträge
4,464
Punkte für Reaktionen
61
Punkte
48
Für den Bootmanager hatte ich letztens mal eine Version eingecheckt (aber auf GRX und Puma noch nicht bis zum Ende getestet), bei der auf den GRX-Boxen kein Wechsel des Brandings mehr angeboten wird [...]
Naja, bei den GRX5-Modellen mit einer Bootloader-Version 1.3082 (betrifft ältere Modelle der 7560 und 7580) lässt sich weiterhin das Branding auf die altbekannte Weise ändern, nur für die Modelle mit einer Bootloader-Version >=1.32xx geht das nicht mehr (trifft offensichtlich auf alle 7590er zu da diese erst später auf dem Markt erschienen ist).

Und bei der 7490 mit neuerem Herstellungsdatum (Bootloader-Version >=1.31xx) trifft es ebenfalls zu, dass einige Bootloader-Variablen (u.a. eben firmware_version) nicht mehr auf die altbekannte Weise geändert werden können.

Im Anhang dazu mal eine kleine Tabelle (s.h. letzte Spalte auf Seite 1).

Kurzum, ich würde es nicht davon abhängig machen ob es sich um ein VR9 oder GRX5 Modell handelt sondern abhängig von der Bootloader-Vers., also z.B. ab Ver. >=1.3100 sollte dein Script ein Ändern des Branding nicht mehr zulassen, unabhängig davon ob VR9- oder GRX5-Modell.
 

Anhänge

Zuletzt bearbeitet:

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
Bei der Branding Auswahl hab ich auch geschmunzelt. ;-)

Wenn man - so wie ich - halb in der Luft gehangen hat, hilft der Code beim Punkt "OEM ermitteln" in der rc.conf nichts - man (ich) sieht's nicht und sucht nach "avm" oder "avme", um das anzupassen.

Die Änderung der rc.conf hab ich im Ordner
Code:
/home/thomas/freetz-devel/build/original/filesystem/etc/init.d
gemacht, das File ist da ja schon entpackt und wandert dann in den
Code:
/home/thomas/freetz-devel/build/modified/filesystem/etc/init.d
Ordner. Das war der Gedanke.

Sonst funktioniert alles wie bei meiner 7360v2 soweit ich sagen kann, es geht halt alles viel schneller.
Die 7590 ist im IP-Client Modus nun und auch dropbear SSH Zugang - alles paletti.

Spannend finde ich die verhältnismäßig alte Kernelversion im Vergleich zu einer gefreezten 7360:

Code:
uname -a
Linux fritz.box 3.10.73 #1 SMP Thu Jan 19 17:55:01 CET 2017 mips GNU/Linux


 uname -a
Linux FritzBox7590 3.10.12 #3 SMP Fri Oct 27 15:21:24 CEST 2017 mips GNU/Linux
Der Patchlevel ist ja um einiges höher bei der alten.

Jedenfalls VIELEN Dank für Deine (Eure) Unterstützung und Geduld!
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,091
Punkte für Reaktionen
997
Punkte
113
@qwertz.asdfgh:
Sind das Deine eigenen Erfahrungswerte (Dir traue ich zu, daß Du die Änderungen immer korrekt vornimmst und damit hat die Feststellung "geht nicht" dann auch entsprechendes Gewicht, weil sie von Dir dann sicherlich auf mehreren Geräten beobachtet und validiert wurde) oder basiert das "nur" auf Berichten Dritter?

Klar, ich kann mir auch vorstellen, daß bei einer 7490 das Branding in die Liste der "unveränderlichen" Werte aufgenommen wurde (ähnliches Verhalten zeigten ja schon einige Boxen bei "maca" und ein paar weiteren Variablen, wobei ich gerade keine "Liste" im Kopf habe und auch noch nicht nach etwas gesucht habe, was diesen "Unterschied" markieren würde) und sich nicht mehr ändern läßt.

Aber der Zusammenhang zum FDT aus dem Bootloader (wo das Environment im Zweig "chosen" enthalten ist und auch vom Kernel von dort kopiert/benutzt und nicht länger aus dem TFFS-Image gelesen wird - zumindest in "env_init()" in "kernel/env.c" und in der Folge bei jedem Aufruf vom "prom_getentv()") bei den GRX-Boxen existiert zumindest unbestreitbar.

Nun muß man sich vielleicht erst einmal hinsetzen und ermitteln, wie das Environment für den Zugriff über "/proc/sys/urlader" (also über den TFFS-Driver, der ja für diesen procfs-Zweig verantwortlich ist - siehe "drivers/char/tffs/tffs_proc.c") wirklich zusammengesucht wird bei den GRX-Boxen.

Der Teil der Firmware, der als Shell-Skript realisiert ist, greift ja über diesen Weg auf die Daten zu ... es gibt jedoch in der "libboxlib.so" noch einige Funktionen (boxenv_*), die aber vermutlich über "urlader_{get,set}env" in der "libavmcsock.so" auf das Environment zugreifen und die verwendet wohl (dem Augenschein nach jedenfalls) ebenfalls die Datei "/proc/sys/urlader/environment" für ihre Zugriffe.

Am Ende dürfte es also entscheidend sein, woher diese Zugriffsfunktion im TFFS-Proc-Driver (avm_urlader_setenv_sysctl()) ihre Daten beim Lesezugriff bezieht ... kostet halt einiges an Zeit, das nachzuverfolgen.

Angesichts der oben von mir angedeuteten Zusammenhänge könnte es ja genauso gut sein, daß gar kein direkter Zusammenhang zum Bootloader besteht oder daß das tatsächlich für alle Bootloader gilt, deren Versionsnummer größer als ein Schwellwert ist. Ebenso ist es aber auch möglich, daß es nur an FRITZ!OS-Versionen und deren Auswertung der Variablen liegt - mithin daran, woher die ihre Informationen beziehen. Oder am Ende an einer Kombination von beiden ... warum das bei der 7560 so problemlos klappen soll, will mir dann nämlich auch nicht richtig einleuchten.

Bis auf die Halbierung beim RAM und nur 1/4 des NAND-Flashs unterscheidet die sich ja auch nicht so sehr von den anderen beiden Modellen und m.W. hat noch niemand wirklich geprüft, ob nicht auch bei dieser genau derselbe "bootcore"-Kernel oder vielleicht sogar derselbe FRITZ!OS-Kernel verwendet wird, wie bei einer (versionsgleichen) 7580 - die Hardware-Unterschiede finden jedenfalls problemlos im FDT Platz und damit wäre es meiner Ansicht sogar denkbar, daß auch da derselbe Kernel zum Einsatz kommt. In Deiner Liste steht ja nur die 7560 mit einem Bootloader vor 1.31xx drin - vielleicht gilt das für die 7560 mit einem neueren Bootloader aber wieder genauso.

Das muß man sehr genau testen - am besten mit einem eigenen Kernel, der auch nicht sofort wieder irgendwas ins TFFS zurückschreibt, damit man wirklich den Zustand von FDT und TFFS bei der Übergabe der Steuerung an den Linux-Kernel festhalten kann.

Bis dahin bleibe ich erst einmal bei meiner Differenzierung "VR9 - geht" und "GRX - geht nicht" (mal sehen, wie sich das beim Puma6/7 dann entwickelt, die 6591 wird ja vermutlich einen neueren Bootloader haben) - wenn man die passenden Stellen im Kernel gefunden hat, kann man ja immer noch entscheiden, ob man das an irgendwelchen anderen Merkmalen besser festmachen könnte. Wobei das "geht nicht" eben auch immer darauf basiert, daß der Kernel nicht einfach den Wert aus dem TFFS nimmt und den FDT (an dieser Stelle) ignoriert ... notfalls kann man das sogar mit einem eigenen Kernel (wenn man den vielleicht ohnehin austauschen möchte, weil ihm z.B. das "overlayfs" fehlt beim VR9-Modell) wieder korrigieren, was AVM da "verzapft". Wobei das nur beim Unterschied deutsche und internationale Version überhaupt interessant ist ... bei "1und1" vs. "avm" würde ich mir auch keinen Kopf weiter machen, weil die halt beide in der deutschen Firmware enthalten sind.
 

qwertz.asdfgh

IPPF-Promi
Mitglied seit
18 Feb 2011
Beiträge
4,464
Punkte für Reaktionen
61
Punkte
48
Ich hatte selbst schon eine 7490 von 1und1 (Produktionsdatum Februar 2017, SubRev 6, Bootloader-Ver. 1.3179) in der Hand womit ich das aus eigener Erfahrung bestätigen kann, dass das auch bei neueren 7490ern nicht mehr funktioniert.

Mit den GRX5-Modellen habe ich selbst allerdings keine eigenen Erfahrungen gesammelt welche noch den alten Bootloader (1.3081) haben. Allerdings gibt es glaubwürdige Berichte (u.a. auch von @HabNeFritzbox), dass das Ändern der Variable firmware_version dauerhaft erhalten blieb (in dem Fall von 1und1 auf avm bei seiner 7580). Vielleicht meldet er sich in diesem Zusammenhang noch einmal ob dies auch mit neueren Firmware-Versionen erhalten geblieben ist (falls diese eine andere Methode zum Auswerten dieser Variable verwenden).

Edit:
Oder auch @gismotro mit einer 7560:
https://www.ip-phone-forum.de/posts/2212163
 
Zuletzt bearbeitet:

HabNeFritzbox

IPPF-Urgestein
Mitglied seit
12 Dez 2017
Beiträge
15,849
Punkte für Reaktionen
297
Punkte
83
Wie im Branding Thema steht geht es nur Bootloader bis zu ner bestimmten Version, danach nicht mehr.

Die FW Version ist da nebensächlich.
 

HabNeFritzbox

IPPF-Urgestein
Mitglied seit
12 Dez 2017
Beiträge
15,849
Punkte für Reaktionen
297
Punkte
83
Zuletzt bearbeitet:

Igi2003

Mitglied
Mitglied seit
10 Feb 2005
Beiträge
495
Punkte für Reaktionen
8
Punkte
18
Ich kann das bestätigen, Fritzbox 7490, HW-SubRev. 7 Bootloader 1.3179, keine änderung des brandings per ADAM/EVA/Environment mehr möglich.

Mfg Igi
 

HabNeFritzbox

IPPF-Urgestein
Mitglied seit
12 Dez 2017
Beiträge
15,849
Punkte für Reaktionen
297
Punkte
83
Mit 1.3082 geht es noch, ob es noch Versionen gibt zwischen 1.3083 und 1.3178 kann ich dir nicht sagen, dazu bisher nichts gelesen.

Problem hat qwertz ja schon in #2 genannt.