Virtual Network API for QEMU

Michal Privoznik mprivozn at redhat.com
Thu Apr 1 10:09:02 UTC 2021


On 3/31/21 10:39 PM, Radek Simko wrote:
> Thank you Laine and thanks Michal for the detailed explanation.
> 
> To add some (missing) context from my side:
> 
> I was attempting to virtualize Raspberry Pi on qemu via libvirt, where 
> my host machine is macOS (both qemu and libvirt installed via Homebrew) 
> and I while trying to set up the network I stumbled upon this:
> 
> |$ virsh -c 
> qemu:///system?socket=/usr/local/var/run/libvirt/libvirt-sock net-list 
> --all error: Failed to get the number of active networks error: this 
> function is not supported by the connection driver: virConnectNumOfNetworks|
> 
> This error in combination with the compatibility matrix made me think 
> it's just not supported.
> What is the right way of interpreting this error/state? Does the host OS 
> play a role in the compatibility?

Yes it does.

> 
> Are there any known limitations on macOS, or is this likely just a 
> broken/misconfigured installation on my side?

Oh, now I get it. You are not building the network (bridge) driver. And 
looking into meson.build I can see why:


# there's no use compiling the network driver without the libvirt
# daemon, nor compiling it for macOS, where it breaks the compile
if not get_option('driver_network').disabled() and 
conf.has('WITH_LIBVIRTD') and host_machine.system() != 'darwin'
   conf.set('WITH_NETWORK', 1)
endif

https://gitlab.com/libvirt/libvirt/-/blob/master/meson.build#L1649

But I'm not sure whether the comment is still true. I don't have any 
access to macOS so I can't confirm nor deny. But since you can, you can 
try changing that condition so that WITH_NETWORK is enabled and see 
whether compilation fails. On the other hand, I'm not sure whether our 
code would be able to talk to macOS and create briges/TAP devices/...

But unless you need something specific for RasPI (i.e. generic 
HTTP/HTTPS) is enough, then you don't need libvirt network - you can use 
<interface type='user'/>. You can even configure it's IP address should 
you need to do so:

https://libvirt.org/formatdomain.html#userspace-slirp-stack

Michal




More information about the libvirt-users mailing list