Problem with Initrd Images(cramfs) on embedded devices using busybox

Hi all

I have made an initrd image for an embedded device. The image is packed with mkcramfs to one big image and everything runs great like expected. I can start X, fire up Firefox and so on. The image and Kernel are flashed to a Compact Flash Card( 64 MB) which is formatted ext2, and fires the system up by loading grub, and grub loads the kernel and initrd image.

Then I have split up the big image in modules (root(busybox),X, icewm, firefox ...). I did this cause I would like to be able to update the modules on the fly, if e.g. a newer version / bug fix is released for the specific module. So, I copied all the modules to to Compact Flash Card and mounted them via loop during startup.

The system start up fine, and all the modules are mounted like expected.

Now the problem is, that when I want to start X, I get an Kernel oops. I tried to strace the call, but even the strace will oops. The only thing which is running is ash(the busybox default shell).

I am running Kernel 2.6.8.1 and busybox is latest released (1.0). My next test would be to try a newer Kernel, but I am not that confident. If anyone has an idea, plase let me know.

Thanks in advance and best regards. Anes

Reply to
Anes Lihovac
Loading thread data ...

packed with

and

icewm,

the

Card

You are probably accessing the loop device before the IDE device and file systems are loaded. Make sure the IDE device and file system drivers are build-in, not in modules.

...

Reply to
linnix

I don't think that's the problem. All those drivers are compiled in the Kernel.

the startup looks kinda like this:

mount -n -t ext2 /dev/hda1 /mnt mount -n -t cramfs -o loop /mnt/X11R6.img /usr/X11R6 mount -n -t cramfs -o loop /mnt/icewm.img /icewm ... ... and so on.

I can see all the related files like /usr/X11R6/bin/XFree86 ..., which indicates that mounting was successfull.

Starting one of these binaries gives a kernel oops. Except for the busybox binariess like ash, mount ... in the root.img which is mounted during boot time via grub (kernel /path/to/my/kernel root=/dev/ram, initrd /path/to/root.img).

Regards Anes

Reply to
Anes Lihovac

Well, tried 2.6.11.8 and it just worked.

Regards

Reply to
Anes Lihovac

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.