Hello Ottovio,

It's a bit of all of them.

On ARM systems you always need to tell it to load the kernel image. What happens then is very dependent upon how things have been built.

For example it's possible to build a combined image where the kernel and the initrd are rolled into one package, or more often they're kept as seperate images. In the case of ARMedslack the kernel and the initrd are kept seperate, this makes modifying things easier.

The initrd itself can do different things dependent on how it was designed.
For example the initrd on the Sheevaplug uClibc Debian system is the actual root filesystem, the same is true for the iConnect Debian uClibc system.

The ARMedslack initrd is only a initial ramdisk, which contains relevant modules (in your specific case the module for ext2fs) to allow the kernel to access the real root device. So the initrd is about giving the kernel the ability to access the real root device, so that it can mount the real root filesystem and continue the system bringup, read up on pivot root to find out more about this.

It should be possible to compile a kernel to include the necessary drivers to directly access the real root device, although I've not tried that yet. It is possible to combine a kernel and initrd into a single image, and thus only load one file into memory and boot that, but that's not the design in play here. It is possible to use an initrd as the real rootdev, but reducing it to fit into the flash memory available onboard most ARM devices requires a lot of work yet, and isn't really in scope for the straight port of Slackware to ARM.

I hope that covers your questions?
Thanks
Dave


On 16/08/2011 00:35, Ottavio wrote:
Hello, first time here, please be patient.

I apologise asking this question here, but the Qemu user forum is
currently down and the qemu-devel list is aimed at developers only.

I have converted the -Current Miniroot fs to a proper image on a Linux
host, made some minor corrections to ftstab and inittab, transferred
it to a flash drive and tried to boot it on a Windows host with this
line:

qemu-system-arm.exe  -drive file=slackware-arm-root,index=0,media=disk
-M versatilepb -m 256  -usb -k en-gb

but I got the error: "Kernel image must be specified".

So I downloaded zImage-versatile and initrd-versatile.gz and added this :

-kernel zImage-versatile -initrd initrd-versatile.gz -append
"root=/dev/sda1 rootfs=ext2"

and It works fine.

Why does qemu-system-arm need a kernel and a initrd? Is it possible to
boot an ARM image directly? Is this a limitation of the ARM
Architecture or of the volatile board emulation or of qemu-system-arm
altogether?

Then I'd have some more n00b questions but I'll ask them later.

Thank you




_______________________________________________
ARMedslack mailing list
[email protected]
http://lists.armedslack.org/mailman/listinfo/armedslack

Reply via email to