Cramfs

Aus M740 WikiWeb

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis


Einleitung

In der Firmware der Box (M740AV) spielt das cramfs ('Compressed ROM file system) eine Rolle. Ein solches Dateisystem wird als '/' (root file system) von /dev/mtdblock1 gemounted und enthält daher das Linux-Basis-System. Auch das Rettungssystem (rescue system) ist vom Typ cramfs. Beide werden von Firmware-Updates überschrieben.

cramfs ist Open-Source und steht unter der GPL-Lizenz. Die Quellen gibt es bei SourceForge. Nach dem Compilieren erhält man zwei Programme: cramfsck und mkcramfs. Ersteres ist zum Überprüfen und zum Entpacken eines Archives, letzteres zum Erstellen eines cramfs-Archives. Die Version kann allerdings nur Dateisysteme mit dem Endian des Hostes bearbeiten. Damit kann man unter Linux/PC (little endian) nicht die cramfs-Archive der M740AV (mips basiert, big endian) bearbeiten.

Ein kleine Lösung hierfür bietet Siemens, die die M740AV GPL Quellen (siehe auch Firmware Download) zur Verfügung stellen. In dem 130 MB Paket befindet sich auch ein modifiziertes mkcramfs. mkcramfs kann nun über die Option '-b' gesteuert cramfs-Archive in big oder little Endian erzeugen.

Ein hilfreiches Tool, welches eine Endian Konvertierung eines cramfs-Archives durchführt, findet man unter:
http://freshmeat.net/projects/cramfsswap/

Analyse eines cramfs-Archives

Ein existierendes cramfs-Archiv kann auf der Box mittels

mount -t cramfs -o loop file.cramfs /mnt2

gemountet werden. Anschließend erhält man unter /mnt2 Einsicht in die Dateien und kann sie zur Weiterverarbeitung kopieren, z.B. mit

tar -cf /var/media/PC1/cramfs.tar -C /mnt2 . 

kopieren.

Synthese eines cramfs-Archives

Ein modifiziertes Dateisystem kann mit dem Kommando

./mkcramfs -bb quell_verzeichnis ausgabedatei.cramfs

(mkcramfs aus den M740AV GPL Quellen) wieder zu einem cramfs-Archiv zusammengesetzt werden. Damit kann auch ein eigenes Firmware-Update erstellt werden.

Links

Persönliche Werkzeuge