Loopback-Device

Diskussionen um Bootloader, Kernel, Busybox
gryzor
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Mittwoch 22. Mai 2002, 08:11

Loopback-Device

Beitrag von gryzor »

Wie kann ich auf der D-Box ein cdk-cramfs.img mounten?

Versucht habe ich es über das Loopback-Device.
Der Kernel in der Yadd vom 04.05. hat Loop-Support.
Die Devices liegen unter /dev/loop/0-6

Mache ich ein:
mount -t cramfs /tmp/cdk-cramfs.img /mnt -o loop

bekomme ich die Fehlermeldung: Bad Block Device

Ein:
mount -t cramfs /tmp/cdk-cramfs.img /mnt -o loop=/dev/loop/0
bringt mich auch nicht weiter.

Wieso liegen die Loop-Devices eigentlich im Unterverzeichnis loop?
Unter Linux sind sie direkt unter /dev als loop0-loop6.

Über Anregungen würde ich mich freuen. Danke!

PS: Das cdk-cramfs.img ist noch im Big-Endian-Format.
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

Kernel:

Code: Alles auswählen

CONFIG_BLK_DEV_LOOP=y
Busybox:

Code: Alles auswählen

CONFIG_FEATURE_MOUNT_LOOP=y
Dann klappts auch mit dem Loop-Device ;)

P.S.: Getestet nur mit SquashFS, aber das hattet ihr damals ja noch nicht...
Schon gelesen ???
ENIGMA-DOC
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Ich zitiere mich mal selbst aus einem anderen Forum.
Ist zwar für ein jffs2 Image. funktioniert aber vielleicht auch mit nem cramfs
Vielleicht hilfts ja...
So, habs geschafft.
Es fehlte noch der blkmtd Treiber, den ich über die Kernelconfig als Modul kompiliert habe.
Damit kann man ein jffs2 Dateisystem auf nem Blockdevice betreiben.
Ging dann konkret mit:
losetup /dev/loop/0 /tmp/image.img
insmod blkmtd device=/dev/loop/0
mount -t jffs2 /dev/mtdblock/5 /mnt/image
Gruß

Der Papst
petgun
Tuxboxer
Tuxboxer
Beiträge: 5001
Registriert: Montag 11. November 2002, 15:26

Beitrag von petgun »

hi,
kann bitte einer von Euch mal genau erklaeren was ich mit dem LoopbackDevice auf der Box anfangen kann ? Ist doch wie eine virtuelle 2. Netzwerkkarte, oder?

cu,
peter
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

Mit

Code: Alles auswählen

mount -t squashfs -o loop /tmp/mtd3.img /tmp/mtd3
kann man z.B. ein squashfs-root-Image nach /tmp/mtd3 mounten und dann wie ein normales ro-Verzeichnis behandeln, es lassen sich z.B. auch Anwendungen ausführen (hab mal versucht Neutrino im Loop-Device zu starten, das hat zunächst mal nicht geklappt).
Denkbar ist (mit einigen Anpassungen) z.B. Plugins, Spiele in solch einem tmp-Image zu haben, das dann bei Bedarf gemounted wird.
Weswegen es aber hauptsächlich im neuen yadi-Snap ist, ist weil so die Überprüfung eines zu flashenden Update-mtd3s möglich ist, es kann z.B. die Versionsnummer usw ausgelesen werden, bevor geflasht wird.

Das Anlegen der devices wie oben beschrieben ist im 1.10.0.1 nicht notwendig.
Schon gelesen ???
ENIGMA-DOC
petgun
Tuxboxer
Tuxboxer
Beiträge: 5001
Registriert: Montag 11. November 2002, 15:26

Beitrag von petgun »

hi,
danke fuer die Antwort!

cu,
peter
gryzor
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Mittwoch 22. Mai 2002, 08:11

Beitrag von gryzor »

Hallo essu,

vielen Dank für die Antwort.
Besser spät als nie ;)
Meine Lösung war bisher das Modul mtdram nachzuladen und dann mit
dd if=$CRAMFS of=/dev/mtd/7
mount ...
das cramfs/jffs2 zu laden.

Das cramfs kann man ja mittlerweile auch prima auf dem PC via loop mounten, seit es little-endian ist. Squashfs mit entsprechendem Patch ebenso.

Nur mit dem JFFS2 habe ich noch so meine Probleme. Mit dem Kernel 2.4.xx bekomme ich das big-endian der dbox nicht gemountet. Das funktioniert glaube ich erst mit neueren Kernels. Oder kennst du hierfür eine Möglichkeit für Kernel 2.4.21/27?

Grüße,
gryzor