mikrocontroller.net

Forum: PC-Programmierung *.bin enpacken (Router firmware)


Autor: Friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die OpenWRT Firmwares sind ja als *.bin gespeichert. Kann mit irgendwer 
sagen, mit was sich das ganze entpacken lässt, so dass ich an die 
Ordnerstruktur herankomme? Und nein, es ist nicht die Art von *.bin, wie 
sie als CD-Image Verwendung findet, sondern ein Flash-Image. Es geht 
darum, dass ich eine solche Firmware entpacken will, um Treiber 
hinzuzufügen(Ist für einen Thomsen-Router, der offiziell nicht 
unterstützt wird). Danch eben wieder packen. Das Problem ist, dass ohne 
diese Treiber kein LAN und rs232 funktioniert, so daß ich das auch nicht 
nach dem aufspielen per rs232 erledign kann.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für sowas musst du am besten openwrt selber "bauen"

http://wiki.openwrt.org/doc/howto/build

oder vlt reicht ja ein "Custom Build"
http://wiki.openwrt.org/doc/howto/imagebuilder

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal die offset option beim mounten von loop devices an.
Wenn allerdings die Teile die du ändern willst in einem squashfs
liegen wirds komplizierter.

Vielleicht hilft auch der folgende Vortrag weiter: 
http://chaosradio.ccc.de/24c3_m4v_2166.html

Autor: Friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Problem ist halt, dass der Router offiziell gar nicht von OpenWRT 
unterstützt wird, daher kann ich die Treiber auch nicht 
miteinkompilieren.
Enpacken möchte ich das ganze, da ich mir per JTAG einen Flashdump 
gemacht habe, der nun eben als *.bin ist. Da die Originalfirmware auch 
auf Linux basiert, möchte ich den Treiber einfach auf die 
OpenWRT-Version übertragen. Sollte funktionieren.

Autor: Friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu früh gespeichert...

Nur wie mounte ich die *.bin, am besten unter Mac oder Win.

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Unter OSX kannst du es entweder mit den DiskUtility oder auf der Konsole 
mit mount versuchen.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Treiber müssen zur jeweiligen Kernel-Version passen.  Deshalb ist

> Da die Originalfirmware auch
> auf Linux basiert, möchte ich den Treiber einfach auf die
> OpenWRT-Version übertragen.

etwas (bis sehr) blauäugig.  Denn dass beides ein Linux ist, reicht noch 
lange nicht.  Es wäre ein ziemlich großer Zufall, wenn zwei unabhängig 
voneinander (und zu vermutlich unterschiedlichen Zeiten) entwickelte 
Firmwares denselben Kernel verwenden würden.  Nur dann wären die 
zugehörigen Treiber übertragbar (ich unterstelle Treiber == 
Kernel-Modul, denn das ist die übliche Form).

Autor: Friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist beides die selbe Kernelversion, das habe ich herausgefunden. Der 
Treiber ist im Prinzip nichts anderes, als ein Programm, welches per 
/etc/init.d automatisch beim booten gestartet wird, also nicht 
einkompiliert.

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würdest du nicht so einen auf geheimnisvoll machen und im richtigen 
Forum
fragen, könntest du vieleicht auf mehr Hilfe hoffen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich würde auch die Quellen von openwrt nehmen, du musst ja auch nicht 
einkompilieren es reicht doch wenn du während das erzeugen des Images 
dein Zeug einfach mit reinkopierst.

Warum muss da Zeug überhaupt im Image sein, du kannst das zeug doch auch 
nachträglich drauf kopieren? Es bleibt doch genau so nach einem reboot 
enthalten.

Autor: friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nacher kopieren kann ich nicht, da ohne den Treiber weder Netzwerk noch 
RS232 funktionieren.

Nur um an den Treiber zu kommen, muss ich es eben entpacken.

max schrieb:
> Unter OSX kannst du es entweder mit den DiskUtility oder auf der Konsole
> mit mount versuchen.

bei den DiskUtilitys habe ich keine entdprechende Funktion gefunden, die 
Konsole meldet nur ein unbekanntes Dateisystem.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Friedrich schrieb:
> Enpacken möchte ich das ganze, da ich mir per JTAG einen Flashdump
> gemacht habe, der nun eben als *.bin ist.
Ein Flash-Dump kann man nicht einfach "entpacken" das sind einfach 
(erstmal) sinnlos hintereinander gereihte bytes.
Wenn der Flash irgeneine LinuxFS nutzt kannst du mit Glück das bin 
mounten und dann Dateien kopieren.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
friedrich schrieb:
> Nur um an den Treiber zu kommen, muss ich es eben entpacken.

nein musst du nicht, warum etwas rückwärts machen wenn du die scripte 
zum erzeugen von dem BIN unter laden kannst.

Lade dir doch mal die Quellen und erzeugen erstmal das Orignal image. 
Wenn das geht schaust du dir den Build prozess an und kopierst dein Zeug 
mit rein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.