UnixCommands: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
==Mounting a JFFS2 Image== | ==Mounting a JFFS2 Image== | ||
The JFFS2 filesystem is intended to be used with a flash based filesystem and not a block filesystem like a | The filesystem used on the iMote2s is a JFFS2 filesystem. Once you've created the filesystem on a linux desktop you can actually mount it and make changes (so you don't have to change the source files and recreate the image every time). | ||
The JFFS2 filesystem is intended to be used with a flash based filesystem and not a block filesystem like a hard drive (or a USB stick which emulates a block filesystem). Because of this you cannot simply mount a .jffs2 image using the loopback device. Instead you need to use a flash emulator (blkmtd in this case) which reads the .jffs2 image via a loopback device (remember since we need the emulation there's no way to mount the loopback directly). | |||
<ul> | <ul> | ||
Revision as of 20:31, 11 December 2006
Mounting a JFFS2 Image
The filesystem used on the iMote2s is a JFFS2 filesystem. Once you've created the filesystem on a linux desktop you can actually mount it and make changes (so you don't have to change the source files and recreate the image every time).
The JFFS2 filesystem is intended to be used with a flash based filesystem and not a block filesystem like a hard drive (or a USB stick which emulates a block filesystem). Because of this you cannot simply mount a .jffs2 image using the loopback device. Instead you need to use a flash emulator (blkmtd in this case) which reads the .jffs2 image via a loopback device (remember since we need the emulation there's no way to mount the loopback directly).
- Connect a free loop device to the .jffs2 image: <bash>losetup /dev/loop0 ~/fs.jffs2</bash>
- Connect the blkmtd emulator module to the loopback device: <bash>modprobe blkmtd device=/dev/loop0</bash>
- Mount the mtdblock device blkmtd attached to <bash>mount /dev/mtdblock0 /mnt/jffs2Image</bash>
- JFFS2 image location:
- Directory to mount the image on:
- Loop back device to use:
Quick Start
-
The basic steps are (you will need to be root to mount and load modules):
All together that would be (where you would need to change ~/fs.jffs2 to point to where your image is and /mnt/jffs2Image to your chosen mount point). <bash>losetup /dev/loop0 ~/fs.jffs2 modprobe blkmtd device=/dev/loop0 mount /dev/mtdblock0 /mnt/jffs2Image</bash>
Creating missing devices
-
If you're missing loop devices here are the mknod commands to create loop0-loop5:
<bash>mknod /dev/loop0 b 7 0
mknod /dev/loop1 b 7 1
mknod /dev/loop2 b 7 2
mknod /dev/loop3 b 7 3
mknod /dev/loop4 b 7 4
mknod /dev/loop5 b 7 5</bash>
And here's how to create the mtdblock devices:
<bash>mknod /dev/mtdblock0 b 31 0
mknod /dev/mtdblock1 b 31 1
mknod /dev/mtdblock2 b 31 2
mknod /dev/mtdblock3 b 31 3
mknod /dev/mtdblock4 b 31 4
mknod /dev/mtdblock5 b 31 5</bash>
Mounting Script
-
Modified from Ed Bartosh's script (here):
<bash>