cramfs: firmware mounten

nordi

nordi

Jungspund
hallo linux- bzw gentoo-freunde,
hab ein kleines problemchen, bei dem ich nicht weiter weiß und euch deswegen um hilfe bitten muss.
habe ein (mehrere) firmwareimage(s) meiner ip-webcam (siemens gigaset). möchte es mounten und die firmware lesen bzw bearbeiten, was ich nicht hinbekomme :(
Code:
gentoo work # mount sie.bin /mnt/test -o loop,offset=983040
mount: unknown filesystem type 'cramfs'
habe den kernel diesbezüglich angepasst
Code:
<*> Compressed ROM file system support (cramfs)
und auch das paket cramfs installiert
Code:
[ Results for search key : cramfs ]
[ Applications found : 1 ]

*  sys-fs/cramfs
      Latest version available: 1.1
      Latest version installed: 1.1
      Size of files: 23 kB
      Homepage:      http://sourceforge.net/projects/cramfs/
      Description:   Linux filesystem designed to be simple, small, and to compress things well
      License:       GPL-2

trotz allem funktioniert es nicht und in /proc/filesystems ist cramfs auch nicht zu sehen. ist jemand dabei, der mir sagen kann, was ich falsch mache oder wie ich vorgehen kann, um das problem zu lokalisieren und es zu beheben.

oder vielleicht gibt es auch eine elegantere und einfachere methode an das innere der binary zu kommen.
die hardware wurde von mehreren anbietern verbaut und ist bei allen identisch. firmwares gibt es unter folgenden URLs:

siemens
allnet
level-one
linksys

wäre für jeden tipp dankbar, da ich mich schon seit tagen damit rumplage und einfach nicht weiterkomme..
 
Probiere mal
Code:
mount -t cramfs sie.bin /mnt/test
Code:
mount -t cramfs -o loop sie.bin /mnt/test

Was ist das für ein Kernel?
 
Zuletzt bearbeitet:
lüppt leider auch nicht.. gleiche fehlermeldung wie oben
Code:
mount: unknown filesystem type 'cramfs'

kernel:
linux-2.6.23-gentoo-r6

edit:
danke for die hilfe, hab den kernel nochmal neu erstellt und jetzt lüppts :)
ich dummie muss wohl vorher nen fehler gemacht haben..

nun hab ich mein nächstes problem. ist cramfs read-only, oder gibt es da nen kniff, wie ich dahinein schreiben kann?
 
Zuletzt bearbeitet:
Ich hab mir mal das Firmwareimage von Siemens runtergeladen und mich daran gehalten:

http://www.applieddata.net/forums/topic.asp?TOPIC_ID=1636

Code:
mount -o loop -t cramfs Siemens_20050822_V1.27.bin /tmp/Krempel/

mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

dmesg|tail 

......

cramfs: wrong magic
Also von den ganzen Problemen mit dem Deinem Kernel scheinbar unbekannten Filesystem abgesehen; bist Du sicher, daß cramfs auch das richtige Filesystem ist?

//Edit:

Mal ein wenig rumgespielt.

Code:
mkfs.cramfs DVB/ test.bin

file test.bin

test.bin: Linux Compressed ROM File System data, little endian size 5754880 version #2 sorted_dirs CRC 0xebc9a9e4, edition 0, 1401 blocks, 3 files

file Siemens_20050822_V1.27.bin

Siemens_20050822_V1.27.bin: data
See the difference?

Und:

Code:
mount -o loop -t cramfs test.bin /tmp/Krempel/
Das eigene Image klappt wunderbar, aber die Siemens Firmware will überhaupt nicht.

Greetz,

RM
 
Zuletzt bearbeitet von einem Moderator:
hatte nen wurm drin bei der erstellung des neuen kernels mit cramfs. hab ihn nochmal kompiliert und jetzt klappt auch das mounten mit:
Code:
mount sie.bin /mnt/test -o loop,offset=983040
hab auf allem lesenden zugriff, nur schreiben geht nicht - hab ich mir anders vorgestellt. nun versuche ich den inhalt rekursiv zu kopieren, bearbeiten und mit mkcramfs nen neues image zu erstellen.

problem:
cp meckert
Code:
cp: will not create hard link `/data/work/sie_root/test/mnt/hd' to directory`/data/work/sie_root/test/dev/pts'

nun hab ich schi** nen image mit defekten hardlinks zu flashen, weil ich das ding dann bestimmt wegschmeissen kann..

wie kann ich denn die hardlinks mitkopieren? oder gibt es ne elegantere möglichkeit cramfs zu bearbeiten?
 
bist Du sicher, daß cramfs auch das richtige Filesystem ist?

jetzt wo du es erwähnst, sicher bin ich mir da nicht. das hatte ich angenommen, weil bei den anfänglichen mountversuchen folgendes gemeldet wurde.
Code:
gentoo work # mount sie.bin /mnt/test -o loop,offset=983040
mount: unknown filesystem type 'cramfs'

wie gesagt mounten klappt nun und ich kann alles lesen. mit
Code:
tar -cf  -  . | tar -C /data/work/sie_root  -xpf  -
(aus der von dir erwähnter quelle) lässt sich auch alles 1:1 kopieren.
nur wenn ich mit "mkcramfs /data/work/sie_root sie_new.bin" nen neues image erstelle ists nur 1780kb groß anstatt der benötigten 4096. ?( (mit mksquashfs sogar nur 1560kb)

wie kriege ich das gemeistert, das innenleben zu ändern, ohne aus meiner ip-cam nen unhandlichen briefbeschwerer zu machen?

@slackfan
danke für den hinweis, hab ich aber schon selbst feststellen müssen ;)

edit:
allnet stellt auch die sources zur verfügung in denen ich das verzeichnis utils mit folgenden files fand:
fsck.cramfs fsck.minix genromfs mkfs.cramfs mkfs.minix
(unten angehängt)
ma schauen, wie ich die verwenden muss, um nen flashbares image erstellen zu können. (heute aber nicht mehr, weil mir schon die rübe qualmt)
wenn jemand noch nen tipp hat, wie ich da am besten vorgehe, nehme ich ihn gerne an :)
 

Anhänge

  • util.zip
    37,8 KB · Aufrufe: 0
Zuletzt bearbeitet:

Ähnliche Themen

Rollei Mini Wifi Camcorder

Festplatte friert ein nach suspend/resume

Installing GENTOO 2008.0 on a QEMU DISK IMAGE (and KDE4).

CGI laesst sich nicht ausfuehren

[Debian] Mount HDs on Boot-Up

Zurück
Oben