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


von Friedrich (Gast)


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.

von ... .. (docean) Benutzerseite


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

von Hans (Gast)


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

von Friedrich (Gast)


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.

von Friedrich (Gast)


Lesenswert?

Zu früh gespeichert...

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

von max (Gast)


Lesenswert?

Hallo

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

von Hc Z. (mizch)


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).

von Friedrich (Gast)


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.

von Hannes (Gast)


Lesenswert?

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

von Peter (Gast)


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.

von friedrich (Gast)


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.

von Läubi .. (laeubi) Benutzerseite


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.

von Peter (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.