- Registriert
- 4. Mai 2010
- Beiträge
- 5.643
- Lösungen
- 28
- Reaktionspunkte
- 16.515
- Punkte
- 413
Anleitung zur Modifikation der FritzBox 6591 Firmware mit ffritz
Erstellen eines Installations-/Update-Firmware-Images
Dies ist das allgemeine Verfahren zum lokalen Erstellen eines Firmware-Images. Falls der Vorgang fehlschlägt, fehlt höchstwahrscheinlich eine erforderliche Abhängigkeit in deiner Linux-Installation. Eine Liste mit benötigten Paketnamen findest du im Abschnitt "Build Host" weiter unten – aber bedenke, dass jedes System unterschiedlich ist.
Alternativ stehen am Ende dieses Abschnitts Online-Dienste zur Verfügung, um das Image zu generieren.
Repository klonen (6591-Branch):
git clone
Falls du die Standardeinstellungen für den Build ändern möchtest (z. B. AVM-Image-URL), kopiere die Datei conf.mk.dfl zu conf.mk und bearbeite sie. Alternativ kannst du auch folgenden Befehl verwenden:
make config
Die gewählte Image-Datei (URL=...) bestimmt, ob die Modifikationen für Puma6-basierte Boxen (6490/6590) oder Puma7 (6591/6660) angewendet werden.
Beachte, dass dabei vorgefertigte Dropbear-Binärdateien verwendet werden, die im Git-Repository hinterlegt sind. Falls du diese Binärdateien neu kompilieren möchtest, verwende:
Anderes Original-Firmware-Image verwenden:
Falls du ein anderes Original-Firmware-Image als Basis nutzen möchtest, wähle die entsprechende URL-Definition in der Datei conf.mk, indem du die gewünschte Zeile auskommentierst. Alternativ kannst du die Image-Datei in das Verzeichnis packages/dl legen und URL=Dateiname setzen.
Online-Dienste zur Erstellung eines Firmware-Images
Falls du das Image nicht lokal erstellen möchtest, kannst du stattdessen den Online-Dienst gitpod.io nutzen. Weitere Informationen findest du unter folgendem Link:
Für jede neue Firmware-Version muss ein gepatchtes Image neu generiert und manuell installiert werden ..."
Probleme / Fehlerbehebung
Erstmalige Verwendung
Nach der ersten Installation muss der ssh-Login eingerichtet werden.
Methode 1 - Passwort
git clone --branch 6591
1. Temporäre Änderung der firmware_version
Im Gegensatz zu anderen FritzBox-Modellen kann die firmware_version nicht direkt im Bootloader geändert werden.
1.1 Erstellen eines Firmware-Images für gebrandete Boxen
Um ein Firmware-Image zu erzeugen, das auf einer gebrandeten Box bootet, indem es die firmware_version ignoriert:
Konfigurationsdatei anpassen:
Dieses Image kann nun auf einer gebrandeten Box installiert werden. Allerdings könnten einige Funktionen (z. B. DVB-C, SIP) nicht funktionieren, sofern DMC nicht ebenfalls geändert wird (siehe Abschnitt 2).
Hinweis:
2. Änderung des „Retail Flags“ (DMC)
Zum Aktivieren fehlender Funktionen muss die DMC-Variable geändert werden.
2.1 Verbindung zum Bootloader herstellen
2.2 Hinweise zu DMC
3. Zugriff auf die EFI-Shell
Nur für erfahrene Nutzer mit serieller Verbindung zur Box!
3.1 Einstieg in die EFI-Shell
3.2 Schritte zur Modifikation der EFI-Shell
Boot-Image entpacken:
Boot-Partition mounten:
Startskript sichern und ersetzen:
Image erneut verpacken:
Image programmieren:
4. Notfallwiederherstellung bei einem "gebrickten" Gerät
Falls die Box nicht mehr funktioniert, gibt es folgende Wiederherstellungsmöglichkeiten:
5. Programmierung eines Firmware-Images über die EFI-Shell (Recovery)
Hinweis: Momentan gibt es keine USB-Storage-Unterstützung.
EFI-Shell starten:
Sollte eine Ausgabe ähnlich wie diese erscheinen:
Firmware-Image in den Speicher laden:
Zum Backup-Boot-Bank wechseln:
Image programmieren:
Neustart ausführen:
Falls erfolgreich, erscheint:
Quelle:
Es ist eine Übersetzte Zusammenfassung der Anleitung von fesc2000. Übersetzungsfehler vorbehalten.
Erstellen eines Installations-/Update-Firmware-Images
Dies ist das allgemeine Verfahren zum lokalen Erstellen eines Firmware-Images. Falls der Vorgang fehlschlägt, fehlt höchstwahrscheinlich eine erforderliche Abhängigkeit in deiner Linux-Installation. Eine Liste mit benötigten Paketnamen findest du im Abschnitt "Build Host" weiter unten – aber bedenke, dass jedes System unterschiedlich ist.
Alternativ stehen am Ende dieses Abschnitts Online-Dienste zur Verfügung, um das Image zu generieren.
Repository klonen (6591-Branch):
git clone
Sie müssen registriert sein, um Links zu sehen.
In das ffritz-Verzeichnis wechseln:
Code:
cd ffritz
Build-Konfiguration anpassen (optional):
Falls du die Standardeinstellungen für den Build ändern möchtest (z. B. AVM-Image-URL), kopiere die Datei conf.mk.dfl zu conf.mk und bearbeite sie. Alternativ kannst du auch folgenden Befehl verwenden:
make config
Die gewählte Image-Datei (URL=...) bestimmt, ob die Modifikationen für Puma6-basierte Boxen (6490/6590) oder Puma7 (6591/6660) angewendet werden.
Firmware-Image erstellen:
Code:
make
Code:
make rebuild
Falls du ein anderes Original-Firmware-Image als Basis nutzen möchtest, wähle die entsprechende URL-Definition in der Datei conf.mk, indem du die gewünschte Zeile auskommentierst. Alternativ kannst du die Image-Datei in das Verzeichnis packages/dl legen und URL=Dateiname setzen.
Online-Dienste zur Erstellung eines Firmware-Images
Falls du das Image nicht lokal erstellen möchtest, kannst du stattdessen den Online-Dienst gitpod.io nutzen. Weitere Informationen findest du unter folgendem Link:
Sie müssen registriert sein, um Links zu sehen.
Für jede neue Firmware-Version muss ein gepatchtes Image neu generiert und manuell installiert werden ..."
Probleme / Fehlerbehebung
- Unter bestimmten Umständen (ich habe noch nicht versucht herauszufinden, wann/warum genau) Bootbank Switch scheint nicht zu funktionieren. Im Allgemeinen ist es auch in Ordnung, auf die ACTIVE-Partition zu schreiben und nicht linux_fs_start ändern.
- Ein bekanntes Problem bei einigen FTP-Clients ist, dass sie während des Flashs manchmal eine Zeitüberschreitung zu verursachen scheinen. Update (z.B. ncftp), insbesondere wenn eine Partition nicht leer ist.
- Einige FTP-Clients unterstützen die Sonderzeichen im Partitionsnamen überhaupt nicht. Einige scheinen einen umgekehrten Schrägstrich vor sich zu stellen: eva_tools.
put part_03_ATOM_ROOTFS.bin mtd\;
put part_02_ATOM_KERNEL.bin mtd\<
put part_09_ARM_ROOTFS.bin mtd\=
put part_08_ARM_KERNEL.bin mtd\>
- Die Antwort auf den Befehl getenv verwirrt die meisten FTP-Clients. Mehrmals die Eingabetaste drücken fehlende Informationen aufdecken könnte, aber gehen Sie nicht davon aus, dass Aktionen (setenv/put) funktionieren oder wirken danach.
Schließen Sie die FTP-Verbindung und starten Sie sie im Zweifelsfall neu. - Empfohlen wird auch ein Wechsel zwischen Ihrem PC und der Box, um zu vermeiden, dass die Verbindung unterbrochen wird, wenn Die Box neu gestartet wird. Und/oder die IP-Adresse Ihres Hosts im Box-Netzwerk (192.168.178) sollte statisch konfiguriert werden, zumindest für die Zeit, in der Sie mit dem Bootloader arbeiten.
- Der ursprüngliche Wert von DMC enthält manchmal ein Suffix nach "RTL=N". Ich weiß nicht, wofür es gut ist. Vielleicht möchten Sie es beibehalten ("RTL = Y, Suffix"), aber ich sehe kein Problem darin, es einfach wegzulassen. In jedem diesem Fall können Sie es zurückändern, wenn Probleme auftrete
- Kopieren Sie das Release-Tar-Image in die Box, z.B. NAS (/var/media/ftp)
- Wenn dies die allererste Installation ist, müssen Sie die Verwendung mit einem seriellen Adapter benutzen, um Shell-Zugriff zu erhalten. Ansonsten loggen Sie sich einfach über ssh ein.
- Extrahieren Sie es:
- Installieren Sie das Image:
- Führen Sie nach erfolgreicher Installation den folgenden Befehl aus, um zu wechseln der Bootbank und Neustart:
Erstmalige Verwendung
Nach der ersten Installation muss der ssh-Login eingerichtet werden.
Methode 1 - Passwort
- Melden Sie sich über die Konsole oder Telnet und das Webkennwort in der Box an. die ersten 10 Minuten nach dem Start.
- Rufen Sie "passwd" auf, um das root-Passwort zu ändern
- Melden Sie sich über die Konsole oder Telnet und das Webkennwort in der Box an. die ersten 10 Minuten nach dem Start.
- Legen Sie Ihre öffentlichen Schlüssel in /.ssh/authorized_keys
- Dieser Befehl gibt einige Befehle aus, die im eva-Bootloader ausgeführt werden sollen, um Ihren öffentlichen SSH-Schlüssel in Bootloader-Parameter BB0 zu kodieren. BB9:
tools/encode_key ~/.ssh/id_rsa.pub - Geben Sie den eva-Bootloader ein (siehe README-6591.md)
- Führen Sie die Befehle "quote SETENV .." aus, wie sie vom encode_key-Skript ausgegeben werden
- Starten Sie die Box neu (Ein- und Ausschalten oder "REBOOT")
- Der codierte Schlüssel wird beim Booten in /.ssh/authorized_keys abgelegt und Sie sollten sich als root-Benutzer über SSH anmelden können.
- Notizen:
- Die bb-Variablen müssen nicht gelöscht werden, nur neue Schlüssel werden hinzugefügt authorized_keys beim Booten.
- Zusätzliche Schlüssel können zu nachfolgenden bb-Variablen hinzugefügt werden, indem ein bb-Index angegeben wird. z.B.:
tools/encode_key ~/.ssh/id_rsa.pub 2
git clone --branch 6591
Sie müssen registriert sein, um Links zu sehen.
`1. Temporäre Änderung der firmware_version
Im Gegensatz zu anderen FritzBox-Modellen kann die firmware_version nicht direkt im Bootloader geändert werden.
1.1 Erstellen eines Firmware-Images für gebrandete Boxen
Um ein Firmware-Image zu erzeugen, das auf einer gebrandeten Box bootet, indem es die firmware_version ignoriert:
Konfigurationsdatei anpassen:
Code:
cp conf.mk.dfl conf.mkecho "OEM_PATCH=y" >> conf.mk
Dieses Image kann nun auf einer gebrandeten Box installiert werden. Allerdings könnten einige Funktionen (z. B. DVB-C, SIP) nicht funktionieren, sofern DMC nicht ebenfalls geändert wird (siehe Abschnitt 2).
Hinweis:
- Für jede neue Firmware-Version muss ein gepatchtes Image neu generiert und manuell installiert werden.
- Automatische Firmware-Updates werden nicht angeboten, solange DMC nicht geändert wird.
- Wird ein Update von AVM über die GUI installiert, kann dies die Box unbrauchbar machen!
2. Änderung des „Retail Flags“ (DMC)
Zum Aktivieren fehlender Funktionen muss die DMC-Variable geändert werden.
2.1 Verbindung zum Bootloader herstellen
- Mit dem EVA FTP-Server der Box verbinden (siehe "Update via EVA", Schritt 2).
- Folgende Befehle ausführen:
Code:
quote SETENV DMC RTL=Yquote REBOOT
Code:.\EVA-FTP-Client.ps1 -ScriptBlock { SetEnvironmentValue DMC RTL=Y }.\EVA-FTP-Client.ps1 -ScriptBlock { RebootTheDevice }
2.2 Hinweise zu DMC
- DMC kann einen Suffix enthalten (RTL=N,suffix). Falls vorhanden, kann er beibehalten oder weggelassen werden.
- Falls Probleme auftreten, kann der Wert jederzeit zurückgesetzt werden.
3. Zugriff auf die EFI-Shell
Nur für erfahrene Nutzer mit serieller Verbindung zur Box!
3.1 Einstieg in die EFI-Shell
- Altes BIOS: Nach der "eva hack ready message" sofort exit eingeben und mehrmals Esc drücken.
- Neues BIOS: Die ATOM_KERNEL-Partition muss neu geflasht werden.
3.2 Schritte zur Modifikation der EFI-Shell
Boot-Image entpacken:
Code:
make -C tools/uimg-tool/uimgtar xf FRITZ.Box_6591_Cable-07.19-80492-Labor.image ./var/firmware-update.uimgtools/uimg-tool/uimg -u -n part ./var/firmware-update.uimg
Boot-Partition mounten:
Code:
sudo sumkdir mntmount -o loop part_02_ATOM_KERNEL.bin mnt
Startskript sichern und ersetzen:
Code:
cp mnt/EFI/BOOT/startup.nsh mnt/EFI/BOOT/startorg.nshecho "mm 0xfed94810 0x00914b49 -w 4" > mnt/EFI/BOOT/startup.nshecho "mm 0xfed94820 0x00914b49 -w 4" >> mnt/EFI/BOOT/startup.nshumount mnt
Image erneut verpacken:
Code:
tools/uimg-tool/uimg -p -n part out.img
Image programmieren:
Code:
aid toggle aid updateupdate -a A -s 0x513A010reset
4. Notfallwiederherstellung bei einem "gebrickten" Gerät
Falls die Box nicht mehr funktioniert, gibt es folgende Wiederherstellungsmöglichkeiten:
- Backup der Flash-Partitionen vor der Änderung erstellen.
- Flash-Chip entlöten.
- Den Chip mit einem Flash-Programmiergerät neu beschreiben.
- Chip wieder einlöten.
5. Programmierung eines Firmware-Images über die EFI-Shell (Recovery)
Hinweis: Momentan gibt es keine USB-Storage-Unterstützung.
EFI-Shell starten:
Code:
map
Code:
FS2: Alias(s):HD36c0b:;BLK22: PciRoot(0x0)/Pci(0x14,0x0)/USB(0x2,0x0)/HD(1,MBR,0x0047BD56,0x40,0x7807C0)
Firmware-Image in den Speicher laden:
Code:
load2mem -f FS2:\firmware-update.uimg
Zum Backup-Boot-Bank wechseln:
Code:
aid toggle aid update
Image programmieren:
Code:
update -a A -s 0x513A010
Neustart ausführen:
Code:
reset
Code:
Congrats! Looks like everything went as planned! Your flash has been updated! Have a good day!
Quelle:
Sie müssen registriert sein, um Links zu sehen.
Es ist eine Übersetzte Zusammenfassung der Anleitung von fesc2000. Übersetzungsfehler vorbehalten.