Probleme mit LZMA-Patch für Squashfs

hehol

Mitglied
Mitglied seit
22 Feb 2005
Beiträge
458
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich versuche seit mehreren Tagen krampfhaft, ein Firmwareimage mit LZMA-komprimiertem Root-Dateisystem zu erstellen. Ich habe meinen Linux-Kernel mit den LZMA- und Contiguous-Patches für Squashfs ausgestattet und im Buildvorgang (basierend auf supamichas m4.28 ) mksquashfs durch mksquashfs-lzma ersetzt. Wenn ich das Ergebnis boote, dann wird der Kernel sauber entpackt, aber beim Mounten des Root-Dateisystems sehe ich dies auf der seriellen Schnittstelle:

Code:
VFS: Mounted root (squashfs filesystem) readonly.
root device=/dev/mtdblock/0
Mounted devfs on /dev
Freeing unused kernel memory: 44k freed
[sys_reboot]: cmd=0x0
init started:  BusyBox v1.00 (2005.10.13-14:26+0000) multi-call binary
Algorithmics/MIPS FPU Emulator v1.5
SQUASHFS error: lzma returned unexpected result 0x1
SQUASHFS error: Unable to read cache block [21426:b0]
SQUASHFS error: Unable to read inode [21426:b0]
SQUASHFS error: Root inode create failed
mount: Mounting /dev/mtdblock/6 on /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden failed: Invalid argument
/etc/init.d/rc.S: 55: cannot create /dev/watchdog: Permission denied
tar: var.tar: No such file or directory
mount: /var/tmp/mtab: No such file or directory
mount: /var/tmp/mtab: No such file or directory
mount: /var/tmp/mtab: No such file or directory
mount: /var/tmp/mtab: No such file or directory
mount: /var/tmp/mtab: No such file or directory
mount: /var/tmp/mtab: No such file or directory

Die Fritzbox bootet weiter, ist danach aber im Netzwerk nicht erreichbar.

Ich denke, daß das Root-Dateisystem irgendwie noch nicht als LZMA-komprimiert erkannt wird. Mir ist nicht klar, was ich tun muß, um diesen Zustand zu ändern. Kann mir jemand weiterhelfen?

Gruß
Henning
 
Hi.
Schau mal im danisahne-mod unter make/kernel/, da sind alle Patches drin.
Du kannst einen Kernel mit lzma bauen, da musst du nichts weiter tun, ist ja schon fast alles in den Sourcen.
Wenn du ein Dateisystem mit lzma haben willst, dann brauchst du ein mksquashfs-lzma und du musst das squashfs im Kernel patchen, dass es lzma kann. Dann geht auch kein Dateisystem mit gzip-Kompression mehr.

Kann es sein, dass du vergessen hast die Dateien des hidden-squashfs nach /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden zu kopieren?
Und die rc.S hast du auch nicht gepatcht, dass sie kein hidden-squashfs mehr laden soll, wenn var.tar schon da ist.

MfG Oliver
 
olistudent schrieb:
Schau mal im danisahne-mod unter make/kernel/, da sind alle Patches drin.
Daher habe ich die Patches. Ich habe allerdings nur 100-squashfs-lzma.patch und 110-contiguous-squashfs.patch verwendet, denn 110-contiguous-squashfs.patch enthält bereits 110-contiguous-squashfs.patch.olistudent, oder habe ich was übersehen?

olistudent schrieb:
Du kannst einen Kernel mit lzma bauen, da musst du nichts weiter tun, ist ja schon fast alles in den Sourcen.
Das habe ich gemacht. Der Kernel selbst ist ja auch schon mit LZMA gepackt und wird korrekt ausgepackt.

olistudent schrieb:
Wenn du ein Dateisystem mit lzma haben willst, dann brauchst du ein mksquashfs-lzma und du musst das squashfs im Kernel patchen, dass es lzma kann.
mksquashfs-lzma habe ich und ich habe die oben genannten Patches angewendet. Brauche ich noch mehr Patches? "Du mußt Squashfs patchen, damit es LZMA kann" habe ich schon häufiger gelesen, aber mehr als die beiden Patches oben habe ich bisher nirgendwo gefunden ...

olistudent schrieb:
Kann es sein, dass du vergessen hast die Dateien des hidden-squashfs nach /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden zu kopieren?
Ich weiß nicht :o Bisher mußte ich mich darum nicht kümmern, weil fritzbox_mod aus supamichas m4.28 das für mich erledigt hat :) Der "originale" Mod hat ja bereits LZMA-Unterstützung, deshalb bin ich davon ausgegangen, daß ich an dem Buildmechanismus nichts ändern muß?!

olistudent schrieb:
Und die rc.S hast du auch nicht gepatcht, dass sie kein hidden-squashfs mehr laden soll, wenn var.tar schon da ist.
Die von fritzbox_mod modifizierte rc.S möchte var.tar gerne auspacken:

Code:
cd /
if [ -e /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden/var.tar ] ; then
 tar xf /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden/var.tar
else
 tar xf var.tar
fi

Ist das falsch so oder fehlt mir noch irgendwas?
 
Es geht um diesen Abschnitt:
Code:
if [ ! -f /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden/var.tar ] ; then
 if [ -e /dev/mtdblock/7 ] ; then
  mount -r /dev/mtdblock/7 /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hiddden
  umount_hidden=/dev/mtdblock/7
 else
  if [ -e /dev/mtdblock/6 ] ; then
  mount -r /dev/mtdblock/6 /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/hidden
  umount_hidden=/dev/mtdblock/6
  fi
 fi
fi
Die 110-Patches sollten das gleiche machen.

MfG Oliver
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,519
Beiträge
2,293,406
Mitglieder
378,018
Neuestes Mitglied
lg300