Frugalware on ARM with QEMU

I started to port Frugalware on ARM some weeks ago.

We will see how to test this port using Qemu to emulate an ARM platform.

For now, the only way to install Frugalware on this architecture is to perform a chroot installation.
But to do so, you need another distribution (on arm) with pacman-g2 installed which is not convenient.

I made a little script to create a Qemu image with a base install properly configured from any other non-arm architecture.
You can download it here. So we can make the image :

chmod +x
sudo ./

It generates a file named initrd-arm.img.

Note: – You can specify the size of the generated image by specifying the shell variable SIZE.
For exemple :

sudo SIZE=500 ./

will create a 500 Mo image.

The script also copy the kernel image to the current directory. It ‘ll be used by Qemu.
You can also see that the script install an alternate kernel than the one from fwonarm repository.
The reason is that the fwonarm kernel is configured to be used with a Marvell Kirkwood platform (ex: Sheevaplug, Guruplug, Seagate Dockstar, etc.) which is the one I use for my real hardware. But Qemu can’t emulate this board, so we ‘ll use the VersatilePB one instead. The kernel for this platform can be found here.

Now we can start the Qemu arm machine with :

qemu-system-arm -M versatilepb -m 128 -kernel vmlinuz-2.6.39-versatile-fw2 -hda initrd-arm.img -append "root=/dev/sda ro quiet"

The machine will automatically reboot twice before you can get a shell.
(Pacman-g2 can’t run any .install scripts when creating the image so I create a script, executed at the first boot, to finish the configuration).

Log with user root, no password needed.

Edit: Update script and url since merge on current

2 thoughts on “Frugalware on ARM with QEMU

  1. You have to change the qemu line to start the machine because the kernel image has changed from vmlinuz-2.6.39-versatile-fw2 to vmlinuz-3.1-versatile-fw5.
    After that, the image starts without problems 😉

Leave a Reply

Your email address will not be published. Required fields are marked *