.titleBar { margin-bottom: 5px!important; }

[How-To] Manuell Firmware entpacken, modifizieren, packen

Dieses Thema im Forum "Freetz" wurde erstellt von kriegaex, 23 Sep. 2008.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. kriegaex

    kriegaex Aktives Mitglied

    Registriert seit:
    7 Nov. 2006
    Beiträge:
    2,927
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Projektmanagement-Coach (Certified Scrum Professio
    Ort:
    Großraum Nürnberg
    #1 kriegaex, 23 Sep. 2008
    Zuletzt bearbeitet: 23 Sep. 2008
    Ich wurde per (PN) Privatnachricht etwas gefragt. Da ich privat keinen Support leiste, die Frage aber einigermaßen interessant und von allgemeinem Interesse ist, sollen auch alle etwas von der Antwort haben.

    Update: Schritt 2 (make tools) hatte ich zunächst vergessen zu erwähnen, danke Oliver!

    Am einfachsten ist es, doch Freetz als Infrastruktur zu benutzen, und zwar das Skript fwmod aus dem Freetz-Hauptverzeichnis. Wenn man es ohne Parameter aufruft, verrät es sogar, wie es benutzt werden möchte:
    Code:
    $ ./fwmod
    
    Usage: fwmod [-u|-m|-p|-a] [-i <cfg>] [-d <dir>] <orig_fw> [<tk_fw>]
      actions
        -u         unpack firmware image
        -m         modify previously unpacked image
        -p         pack firmware image
        -a         all: unpack, modify and pack firmware image (-u -m -p)
      input/output
        -i <cfg>   input file for configuration data (default: .config)
        -d <dir>   build directory (default: <orig_firmware>.mod)
        <orig_fw>  original firmware name
        <tk_fw>    2nd firmware name (e.g. for merging in web UI)
    
    Wir brauchen also einmal den Aufruf mit -u zum Entpacken, dann nach der Modifikation den mit -p zum erneuten Packen.

    Ich gehe im Folgenden davon aus, daß sich der Benutzer im Hauptverzeichnis des frisch ausgepackten oder ausgecheckten Freetz befindet und das zu modifizierende Firmware-Image bereits in dieses Verzeichnis heruntergeladen hat. Dann sind folgende Schritte auszuführen:
    1. Zunächst müssen wir eine passende Konfigurationsdatei .config erzeugen, damit beim Packen später das Skript fwmod die erforderlichen Informationen findet. Dazu rufen wir einmal
      Code:
      make menuconfig
      auf, wählen die richtige Hardware (im Beispiel 7170) aus und verlassen die Konfiguration, wobei wir die Frage nach dem Abspeichern bejahen.
    2. Bevor wir fwmod erstmals aufrufen können, müssen einige Werkzeuge gebaut werden, die später indirekt aufgerufen werden, um die Firmware zu entpacken und später wieder zusammenzubauen:
      Code:
      make tools
      Das kann ein Weilchen (einige Minuten) dauern, und wer in einer VM arbeitet, sollte dafür sorgen, daß Internet-Downloads via wget funktionieren, sonst wird das nichts.
    3. Jetzt entpacken wir das von AVM heruntergeladene Firmware-Image in ein Verzeichnis, das ich willkürlich und beispielhaft unpacked_firmware nenne:
      Code:
      ./fwmod -u -d unpacked_firmware FRITZ.Box_Fon_WLAN_7170.29.04.59.image
    4. Unter unpacked_firmware/original/filesystem modifizieren wir nun nach Herzenslust das Dateisystem der Firmware, wobei ich hier nicht darauf eingehe, was dabei zu beachten ist - das würde den Rahmen sprengen.
    5. Zum guten Schluß packen wir nun wieder das Firmware-Image:
      Code:
      ./fwmod -p -d unpacked_firmware FRITZ.Box_Fon_WLAN_7170.29.04.59.image
      Das ist also der gleiche Aufruf wie vorher, nur mit -p statt -u. Den Namen des Original-Images muß man leider mit angeben, obwohl das Image zum Packen nicht benötigt wird. Das ist eine kleine Schwäche des Skripts fwmod.
    6. Nach einer Weile steht am Ende der Skript-Ausgabe so etwas wie
      Code:
      creating filesystem image
      merging kernel image
        kernel image size: 6969088 (max: 7798784, free: 829696)
      packing [COLOR="Blue"][B]7170_.de_20080923-200251.image[/B][/COLOR]
      done.
      
      FINISHED
      In blau hervorgehoben habe ich den Namen der neu erzeugten Image-Datei.

    Danach heißt es: happy flashing! :-D

    P.S.: Wer hat Lust, das mal ins Freetz-Wiki zu übertragen? Ich habe leider wenig Zeit und dachte nicht daran, es gleich dort zu hinterlegen.
     
  2. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    1
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Hallo,

    ich denke, das ist es wert, oben festgetackert zu werden.

    Vielleicht kann Izzy sich ja der Sache mit dem Wiki annehmen ... :D
     
  3. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    @kriegaex
    Bei deiner Befehlsreihenfolge werden die nötigen Tools nicht gebaut. Das müsste da eventuell noch eingeschoben werden.

    MfG Oliver
     
  4. kriegaex

    kriegaex Aktives Mitglied

    Registriert seit:
    7 Nov. 2006
    Beiträge:
    2,927
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Projektmanagement-Coach (Certified Scrum Professio
    Ort:
    Großraum Nürnberg
    Angepaßt, sorry. Das kommt davon, wenn man schon eine bestehende Build-Umgebung hat und benutzt, anstatt wirklich neu auszuchecken.
     
  5. dileks

    dileks Neuer User

    Registriert seit:
    7 Apr. 2006
    Beiträge:
    180
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Grossraum Stuttgart
    Hallo Alexander & Oliver,

    fwmod: Ich erinnere mich dunkel ans firmware-repackaging/-extracting via PN mit Euch beiden.
    Schön, dass es jetzt niedergeschrieben ist.

    Grüssle,
    Sed@
     
  6. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke, Alexander, für die interessante Anleitung! Ich war mal so frei und habe sie (textuell leicht angepasst) ins Freetz-Wiki gestellt.
    Leider weiß ich nicht, wie (und am besten wo) auf diesen Wiki-Eintrag im Wiki selbst verlinkt werden kann. Z.B. fehlt ein Link auf die HowTos, oder ich habe ich nicht richtig gesucht. Es sind alle eingeladen, nötige Modifikationen und Korrekturen einzufügen. Dankeschön.
     
  7. kriegaex

    kriegaex Aktives Mitglied

    Registriert seit:
    7 Nov. 2006
    Beiträge:
    2,927
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Projektmanagement-Coach (Certified Scrum Professio
    Ort:
    Großraum Nürnberg
    Verbindlichen Dank. :)
     
  8. Izzy

    Izzy Mitglied

    Registriert seit:
    10 März 2006
    Beiträge:
    254
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    München
    Teamwork: ao hat es übertragen, irgendwer (Alexander?) hat es in der Howto-Übersicht verankert, und ich hab es dann noch ein wenig angepasst. Leider kann ich gerade nicht schauen, ob auch die letzten Änderungen aus diesem Thread dort bereits berücksichtigt sind, da ich derzeit nur "503 Service not available" bekomme - egal welche Seite ich auf trac.freetz.org aufrufe. Ist das eine "geplante Baustelle", oder gibt es Probleme? Kann man helfen?

    Beste Grüße,
    Izzy.
     
  9. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn Du die Ergänzung "make tools" meinst, die ist bereits mit drin.
    Ansonsten habe ich hier dasselbe www.freetz.org -Problem: "Service Temporarily Unavailable". :(
     
  10. Izzy

    Izzy Mitglied

    Registriert seit:
    10 März 2006
    Beiträge:
    254
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    München
    Gut, dann sollte der Artikel auf dem aktuellen Stand sein. Nur dass ihn gerade keiner lesen kann - der Server ist wohl unter der Last zusammengebrochen, das Kontingent an monatlichem Traffic aufgebraucht, oder sowas. Von "Maintenance" habe ich eigentlich nix gehört (war also zumindest nix angekündigt) - und ich denke, das wäre hier bestimmt gepinnt, um "1000 Fragen" zu vermeiden. Daher tippe ich eher auf ein Problem.

    Leider kann ich die Logs nicht sehen - ein 503 kommt bei Trac auch ganz gern mal, wenn man z.B. ein neues Plugin installiert hat, welches ein "Upgrade" der Datenbank erfordert, was vergessen wurde durchzuführen. Oder wenn ein Plugin falsch konfiguriert ist. Da ich das Log nicht sehen kann, weiß ich natürlich nicht, ob es so etwas ist...
     
  11. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    Das Problem zumindest habe ich grad behoben ;)

    Nein und nein. ;)
     
  12. Izzy

    Izzy Mitglied

    Registriert seit:
    10 März 2006
    Beiträge:
    254
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    München
    Super, Danke! Dann kann ich ja endlich wieder das Wiki weiter frisieren. Darf man fragen, was es war? "Environment needs upgrade"?

    Hm, zwei Antworten auf drei Fragen. LTR oder RTL? :cool:
     
  13. McNetic

    McNetic Mitglied

    Registriert seit:
    7 Feb. 2007
    Beiträge:
    672
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    Aachen
    Ich bin der Meinung, daß der Thread dann nicht mehr hier oben angepinnt sein muss. Dafür ist es letztendlich doch zu speziell, und es ist ja jetzt ordentlich aufgeräumt.
     
  14. Izzy

    Izzy Mitglied

    Registriert seit:
    10 März 2006
    Beiträge:
    254
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    München
    :zustimm: Und über die Howtos-Seite auch sofort zu finden.
     
  15. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    1
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Hallo,

    jupp, unter diesen Randbedingungen habt ihr Recht.
     
  16. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Da dieser Thread im o.g. HowTo verlinkt ist, lässt er sich auch jeder Zeit zur weiteren Diskussion finden - sofern man den Wiki-Artikel von Anfang an liest. ;)
    Kann man den Link im HowTo eigentlich auch "unsichtbar" machen, d.h. dass er dort einfach unter dem Wort "hier" liegt?
     
  17. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja klar. Formatierungsregeln nachlesen, oder nachschauen, wie der Link davor (auf Alexander) formatiert wurde).
     
  18. Izzy

    Izzy Mitglied

    Registriert seit:
    10 März 2006
    Beiträge:
    254
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    München
  19. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke und sorry, dass ich selbst kaum Zeit habe, mich da reinzulesen. [​IMG]
     
  20. Izzy

    Izzy Mitglied

    Registriert seit:
    10 März 2006
    Beiträge:
    254
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    München
    Kein Problem. Hast doch einen Artikel übertragen - das ist mehr, als manch anderer zum wiki beigetragen hat :keks: Und außerdem habe ich doch wohl nicht zuletzt Dir so manchen Tipp schon zu verdanken, also keine falsche Bescheidenheit :p

    Wenn Du Dich dann mal reinlesen willst: WikiTipps. Ist noch lange nicht vollständig. Sobald ich durch die Paketliste durch bin, kommt da noch der eine oder andere Artikel hinzu. Ich denke da (ernsthaft, und ohne dass das jetzt eine Anspielung ist) u.a. an Dinge wie:
    • Wie schreibe ich einen besseren Wiki-Artikel
    • Wie und wofür man Tags einsetzen und benutzen kann
    • ...
    Die anderen Themen kann ich derzeit noch nicht in eine kurze Phrase packen, sind noch zu roh. Wie getippst, erstmal will ich die Paketliste fertig haben.

    Beste Grüße,
    Izzy.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.