VirtManager setup - help me replace VirtualBox

TLDR:

  • How to get rid of the WARN in virt-host-validate qemu
  • How to activate C&P from Host to VM

Long Version:

So, after many months in which I merely tolerated my use of VirtualBox it is finally time to switch over to VirtManager. This will be my fourth time that I try this, but my first time with the help of the allmighty EOS forum.
So, basic information: AMD Zen 4 CPU, current EOS, Linux as kernel, boots with grub.

What I did so far:

lscpu | grep -i Virtualization
zgrep CONFIG_KVM /proc/config.gz
sudo pacman -S qemu-full qemu-img libvirt virt-install virt-manager virt-viewer edk2-ovmf dnsmasq swtpm guestfs-tools libosinfo tuned libguestfs
sudo systemctl enable libvirtd.service
sudo virsh net-autostart default
  • Checked the success:
sudo virt-host-validate qemu
 QEMU: Checking for hardware virtualization                                 : PASS
 QEMU: Checking if device '/dev/kvm' exists                                 : PASS
 QEMU: Checking if device '/dev/kvm' is accessible                          : PASS
 QEMU: Checking if device '/dev/vhost-net' exists                           : PASS
 QEMU: Checking if device '/dev/net/tun' exists                             : PASS
 QEMU: Checking for cgroup 'cpu' controller support                         : PASS
 QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
 QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
 QEMU: Checking for cgroup 'memory' controller support                      : PASS
 QEMU: Checking for cgroup 'devices' controller support                     : PASS
 QEMU: Checking for cgroup 'blkio' controller support                       : PASS
 QEMU: Checking for device assignment IOMMU support                         : PASS
 QEMU: Checking if IOMMU is enabled by kernel                               : PASS
 QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)

  • Tried (and failed) to get rid of the WARN:
    • Read this: https://libvirt.org/kbase/launch_security_sev.html
    • And this: https://bugzilla.redhat.com/show_bug.cgi?id=1850351#c5
    • Modifed kernel parameters and regenerated grub.config:
      # GRUB boot loader configuration GRUB_DEFAULT='0' GRUB_TIMEOUT='5' GRUB_DISTRIBUTOR='EndeavourOS' GRUB_CMDLINE_LINUX_DEFAULT='nowatchdog nvme_load=YES loglevel=3 zswap.enabled=0 amd-pstate=active' GRUB_CMDLINE_LINUX="mem_encrypt=on kvm_amd.sev=1"
      sudo grub-mkconfig -o /boot/grub/grub.cfg
    • Checked result:
      cat /proc/cmdline BOOT_IMAGE=/@/boot/vmlinuz-linux root=UUID=178ba18b-3faa-4b38-b7e5-5b0f5d2f285c rw rootflags=subvol=@ mem_encrypt=on kvm_amd.sev=1 nowatchdog nvme_load=YES loglevel=3 zswap.enabled=0 amd-pstate=active
    • Added sev conf and rebooted:
      echo "options kvm_amd sev=1" | sudo tee /etc/modprobe.d/amd-sev.conf
      echo "options kvm_amd sev=1" | sudo tee /etc/modprobe.d/sev.conf
    • checked outcome:
      cat /sys/module/kvm_amd/parameters/sev N
      sudo virt-host-validate qemu
      QEMU: Checking for hardware virtualization                                 : PASS
      QEMU: Checking if device '/dev/kvm' exists                                 : PASS
      QEMU: Checking if device '/dev/kvm' is accessible                          : PASS
      QEMU: Checking if device '/dev/vhost-net' exists                           : PASS
      QEMU: Checking if device '/dev/net/tun' exists                             : PASS
      QEMU: Checking for cgroup 'cpu' controller support                         : PASS
      QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
      QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
      QEMU: Checking for cgroup 'memory' controller support                      : PASS
      QEMU: Checking for cgroup 'devices' controller support                     : PASS
      QEMU: Checking for cgroup 'blkio' controller support                       : PASS
      QEMU: Checking for device assignment IOMMU support                         : PASS
      QEMU: Checking if IOMMU is enabled by kernel                               : PASS
      QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)```
      
  • At this point I got a bit frustrated and needed a break. And after a meal I decided "screw the warning, let’s go Arch!
    So I started with the installation of an Arch VM - so far so good, used the “lazy” way arch-install and was greeted with the login of the Arch shell - GREAT, success. But then the next source of frustration hit me: Copy-Paste from the Host to the VM does not work. Very annoying! This is a functionality that - imho - should be either on by default or easily configured, but this seems not to be the case.
    So I read a bit about it and installed spice-vdagentd on both the host and the VM and ensured it uses SPICE, but still can’t C&P…
    Got even more frustrated and started to give up. Had a good night sleep, woke up and found my willpower again. Asking NOW for help is the way to go!

More information:

sudo inxi -zF
System:
  Kernel: 6.14.2-arch1-1 arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.3.4 Distro: EndeavourOS
Machine:
  Type: Desktop Mobo: Micro-Star model: MAG X570 TOMAHAWK WIFI (MS-7C84)
    v: 1.0 serial: <filter> UEFI: American Megatrends LLC. v: 1.F0
    date: 10/12/2023
CPU:
  Info: 16-core model: AMD Ryzen 9 5950X bits: 64 type: MT MCP cache:
    L2: 8 MiB
  Speed (MHz): avg: 3596 min/max: 550/5086 cores: 1: 3596 2: 3596 3: 3596
    4: 3596 5: 3596 6: 3596 7: 3596 8: 3596 9: 3596 10: 3596 11: 3596 12: 3596
    13: 3596 14: 3596 15: 3596 16: 3596 17: 3596 18: 3596 19: 3596 20: 3596
    21: 3596 22: 3596 23: 3596 24: 3596 25: 3596 26: 3596 27: 3596 28: 3596
    29: 3596 30: 3596 31: 3596 32: 3596
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT
    / 6900 XT] driver: amdgpu v: kernel
  Display: unspecified server: X.Org v: 21.1.16 with: Xwayland v: 24.1.6
    driver: X: loaded: amdgpu unloaded: modesetting,radeon dri: radeonsi
    gpu: amdgpu resolution: 1: N/A 2: N/A
  API: EGL v: 1.5 drivers: radeonsi,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.0.3-arch1.1
    renderer: AMD Radeon RX 6800 XT (radeonsi navi21 LLVM 19.1.7 DRM 3.61
    6.14.2-arch1-1)
  API: Vulkan v: 1.4.309 drivers: N/A surfaces: xcb,xlib
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: lact wl: wayland-info
    x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 21/23 HDMI/DP Audio
    driver: snd_hda_intel
  Device-2: Thesycon System & Consulting GmbH DX3 Pro+ driver: snd-usb-audio
    type: USB
  API: ALSA v: k6.14.2-arch1-1 status: kernel-api
Network:
  Device-1: Mellanox MT27500 Family [ConnectX-3] driver: mlx4_core
  IF: enp36s0 state: up speed: 10000 Mbps duplex: full mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE driver: r8169
  IF: enp38s0 state: down mac: <filter>
  Device-3: Intel Wi-Fi 6 AX200 driver: iwlwifi
  IF: wlan0 state: down mac: <filter>
  IF-ID-1: virbr0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth driver: btusb type: USB
  Report: btmgmt ID: hci0 rfk-id: 2 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: <filter> bt-v: 5.2
Drives:
  Local Storage: total: 18.66 TiB used: 10.92 TiB (58.5%)
  ID-1: /dev/nvme0n1 vendor: Seagate model: FireCuda 530 ZP2000GM30013
    size: 1.82 TiB
  ID-2: /dev/nvme1n1 vendor: Seagate model: FireCuda 530 ZP2000GM30013
    size: 1.82 TiB
  ID-3: /dev/sda vendor: Samsung model: SSD 860 PRO 512GB size: 476.94 GiB
  ID-4: /dev/sdb vendor: Seagate model: ST16000NM001G-2KK103 size: 14.55 TiB
Partition:
  ID-1: / size: 1.82 TiB used: 1.58 TiB (86.9%) fs: btrfs dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 998 MiB used: 576 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-3: /home size: 1.82 TiB used: 1.58 TiB (86.9%) fs: btrfs
    dev: /dev/nvme0n1p2
  ID-4: /var/log size: 1.82 TiB used: 1.58 TiB (86.9%) fs: btrfs
    dev: /dev/nvme0n1p2
Swap:
  ID-1: swap-1 type: zram size: 16 GiB used: 11.3 MiB (0.1%) dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 39.0 C mobo: 37.0 C gpu: amdgpu temp: 69.0 C
  Fan Speeds (rpm): fan-1: 0 fan-2: 414 fan-3: 365 fan-4: 0 fan-5: 0
    fan-6: 0 fan-7: 0 gpu: amdgpu fan: 0
Info:
  Memory: total: 64 GiB available: 62.71 GiB used: 9.81 GiB (15.6%)
  Processes: 579 Uptime: 2h 37m Shell: Sudo inxi: 3.3.37

If you haven’t tried Boxes yet, I highly recommend it. Since using it, I’ve never looked back. It’s an excellent VM solution from the GNOME project.

1 Like

Ryzen 9 5950X doesn’t support SEV.

1 Like

Thank you for the suggestion, but for now I will stick to VirtManager and try to make it work.

That explains that, ty! So for now I will ignore the WARN, which leaves only the C&P.

1 Like

Installing spice-vdagent should be sufficent. Did you try drag and drop? Dnd works for me in context of files/archives, not dirs. Cnp works for text clipboard content.

1 Like

This actually did the trick for me, after I read a bit more about it. The reading was the solution, though.
vdagent was not installed after the direct installation of Arch. I just installed KDE via manually typing all the packages, booted up, installed vdagent and activated vdagentd and voila - here we go!
Will not mark this as a solution, though, because I guess there will be more “stupid me” questions! TYVM!

1 Like

So, here is my next issue that I have:
I have installed some VMs based on Arch. They all start from the same “baseline”, so to speak. I installed vanilla arch, added yay, KDE, notepadqq and librewolf. From there on I made some config stuff and use that to deploy other VMs. So for each VM I need I log into this baseline VM, do a full upgrade and than I copy this to add other stuff for the respective VM. But I have an issue with these VMs: When they idle for a while and I get back to them I am greeted by a black screen inside the virtmanager. The graph inisde virtmanager shows no usage at all, but the state is “running”. Nevertheless the only way to get access again to the VM is to select “Force off” and then start it again. This of course disruptes all my work in the respective VM drastically. Any idea what the reason behind this behaviour can be?

Do you have power management turned off? Maybe the system suspended, which is a real PITA with VMs. It’s one of the first things I disable when building a VM.