From Fedora Project Wiki
A screen shot of Fedora 18 for ARM on QEMU .

Versatile Express

The Versatile Express family of development platforms provides users with a modular board design for use testing different ARM SOC design implementations. QEMU provides the ability to emulate ARM Versatile Express for Cortex-A9 on your desktop computer for easy experimentation!

Technical Specifications

  • ARM Versatile Express for Cortex-A9
  • 1GB RAM
  • 10/100Mbit/s Ethernet

For more information on Versatile Express or QEMU visit their websites.

Running Fedora through QEMU

This page will give you detailed instructions for running Fedora 18 through QEMU. The tarball includes all that is needed to boot your system including the root filesystem image and the pre-extracted kernel and initramfs. Also, included for your convenience is a script to boot using a serial connection or the XFCE desktop. WARNING: If you will be doing development with this image then it is recommended that you add 10-15GB to the root partition before booting.

Download the image

There are two Versatile Express images available for use with QEMU, a hardware floating point (armhfp), and a software floating point(arm). If you are unsure of which to choose, the hard floating point image is recommended, and will be used in the provided examples below (adjust accordingly for 'arm'):

Download and verify the checksum:

sha256sum --check Fedora-18-armhfp-Images-CHECKSUM

Preparing the Image

Linux Users

Extract the tarball using the graphical user interface or the following commandline option:

tar xvJf Fedora-18-vexpress-xfce-armhfp.tar.xz

Windows Users

QEMU is also available on Windows but is not yet covered in this guide. For more information on running QEMU on Windows please visit their website.

Using Fedora through QEMU

First you will need to install the ARM QEMU package (this example is using Fedora)

yum install qemu-system-arm

Once installed, change to the boot directory of the extracted kernel package:

cd Fedora-18-vexpress-xfce-armhfp/boot/

From there execute the provided script, choosing to boot with or without a graphical interface.

./boot-vexpress -h
Usage: ./boot-vexpress [--gui] --kernel=vmlinuz... --ramfs=initramfs --image=fsimage [--dtb=vexpress.dtb]

For serial console:

 ./boot-vexpress --kernel=vmlinuz-3.6.10-8.fc18.armv7hl \
    --ramfs=initramfs-3.6.10-8.fc18.armv7hl.img \

For XFCE Desktop:

 ./boot-vexpress --kernel=vmlinuz-3.6.10-8.fc18.armv7hl \
    --ramfs=initramfs-3.6.10-8.fc18.armv7hl.img \
    --image=../Fedora-18-vexpress-xfce-armhfp.img \

The default root password is "fedora". This should be changed immediately.

Expanding the Disk Image

You can easily expand the root partition of the disk image using qemu-img.

For example to increase the image size by 10GB you can issue:

 qemu-img resize ./file.img +10G

Doing this before booting the image will cause the filesystem to be automatically resized.

If you have already booted the system then you will need to do the following:

  • Enlarge the disk as before:
qemu-img resize ./file.img +10G
  • Boot into the guest and install the rootfs-resize application.
yum install -y rootfs-resize
  • Enable the service to start at boot
systemctl enable rootfs-resize.service
  • Create an empty file in the root directory named '.rootfs-repartition'
touch /.rootfs-repartition
  • Reboot your guest
  • Your system will automatically reboot again to complete the resize (this is not automatic on QEMU, and you will need to manually start the guest again).

Release Notes

  • Images were composed using tools in Fedora 17 due to continuing work on Fedora 18.
  • When upgrading to the 3.7.X kernel you will require a device tree binary (.dtb) file for the system to boot. The provided 'boot-vexpress' script allows for the optional use of a 'dtb' file and will give a warning when booting kernels above 3.6.x.
    • The XFCE Desktop is not currently available when using the 3.7.x kernel.

Additional Support

There are Fedora ARM users all around the globe - if you need assistance, would like to provide feedback or contribute to Fedora ARM please visit us on the IRC - we can be found in #fedora-arm on Freenode. You can also contact us on the mailing list -