- Mitglied seit
- 10 Mai 2006
- Beiträge
- 15,285
- Punkte für Reaktionen
- 1,755
- Punkte
- 113
Bisher gab/gibt es die Informationen zu meinem "Boot-Manager" eher verstreut über verschiedene Threads, weil das irgendwann mal "organisch gewachsen" ist, was (iirc) im "modfs"-Thread begann und dann nach und nach auch Einzug in Freetz hielt.
Dieser ominöse "Boot-Manager" (künftig kürze ich den als "BM" ab und lasse die Anführungszeichen auch weg) wird von einem Installationsskript in die AVM-Dateien eingebaut und bietet im AVM-Interface unter dem Punkt "System -> Sicherung -> Neustart" dann seine Dienste an. Diese bestehen einerseits in der Anzeige der in der FRITZ!Box installierten Systeme und andererseits im Angebot, zwischen diesen System-Versionen umzuschalten und dabei ggf. auch noch (sofern möglich) das "Branding" der Box entsprechend anzupassen.
Am Ende sieht das dann z.B. so aus:
Der BM ist eigentlich ein Bestandteil meines YourFritz-Projekts, daher ist er auch in dessen GitHub-Repository zu finden und zwar hier: https://github.com/PeterPawn/YourFritz/tree/master/bootmanager - die richtige Datei wäre dann allerdings
==========================================================================
Kurze Erklärung zu den Grundlagen
Viele der neueren FRITZ!Box-Modelle haben zwei voneinander unabhängige Partition-Sets in ihrem Flash-Speicher und speichern bei einem Update die neue Version in den gerade nicht genutzten Partitionen, auf die nach der erfolgreichen Installation dann umgeschaltet wird, so daß diese beim nächsten Start des Gerätes verwendet werden. Die Auswahl der zu nutzenden Partitionen erfolgt dabei anhand einer Variablen im Bootloader der Box, welche über das laufende System oder auch über den FTP-Server im Bootloader (der sich "EVA" nennt) auf einen passenden Wert gesetzt werden kann. Üblich sind hier die Werte "0" und "1", wobei ein fehlender Wert - bei passenden Modellen - mit "0" gleichzusetzen ist ... ach so, diese Variable hört auf den Namen "linux_fs_start".
Der BM macht jetzt nichts anderes, als sich die beiden installierten Systeme genauer anzusehen und die dort enthaltenen Angaben zu extrahieren und für die Anzeige aufzubereiten. Wünscht der Benutzer beim Neustart des Gerätes die Auswahl des anderen Systems (oder auch ein anderes "Branding" bei den Modellen, wo eine (dauerhafte) Änderung möglich ist), wird vor dem Neustart noch der neue Wert von "linux_fs_start" (und "firmware_version", falls das Branding änderbar ist) gesetzt.
Da es mittlerweile bei vielen FRITZ!Boxen nicht mehr möglich ist, den Wert für "firmware_version" dauerhaft zu ändern (der wird vom Bootloader beim nächsten Start dann wieder auf die "Geburtsdaten" der Box gesetzt), berücksichtigt das Skript auch ein Überschreiben des Wertes für "OEM" (da landet "firmware_version" am Ende im Environment des laufenden Linux-Systems) mit einem festen Wert in jener Datei, wo vom Hersteller normalerweise "firmware_version" ausgelesen würde. Sollte sich durch eine solche Änderung eine (Pseudo-)"Umschaltung" des Brandings ergeben beim Wechsel der Partitionen, wird das entsprechend mit angezeigt.
Da es mitunter auch ganz nützlich sein kann zu erfahren, womit eigentlich die Firmware in einem Partition-Set "behandelt" wurde (und irgendeine Änderung muß sie erfahren haben, sonst wäre der BM ja in keinem der beiden Sets enthalten), wird auch noch anhand von "Marker-Dateien" versucht zu erkennen, welches Projekt das vorhandene Dateisystem-Image erstellt hat. Hier werden z.Zt. nur YourFritz, Freetz und "modfs" unterstützt, für Freetz-NG konnte keine Einigung auf eine passende Marker-Datei (die eine Identifikation anhand des Namens und nicht anhand ihres Inhalts erlaubt) gefunden werden. Ähnliches gilt für die Erkennung eines festen "Brandings" in Freetz - hier wird eine abweichende Form der "Fixierung" verwendet, für deren Erkennung noch ein zusätzlicher Patch erforderlich ist, der Bestandteil von Freetz ist. Daher kann/wird aber die originale Datei in Freetz nicht 1:1 funktionieren ... und Änderungen meinerseits an dieser Datei benötigen immer erst noch eine Aktualisierung des Stands für das YourFritz-Repository im Freetz-Projekt, bevor Freetz-Benutzer mit der jeweils aktuellen Version rechnen können in ihrem neuen Image.
==========================================================================
Unterstützte Modelle
Derzeit ist der BM in der Lage, FRITZ!Box-Modelle mit SoCs aus der VR9-Reihe von Lantiq, der GRX5-Reihe von Lantiq/Intel, der IPQ40x9-Reihe von Qualcomm/Atheros und der Puma6-Reihe von Intel zu analysieren und die möglichen Umschaltungen auf diesen Geräten vorzunehmen. Das deckt schon eine ganze Reihe an FRITZ!Box-Modellen ab, von der 74xx-Reihe (die fast immer auf VR9 basiert) über die 7560/7580/7590 mit den GRX5-Chipsets und die 7520/7530 (IPQ4019), bis hin zu den DOCSIS3-Modellen (6490, 6590, 6430) mit dem Puma6-Chipset.
==========================================================================
Dieser Thread soll künftig als "zentrale Anlaufstelle" für Fragen rund um den BM dienen, damit diese nicht länger über viele andere Threads verstreut und damit nur schwer in einer passenden zeitlichen Abfolge zu lesen sind. Es wird allerdings meinerseits auch kein Kopieren alter Beiträge zum BM in diesen Thread geben - wer irgendwo einen Beitrag findet, von dem er der Meinung ist, der sollte von hier aus verlinkt werden, kann mir ja gerne hier eine entsprechende Nachricht hinterlassen ... ich würde das dann in die folgende Liste einpflegen (zumindest wenn ich mit der Ansicht, daß es dabei um den BM geht, übereinstimme).
==========================================================================
Links zu anderen Beiträgen/Threads, die sich mit dem Thema "Boot-Manager" befasst haben:
(ohne jeden Anspruch auf Vollständigkeit, erst mal nur als Beispiele)
Dieser ominöse "Boot-Manager" (künftig kürze ich den als "BM" ab und lasse die Anführungszeichen auch weg) wird von einem Installationsskript in die AVM-Dateien eingebaut und bietet im AVM-Interface unter dem Punkt "System -> Sicherung -> Neustart" dann seine Dienste an. Diese bestehen einerseits in der Anzeige der in der FRITZ!Box installierten Systeme und andererseits im Angebot, zwischen diesen System-Versionen umzuschalten und dabei ggf. auch noch (sofern möglich) das "Branding" der Box entsprechend anzupassen.
Am Ende sieht das dann z.B. so aus:
Der BM ist eigentlich ein Bestandteil meines YourFritz-Projekts, daher ist er auch in dessen GitHub-Repository zu finden und zwar hier: https://github.com/PeterPawn/YourFritz/tree/master/bootmanager - die richtige Datei wäre dann allerdings
gui_bootmanager
, während bootmanager
ein "älteres Modell" ist, was kein GUI bietet und daher schon längst entsorgt wäre, würde es dort nicht zusätzlich noch eine Sicherung von Einstellungen pro Partition-Set geben.==========================================================================
Kurze Erklärung zu den Grundlagen
Viele der neueren FRITZ!Box-Modelle haben zwei voneinander unabhängige Partition-Sets in ihrem Flash-Speicher und speichern bei einem Update die neue Version in den gerade nicht genutzten Partitionen, auf die nach der erfolgreichen Installation dann umgeschaltet wird, so daß diese beim nächsten Start des Gerätes verwendet werden. Die Auswahl der zu nutzenden Partitionen erfolgt dabei anhand einer Variablen im Bootloader der Box, welche über das laufende System oder auch über den FTP-Server im Bootloader (der sich "EVA" nennt) auf einen passenden Wert gesetzt werden kann. Üblich sind hier die Werte "0" und "1", wobei ein fehlender Wert - bei passenden Modellen - mit "0" gleichzusetzen ist ... ach so, diese Variable hört auf den Namen "linux_fs_start".
Der BM macht jetzt nichts anderes, als sich die beiden installierten Systeme genauer anzusehen und die dort enthaltenen Angaben zu extrahieren und für die Anzeige aufzubereiten. Wünscht der Benutzer beim Neustart des Gerätes die Auswahl des anderen Systems (oder auch ein anderes "Branding" bei den Modellen, wo eine (dauerhafte) Änderung möglich ist), wird vor dem Neustart noch der neue Wert von "linux_fs_start" (und "firmware_version", falls das Branding änderbar ist) gesetzt.
Da es mittlerweile bei vielen FRITZ!Boxen nicht mehr möglich ist, den Wert für "firmware_version" dauerhaft zu ändern (der wird vom Bootloader beim nächsten Start dann wieder auf die "Geburtsdaten" der Box gesetzt), berücksichtigt das Skript auch ein Überschreiben des Wertes für "OEM" (da landet "firmware_version" am Ende im Environment des laufenden Linux-Systems) mit einem festen Wert in jener Datei, wo vom Hersteller normalerweise "firmware_version" ausgelesen würde. Sollte sich durch eine solche Änderung eine (Pseudo-)"Umschaltung" des Brandings ergeben beim Wechsel der Partitionen, wird das entsprechend mit angezeigt.
Da es mitunter auch ganz nützlich sein kann zu erfahren, womit eigentlich die Firmware in einem Partition-Set "behandelt" wurde (und irgendeine Änderung muß sie erfahren haben, sonst wäre der BM ja in keinem der beiden Sets enthalten), wird auch noch anhand von "Marker-Dateien" versucht zu erkennen, welches Projekt das vorhandene Dateisystem-Image erstellt hat. Hier werden z.Zt. nur YourFritz, Freetz und "modfs" unterstützt, für Freetz-NG konnte keine Einigung auf eine passende Marker-Datei (die eine Identifikation anhand des Namens und nicht anhand ihres Inhalts erlaubt) gefunden werden. Ähnliches gilt für die Erkennung eines festen "Brandings" in Freetz - hier wird eine abweichende Form der "Fixierung" verwendet, für deren Erkennung noch ein zusätzlicher Patch erforderlich ist, der Bestandteil von Freetz ist. Daher kann/wird aber die originale Datei in Freetz nicht 1:1 funktionieren ... und Änderungen meinerseits an dieser Datei benötigen immer erst noch eine Aktualisierung des Stands für das YourFritz-Repository im Freetz-Projekt, bevor Freetz-Benutzer mit der jeweils aktuellen Version rechnen können in ihrem neuen Image.
==========================================================================
Unterstützte Modelle
Derzeit ist der BM in der Lage, FRITZ!Box-Modelle mit SoCs aus der VR9-Reihe von Lantiq, der GRX5-Reihe von Lantiq/Intel, der IPQ40x9-Reihe von Qualcomm/Atheros und der Puma6-Reihe von Intel zu analysieren und die möglichen Umschaltungen auf diesen Geräten vorzunehmen. Das deckt schon eine ganze Reihe an FRITZ!Box-Modellen ab, von der 74xx-Reihe (die fast immer auf VR9 basiert) über die 7560/7580/7590 mit den GRX5-Chipsets und die 7520/7530 (IPQ4019), bis hin zu den DOCSIS3-Modellen (6490, 6590, 6430) mit dem Puma6-Chipset.
==========================================================================
Dieser Thread soll künftig als "zentrale Anlaufstelle" für Fragen rund um den BM dienen, damit diese nicht länger über viele andere Threads verstreut und damit nur schwer in einer passenden zeitlichen Abfolge zu lesen sind. Es wird allerdings meinerseits auch kein Kopieren alter Beiträge zum BM in diesen Thread geben - wer irgendwo einen Beitrag findet, von dem er der Meinung ist, der sollte von hier aus verlinkt werden, kann mir ja gerne hier eine entsprechende Nachricht hinterlassen ... ich würde das dann in die folgende Liste einpflegen (zumindest wenn ich mit der Ansicht, daß es dabei um den BM geht, übereinstimme).
==========================================================================
Links zu anderen Beiträgen/Threads, die sich mit dem Thema "Boot-Manager" befasst haben:
(ohne jeden Anspruch auf Vollständigkeit, erst mal nur als Beispiele)
[Info] - modfs - SquashFS-Image (AVM-Firmware) ändern für NAND-basierte FRITZ!Boxen
Herzlichen Dank für die Hilfestellungen: Ich habe mir als erstes Deinen Patchvorschlag vorgenommen ++ sh -x ../../tools/yf/bootmanager/add_to_system_reboot.sh + '[' -z 1und1 ']' + '[' -z . ']' + TargetDir=./filesystem/ + JsFile=usr/www/1und1/system/reboot.js +...
www.ip-phone-forum.de
Mit welchem Befehl bekomme ich die FW Version des inaktiven Systems in einer 7490/7580/7590 raus?
Hat bitte mal einer den richtigen Befehl für das CLI.
www.ip-phone-forum.de
Zuletzt bearbeitet: