Skip to content

Intel GVT_g on Qubes

Ivan Kardykov edited this page Jul 7, 2020 · 11 revisions

Intel GPU mediated pass-through technology allows to share GPU hardware between host and virtual machines. This experimental feature depends on modified Qubes OS core packages. The modification may increase vulnerability of the system, so use it with caution. Here is a short description how to setup the feature on Qubes OS with sources from repository.

Requirements

Our 'proven to work' configuration is limited to Intel Kaby/Whiskey Lake and experimental Qubes r4.1, but supported xengt platforms also work fine.

Configure dom0

Build following packages and replace installed in Dom0:

  • xen
  • kernel
  • libvirt
  • xen-hvm-stubdom-linux

Add the following option to GRUB_CMDLINE_LINUX in /etc/default/grub:

  • i915.enable_gvt=1 - to enable GVT-g;

Sometimes could be helpful to disable IOMMU to Intel Graphic Device (was default with Qubes 4.0):

  • iommu=no-igfx parameter to GRUB_CMDLINE_XEN_DEFAULT;

Add force_drivers+=" xengt " to /etc/dracut.conf if xengt module wasn't loaded while booting gvt-enabled domU.

Don't forget to regenerate initrd image (dracut -f) and recreate grub menu (grub2-mkconfig -o /boot/grub2/grub.cfg).

Modify domU template

Clone an existing fedora template and customize its configuration:

  • build and install xorg-dummy-egl or xorg-modesetting-qbs package;
  • replace /etc/X11/xorg-qubes.conf.template with xorg-qubes-egl.conf.template or xorg-modesetting-qbs.conf.template to enable hardware accelerated driver;

Create GPU VM

Create AppVM based on new template and make settings:

  • switch VM mode to HVM;
  • setup at least 1.5G memory;
  • disable "Include in memory balancing" option;
  • qvm-prefs VMNAME kernelopts i915.modeset=1;
  • qvm-features VMNAME video-model xengt

Known issues

Set maximum value at Total Graphic Memory in UEFI settings.

Screenshots

glmark mpv

Based on