
[...]
I tried the above but using the latest Raspbian Stretch Lite image instead of Arch: the guest comes up with no issues and offers serial console access, so that part works nicely. Yes, this might better fit as the kernel is based on Debian (=Raspbian) and arch uses a complete Different kernel. However I want to use Arch for different reasons, so I am going to try how to get It working better.
However, I notice that you are using '--network none' and so of course there is no network connectivity inside the guest. My own attempts at fixing this were unsuccessful, in that I can get a PCI device such as rtl8139 or even virtio-net-pci to be detected by the guest, but the corresponding drivers are not included in the kernel downloaded from the GitHub repository linked above; the versatilepb board's own integrated network device (smc91c111), on the other hand, seems not to support instantiation via -device and is thus not usable without adding hacks to libvirt. Did you manage to get network functionality working some other way? No, I did not get network going yet. I saw the same two options, either hack libvirt to be able to deal with default NIC or add virtio support to the kernel.
Since you already need a custom kernel to boot the image with QEMU, and you also use an approximation of the actual hardware rather than a faithful reproduction, I think it would make sense to go one step further and include VirtIO drivers in the kernel image. Ideal solution would be an arch package with a kernel that supports both smc91c111 and virtio to be flexible. Lets see if I get it working, but being able to work on it only in my spare time it will take a while. However the patches are the basic to keep on working on a custom kernel :=)
Stefan Schallenberg