KVM not available on system bus

Michal Prívozník mprivozn at redhat.com
Sun Jan 26 15:11:34 UTC 2020


On 1/25/20 8:04 PM, Kasper Laudrup wrote:
> Hi libvirt-users,
> 
> Hope this is the right place to ask, otherwise please point me in the
> right direction.
> 
> I have a libvirt virtual machine running on the session bus that I would
> like to access through SSH. I have previously done so using X11
> forwarding and while it works, it is very sluggish with the connection I
> have.
> 
> I recently learned that you can access the virtual machine with
> virt-viewer through SSH which should perform much better. Unfortunately,
> my virtual machine is currently running on the session bus and that
> doesn't seem to be supported (please do correct if I'm wrong here).


Virt-viewer accepts -c URI argument. In your case you can do:

virt-viewer -c qemu:///session $domain

and it will show the domain's GUI.

> 
> It doesn't really matter to much if the VM is running on the system bus
> or session bus, I just prefer running things as a non privileged user
> for all the obvious reasons, so that's where I created the VM initially.

Domains running under the system connection doesn't necessarily run as
root:root. You can configure the UID:GID pair in /etc/libvirt/qemu.conf
(search user/group). Alternatively, each domain can be fine tuned to run
under different user. See https://libvirt.org/formatdomain.html#seclabel
for more info.

> 
> I tried to follow this guide to move my VM to the system bus.
> 
> Running `sudo virsh define vm.xml` fails with:
> 
> error: invalid argument: could not find capabilities for arch=x86_64
> domaintype=kvm
> 
> Digging a bit further into it, I figured out that the cause of the error
> message is, that I for some reason do not have KVM acceleration support
> when running VMs on the system bus (as root) running my VM on the
> session bus as a normal user (with the correct group membership) works
> fine.
> 
> Trying to launch virt-manager as root verifies that, as creating a new
> VM warns me that I do not have KVM support.
> 
> I'm fairly lost as to what to do from here. I must admit I remember
> struggling a bit to get the virtual machine to run with KVM support on
> the session bus in the first place, but have completely forgotten what
> the problem and resolution was.
> 
> I'm using Debian stable (Buster) with standard package versions:
> 
> QEMU 3.1.0
> libvirt 5.0.0
> 
> Any kind of help or input would be greatly appreciated.
> 
> Thanks a lot and kind regards,
> 
> Kasper Laudrup
> 
> 

First of all, you need to verify that the host is KVM capable. Try
running "virt-host-validate qemu" under root. It should do some basic
diagnostic and suggest resolution to possible errors.

Secondly, you want to make sure that /dev/kvm is accessible to the user
that you want to start your domain under. I'm using consolekit on my
desktop so whenever I log in it appends an ACL entry to the file so that
my user can run domains:

# getfacl /dev/kvm
getfacl: Removing leading '/' from absolute path names
# file: dev/kvm
# owner: root
# group: kvm
user::rw-
user:zippy:rw-
group::rw-
mask::rw-
other::---


After these steps, libvirt should detect KVM just fine.

Michal




More information about the libvirt-users mailing list