Ebenso Branding umändern, das geht bei 7590 gar nicht so einfach.
Wieso sollte sich das Branding mit einer anderen Firmware ändern?
Nur weil die Firmware für diese Box beide Brandings enthält (avm + avme), ändert sich das Branding der Box, auf der man die Firmware installiert, ja noch nicht. Oder was verstehe ich hier falsch?
Die Variable
OEM
wird in der
rc.conf
jedenfalls immer noch so gesetzt, wie man es aus anderen Modellen kennt. Wenn die Box also "avm" als Branding hat, landet das auch so in der laufenden Firmware.
Korrekt wäre also die Feststellung, daß bei der 6890 keine Unterscheidung
am Dateiinhalt für die "avm"- und die "avme"-Version erfolgt (das ist bei den anderen Modellen i.d.R. anders, weil da die Dateien für anderen "country"- und "language"-Einstellungen in der deutschen Version fehlen) - das heißt aber auch noch nicht, daß nicht dann doch wieder anhand von "avm vs. avme" einige Funktionen in einer deutschen 7590 auch mit der 6890-Firmware nicht verfügbar sind.
Diese Unterscheidung zwischen "avm" und "avme" geht auch bereits in der
rc.conf
los, auch wenn da bei der 6890 schon bei "avm"-Branding ein paar Optionen (der üblicherweise der internationalen Version vorbehaltenen Auswahl) automatisch verfügbar sind, für die man ansonsten erst die Firmware ändern müßte - z.B. die Annex-Auswahl dank
CONFIG_DSL_MULTI_ANNEX="y"
:
Code:
401 ##########################################################################################
402 ## OEM Ermitteln
403 ##########################################################################################
404 OEM_tmp=`cat $CONFIG_ENVIRONMENT_PATH/firmware_version`
405 if [ -z "${OEM_tmp}" ] ; then
406 OEM_tmp=$CONFIG_OEM_DEFAULT
407 fi
408 OEM=${OEM_tmp%,*}
409 OEM_DEFAULT_INDEX=${OEM_tmp#*,}
410 if [ "$OEM_DEFAULT_INDEX" = "$OEM" ] ; then
411 OEM_DEFAULT_INDEX=""
412 fi
413 export OEM_DEFAULT_INDEX
414 export OEM
415 ##########################################################################################
416 ## OEM spezifische Konfiguration
417 ##########################################################################################
418 if [ "$OEM" = "avm" ]; then
419 export CONFIG_DSL_MULTI_ANNEX="y"
420 export CONFIG_MULTI_COUNTRY="y"
421 export CONFIG_MULTI_LANGUAGE="y"
422 export CONFIG_PROV_DEFAULT="n"
423 fi
424 if [ "$OEM" = "avm" ]; then
425 export CONFIG_LAND_LISTE_OEM="049 99 0234 0255 0256 0264 027 030 031 032 033 034 0351 0352 0353 0357 0358 036 0371 0372 0382 0385 0386 0387 0389 039 041 0420 0421 043 044 045 046 047 048 054 061 064 066 0972"
426 fi
427 if [ "$OEM" = "avm" ]; then
428 export CONFIG_SPRACH_LISTE_OEM="de en es it fr pl nl"
429 fi
430 if [ "$OEM" = "avme" ]; then
431 export CONFIG_BOX_FEEDBACK="y"
432 export CONFIG_ERR_FEEDBACK="y"
433 export CONFIG_SPEECH_FEEDBACK="n"
434 fi
Ich weiß allerdings auch nicht genau, ob es tatsächlich 6890 mit unterschiedlichen Brandings gibt ... die deutsche hat ja wohl die Artikelnummer 2000 2817 und die internationale soll die 2000 2818 haben. Aber ob jetzt das eine Modell "avm" und das andere "avme" verwendet, können wohl nur deren Besitzer ermitteln - für die 6490 soll es ja z.B. gar keine originalen Geräte mit "avme" geben, wenn ich das letztens richtig verstanden habe in irgendeinem anderen Thread.
-------------------------------------------------------------------------------------------------------------------------
War mir gar nicht bekannt das es INT Versionen gibt wo es diese Kanäle nicht inkl gibt
Das habe ich auch gar nicht behauptet ... ich FRAGTE (mich, aber implizit auch alle anderen), warum man (mit der Begründung "WLAN") dann eine 6890-Firmware auf eine 7590 braten muß und da nicht einfach die internationale Version nimmt.
Das mit dem:
das geht bei 7590 gar nicht so einfach.
ist ja eher Ansichtssache (außer man weiß es halt nicht anders zu lösen) und ich würde jedem Nachahmer anraten, erst mal diese Option (Ändern des Brandings der Firmware auf "avme" - und zwar "fixed" für diese Version) zu probieren, weil die Ähnlichkeiten zwischen einer 7590 und einer 7590 intl. dann doch deutlich größer sind, als (von beiden) zur 6890 - immer unter der Annahme, daß ich noch aufgeklärt werde, was die 6890-Firmware am Branding der 7590 ändert.
Dieselbe Frage (warum Du nicht einfach die internationale Version installierst) hat Dir
@NDiIPP in einem anderen Thread (sogar praktisch zeitgleich mit mir in diesem Thread, wenn man den Zeitpunkt der Veröffentlichung der Beiträge betrachtet) ja auch schon gestellt ... auch da hast Du ja behauptet (oder zumindest bis dahin wohl gedacht), es wäre gar nicht möglich, die internationale Version auf einer deutschen 7590 zu verwenden.
Wobei mit der "einfachen Lösung" eben nicht alle Fundstellen von
firmware_version
erwischt werden (zumindest nicht, wenn man das nicht bei jedem Start des FRITZ!OS in
/proc/sys/urlader/environment
einträgt, wo es für die Dauer der Uptime dann auch erhalten bleibt (afaik), selbst wenn es beim nächsten Start wieder aus dem Bootloader-Code neu gesetzt wird), weil einige Libs nicht über
OEM
zugreifen bzw. zumindest noch den Text
firmware_version
(dann vermutlich aber eben auch zum Zugriff auf diese Einstellung) enthalten.
Aber es bleibt bei mir halt die Frage von oben, wieso nur durch die Installation der 6890-Firmware jetzt das Branding einer Box "änderbar" wird (oder auch nur geändert wird) und eine Erklärung dafür erschließt sich mir bisher nicht ... vielleicht kannst Du das ja noch einmal genauer erklären.
Beiträge zusammengefügt - HabNeFritzbox
@prisrak1:
Mir ist gerade erst so richtig auf- und eingefallen, daß Du ja über eine 7590 sprichst ... die hat aber den Bootloader selbst auch im NAND-Flash und der hat zumindest das Lesen von NAND gelernt und wohl auch das Schreiben, denn die Einstellungen schreibt der ja nach "mtdnand" und er könnte wohl auch ein Update des Urladers selbst ausführen.
Damit vergiß einfach alles, was ich in #8 schrieb ...
Da müßte man also den NAND-Flash-Chip im PCB neu programmieren und dafür kenne ich keine Clips. Das ist bei 48 Pins am TSOP-Gehäuse (mit einem Pinabstand von ~0,5 mm) auch nicht so einfach ... das wird also ohne Löten vermutlich gar nichts, wenn Dir nicht jemand beim JTAG-Interface unter die Arme greifen kann (ich kann es nicht, hatte mal irgendwo hier etwas zu den Problemen geschrieben, vor denen man (zumindest ich) da steht).
Meines Wissens gibt es auch keine weiteren Infos, wie da das "defective block management" für den Bootloader in NAND gehandhabt wird. Ich würde (aufgrund der Struktur des Bootloaders, der normalerweise zweimal in der Partition enthalten ist) darauf tippen, daß da gar keine Rücksicht auf defekte Blöcke genommen wird, solange eine der beiden Kopien ausführbar ist. Zumindest sprechen auch einige Fehlermeldungen (die ich vom Bootloader der 7580 kenne) dafür ... bei der 7580 (und dann auch bei der 7590) gibt es z.B. die folgenden Nachrichten im Bootloader:
Code:
Detected broken Urlader @ 0x%08x, starting anyway 0x%08x != 0x%08x
All EVA Bootloaders broken, booting not possible
Das spricht ja (a) für eine Kontrolle der Gültigkeit von Blöcken , (b) für eine "Ausweichstrategie" (Prinzip Hoffnung - "starting anyway") und (c) für mehr als eine Kopie (die man natürlich auch im Hex-Dump sieht), wenn da "All ... broken" sein können und auch die Vorbereitung:
Code:
Error: Refusing to update! Urlader is finalized and the first EVA Urlader is broken, probably because of Bad Blocks.
Therefore we cannot downgrade to one EVA Urlader
zeigt, daß man sich Gedanken gemacht hat, daß man so einen Urlader-Code besser nicht aktualisiert, wenn der erste defekt ist und die Box ohnehin schon aus dem zweiten startet.
Neuere Boxen haben wohl alle NAND-Flash mit Hardware-ECC ... meine 7580 hat z.B. Toshiba-Chips - TC58NVG2S3E - lt. "dmesg":
Code:
NAND device: Manufacturer ID: 0x98, Chip ID: 0xdc (Toshiba NAND 512MiB 3,3V 8-bit), 512MiB, page size: 4096, OOB size: 128
(->
http://www.linux-mtd.infradead.org/nand-data/nanddata.html hat eine Tabelle)
, damit sollten (Bit-)Fehler in gewissen Grenzen nicht nur erkannt, sondern auch korrigiert werden können. Meine Box hatte auch von Beginn an (das war 3 Tage nach Lieferung) schon vier defekte Blöcke, die aber glücklicherweise alle weiter hinten lagen, wo schon der UBI-Layer verantwortlich ist.
Daher jedenfalls auch meine Annahme, daß der Bootloader schon gefälligst sequentiell im Flash vorliegen muß in fehlerfreien Blöcken, weil der Loader selbst keine alternativen Blöcke irgendwo an anderen Stellen suchen kann ... ggf. macht das auch schon der On-Chip-Controller des GRX5, der mit irgendeiner Bootstrap-Routine ja den allerersten NAND-Inhalt erst mal ins RAM bringen muß, damit der von dort laufen kann. So etwas wie eine XiP-Schnittstelle für SPI (eXecute in Place - die Daten werden in den Adressraum des Prozessors eingeblendet, wie bei "richtigem" NOR-Flash) gibt es m.W. für NAND-Flash nicht bzw. der MX30LF kennt so etwas m.W. ohnehin auch nicht.
Es gibt noch eine weitere Zeile im Loader, die mich vermuten läßt, daß die Installation des "endgültigen" Bootloaders am Ende vielleicht auch über ein Booten von einer seriellen Schnittstelle erfolgt ... die Nachricht:
Code:
Booting from UART. Only Urlader-Update supported!!!
klingt für mich jedenfalls so.
Auch wenn das "Booting from UART" erstens vermutlich einen funktionierenden Bootloader als Vorgänger voraussetzt (da steht ja auch "Urlader-
Update") und zweitens könnte das auch gut ein anderer Anschluß auf dem PCB sein und nicht unbedingt der mit der seriellen Console.
Wobei die zwei nicht durchgebohrten Kontaktreihen auf der Rückseite wohl eher für den DECT-Chip sind ... zumindest gehören sie "räumlich" eher dazu, wenn es überhaupt RS232-Schnittstellen sind - die Frage des Pegels bliebe auch noch und selbst dann wäre immer noch das Protokoll für die Datenübertragung unbekannt - am wahrscheinlichsten erscheinen mir irgendwelche Synchronisationszeichen direkt beim Start der Schnittstelle, ähnlich XModem oder so.
---------------------------------------------------------------------------------------------------------------------------------------------
Bei den GRX-Boxen ist auch die Frage, woher man nun die Dateien für den Bootloader kriegt, tatsächlich eher unproblematisch (zumindest sollte sie es in der Theorie sein) ... AVM linkt den offensichtlich statisch gegen die uClibc (der Loader hat ja auch noch keine Chance, irgendwo in einem Filesystem nach Libraries zu suchen - ein Bootloader mit "shared libraries" ist fast per Definition Blödsinn und eher kein Bootloader mehr, sondern ein "Mini-OS") und diese wiederum steht unter LGPL.
In der Folge
müßte AVM eigentlich die Binärdateien (Object Format) des Bootloaders herausgeben (nach Klausel 6a/6b der LGPL 2.1 - und auch die uClibc-ng steht unter derselben Lizenz, es ist also egal, welche Version das wirklich ist), damit man diese selbst gegen eine aktualisierte Version der uClibc linken und danach weiter verwenden kann - ob man dann dieselbe nimmt wie AVM oder nicht, spielt auch keine Geige in lizenzrechtlicher Hinsicht.
Wobei AVM durchaus auch die Quelltexte rausgeben darf ... denn in der LPGL steht ausdrücklich:
as object code and/or source code
.
Andererseits enthalten bei den GRX-Boxen die Firmware-Images auch gerne mal ein (ebenfalls statisch gg. uClibc oder ein Derivat gelinktes) Binary zum Aktualisieren des Urladers (als
./var/urladerupdate
) ... mit etwas Spielerei (notfalls in einer QEMU-Instanz) kriegt man von dem bestimmt auch den Bootloader in ein emuliertes MTD geschrieben (sofern man ihm den vorherigen in der Partition vorsetzt).