Linaro QEMU

Linaro QEMU (qemu-linaro) is a version of QEMU which broadly tracks upstream's trunk, but which adds some ARM specific improvements. In common with the Linaro kernel tree policy, we do not include anything which we do not expect to be able to push to upstream at some point. We make releases of this tree between monthly and quarterly. Note that since we do track upstream trunk you should be cautious about including a monthly release in a shipping product without further testing.

At the moment the major changes over upstream are:

  • omap3 support (from the qemu-meego tree)

Unless you need the OMAP3 support specifically, you're probably better off using upstream QEMU, as we have pushed our other fixes upstream, and our policy for future QEMU work is 'upstream first'. NB: qemu-linaro does not include any of the GLES2 or skinning work in qemu-meego.

Work in progress

Large scale project work is tracked in JIRA. Bugs can be filed under the Launchpad qemu-linaro project.

At the moment the primary focus is support for KVM, under the auspices of the Virtualization team.

Note that since Linaro Working Groups focus primarily with interaction with upstreams, much work done by Linaro on QEMU is submitted directly to upstream QEMU as patch series which are then applied. These will then appear in qemu-linaro as it regularly tracks the upstream development sources.


Linaro QEMU releases on the same schedule as other Toolchain working group components: monthly. We may skip a monthly release if there is no significant change warranting an update. We provide releases as source tarballs which are available from Launchpad; Ubuntu packages are also produced and provided via the Linaro Tools PPA.

Instructions on how to prepare a release are here.

git repository layout

qemu-linaro lives in the Linaro git repository:;a=summary

The master branch is the most recent version of qemu-linaro; it does not rebase and should be suitable for pulling/merging (ie for most people).

The rebasing branch is the same set of files, but the git history is laid out as a clean set of patches which frequently rebase to a newer upstream commit. (master is actually automatically maintained from rebasing using stgit's "stg publish" command.) If you want to see a clean history and are willing to accept the disruption involved when the branch rebases, you can use this branch.

The upstream branch is simply upstream qemu.

Useful Information

KVM Integration Quickstart Guide

WorkingGroups/ToolChain/QEMU (last modified 2013-09-06 10:10:49)