Can not get KVM to show in virt-manager

I am not sure of what to do next. When I start up virt-manager, it has an option for LXC, but not KVM.

I have verified the KVM module is loaded. I have another partition with Kubuntu 20.04 that virt-manager shows KVM so it is not a bios issue.

zgrep CONFIG_KVM /proc/config.gz
CONFIG_KVM_GUEST=y

CONFIG_KVM_DEBUG_FS is not set

CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
CONFIG_KVM_MMU_AUDIT=y

installed the following packages
sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat
sudo pacman -S ebtables iptables

Started libvirtd
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service

lsmod | grep kvm
kvm_intel 323584 0
kvm 802816 1 kvm_intel
irqbypass 16384 1 kvm

LC_ALL=C lscpu | grep Virtualization
Virtualization: VT-x

I am not sure what to do next. Been following the instructions in the arch wiki. KVM will just not show in virt-manager.

https://wiki.archlinux.org/index.php/KVM

I do get this from journalctl -f

Sep 25 03:22:11 M libvirtd[6374]: hostname: M
Sep 25 03:22:11 M libvirtd[6374]: operation failed: pool β€˜default’ already exists with uuid 15568dbf-ed6a-4fae-8acb-b7b1b8d6db6f
Sep 25 03:22:11 M libvirtd[6374]: this function is not supported by the connection driver: virConnectGetAllDomainStats

Tried deleting the default pool and recreating it. No luck.

Hi,

Can you give the output of the following command:
sudo systemctl status libvirtd

I have switched from Virtualbox to Virtual Machine Manager quite recently and I have just followed the Arch Wiki: libvirt - ArchWiki

You can add your user account to the libvirt group to have a passwordless access with the following command:
sudo gpasswd -a $USER libvirt

I have a similar error in journalctl but it seems harmless:
libvirtd[5338]: operation failed: pool 'default' already exists with uuid 24973381-5d51-499d-b572-ce83ff47e175

Both system level and user session are working properly.

Hi @vcottineau, missed your reply.

So I have two Manjaro systems. An older one that kvm does work on. And a newer install which is the one I mentioned above.

This is the working, older install:

 Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: disabled)
 Active: active (running) since Mon 2020-10-12 11:43:53 PDT; 4s ago
TriggeredBy: ● libvirtd.socket
         ● libvirtd-ro.socket
         ● libvirtd-admin.socket
   Docs: man:libvirtd(8)
         https://libvirt.org
   Main PID: 86976 (libvirtd)
  Tasks: 19 (limit: 32768)
 Memory: 53.4M
 CGroup: /system.slice/libvirtd.service
         β”œβ”€ 1453 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-scrip>
         β”œβ”€ 1454 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-scrip>
         └─86976 /usr/bin/libvirtd --timeout 120

Oct 12 11:43:53 ManjaroKDE systemd[1]: This usually indicates unclean termination of a previous run, or service imp>
Oct 12 11:43:53 ManjaroKDE systemd[1]: libvirtd.service: Found left-over process 1454 (dnsmasq) in control group wh>
Oct 12 11:43:53 ManjaroKDE systemd[1]: This usually indicates unclean termination of a previous run, or service imp>
Oct 12 11:43:53 ManjaroKDE systemd[1]: Started Virtualization daemon.
Oct 12 11:43:53 ManjaroKDE dnsmasq[1453]: read /etc/hosts - 1 addresses
Oct 12 11:43:53 ManjaroKDE dnsmasq[1453]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Oct 12 11:43:53 ManjaroKDE dnsmasq-dhcp[1453]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Oct 12 11:43:53 ManjaroKDE libvirtd[86976]: libvirt version: 6.5.0

This is the newer, not working install:

● libvirtd.service - Virtualization daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: disabled)
     Active: active (running) since Mon 2020-10-12 11:54:03 PDT; 7min ago
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd-ro.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 790 (libvirtd)
      Tasks: 17 (limit: 32768)
     Memory: 23.0M
     CGroup: /system.slice/libvirtd.service
             └─790 /usr/bin/libvirtd --timeout 120

Oct 12 11:54:03 Monkey systemd[1]: Started Virtualization daemon.
Oct 12 12:00:27 M libvirtd[790]: libvirt version: 6.5.0
Oct 12 12:00:27 M libvirtd[790]: hostname: M
Oct 12 12:00:27 M libvirtd[790]: operation failed: pool 'default' already exists with uuid 15568dbf-ed6a-4fae-8acb-b7b1b8d6db6f
Oct 12 12:00:27 M libvirtd[790]: this function is not supported by the connection driver: virConnectGetAllDomainStats

Noticed that dnsmasq was being referenced by working machine, but not the not working machine. So I tried starting it and restarting libvirtd. No result.

Alright, finally found the solution.

In virt-manager click the File option, then β€˜Add Connection’.
You will get a small dialog, make sure hypervisor is selected to QEMU/KVM and click connect. I was able to keep the options empty by default, but that may have been due to adding my user to the libvirt group.
QEMU/KVM will now show up that you can add a vm to.

I think may not have had a package installed and so virt-manager skipped setting this up for me.

3 Likes

Thank you for sharing the solution!

1 Like

thansk a lot, this works for me!.

1 Like