Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Anleitung Modifikation der FritzBox 6591 Firmware ohne Freetz

Status
Für weitere Antworten geschlossen.

prisrak

Moderator
Teammitglied
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

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
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:
Code:
make rebuild
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
  • 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\>
es gab nie Probleme mit dem nativen Ubuntu/Debian-FTP-Client oder eva_tools.
  • 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
Installieren des Images (mit ssh/telnet/Konsolenzugriff)
  • 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:
cd /var/media/ftp; tar xf fb6591_***.tar
  • Installieren Sie das Image:
/sbin/burnuimg /var/media/ftp/var/firmware-update.uimg || echo FAILED
  • Führen Sie nach erfolgreicher Installation den folgenden Befehl aus, um zu wechseln der Bootbank und Neustart:
/bin/aicmd pumaglued uimg switchandreboot

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
Methode 2 - öffentlicher Schlüssel über Telnet

  • 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
Methode 3 - öffentlicher Schlüssel über Bootloader (6591/6660/6690, ffritz

  • 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
Dieses Image wurde nach Anleitung fon fesc hergestellt. Sämtliche Infos gibts im Unterverzeichnis "ffritz"
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:
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

  1. Mit dem EVA FTP-Server der Box verbinden (siehe "Update via EVA", Schritt 2).
  2. Folgende Befehle ausführen:
    Code:
    quote SETENV DMC RTL=Yquote REBOOT
    oder unter Windows (PowerShell):
    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:

  1. Backup der Flash-Partitionen vor der Änderung erstellen.
  2. Flash-Chip entlöten.
  3. Den Chip mit einem Flash-Programmiergerät neu beschreiben.
  4. Chip wieder einlöten.
Oder: Eine Retail-Box kaufen, bevor eine Provider-Box zerstört wird.



5. Programmierung eines Firmware-Images über die EFI-Shell (Recovery)

Hinweis: Momentan gibt es keine USB-Storage-Unterstützung.

EFI-Shell starten:
Code:
map
Sollte eine Ausgabe ähnlich wie diese erscheinen:
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
Falls erfolgreich, erscheint:
Code:
Congrats! Looks like everything went as planned! Your flash has been updated! Have a good day!

Quelle:

Es ist eine Übersetzte Zusammenfassung der Anleitung von fesc2000. Übersetzungsfehler vorbehalten.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben