virt-managerfor work, running an ARM-emulation this way is my preferred setup.
The Fedora Wiki provides with a nice HowTo a good start. Unfortunately there is already a mentioning that
qemu-system-armgets wrong arguments and a script that functions as a (temporary) workaround should be used. This was a note for Fedora 13, I'm running Fedora 14. So, of course I tried to start my VM without the script first:
qemu-system-arm: -device lsi,id=scsi0,bus=pci.0,addr=0x5: Bus 'pci.0' not found
Ups. This really does not seem to work out of the box :-( Reading the script reveals that
bus=pci.0gets replaced by
bus=pci. Manually starting
qemu-system-armwith some adjusted
bus=parameters seems to start the VM.
Obviously there are loads of others hitting similar issues. For Fedora 14 bug 667345 was filed against
libvirtfor PPC emulation.
With help from
gdband manually executing
qemu-system-armand comparing it with
qemu-kvm, it seems that the virtual hardware is configured differently. Most noticible (for me) seems to be the name of the PCI-bus, on
pci.0. The function
qbus_find_recursive()can be used to breakpoint and to check the names of the available busses (
I would assume that at least the busses have the same names for emulated hardware, so either
bus=pci.0should work with any
qemu-*command. Unfortunately it is unclear to me how
qemu-kvmconstructs the virtual hardware, the
qemu-system-*are more transparent. Depending on the machine that is being emulated the hardware is 'connected' when the machine is created. The virtual hardware is constructed by
qemu-kvm/hw/*.cand depends on the type of machine that is created.
qemu-kvm/hw/*.cthere are some uses of
pcias name for the PCI-bus is passed. It seems easy to rename the PCI-busses to
pci.0. This change will break any existing scripts/tools that pass
bus=pcion the command line, so the solution is not the best. However, packages are temporary available in case someone wants to try this solution.
A post to the qemu-devel list will show if a patch for qemu, or rather libvirt is preferred.
Fixing the name of the PCI-bus is not the only thing I had to do before I could start my Fedora-ARM VM, though.
The emulated hardware
versatileabdoes not have an ISA-bus, therefore
-device isa-serialcan not work. The Serial device in the Virtual Machine needs to be removed. An alternative would be a
usb-serial, but at the moment,
virt-managerdoes not offer this option (you can probably configure it with
There are more limitations with the emulated
versatileabmachine. It can obviously not cope with the 512MB of RAM I gave it. The result was shown by
libvirtError: operation failed: could not query memory balloon allocationand in my
qemu: hardware error: pl011_read: Bad offset 101f1018Giving the machine only 256MB RAM instead of 512MB RAM seems to make this issue go away too.