GPU Passthrough of CPU integrated graphics

simocold

New Member
Nov 5, 2017
1
1
1
42
Hello everyone,
I know that there are a lot of threads covering this topic but I could not find any that solve my issues.

I would like to run Proxmox headless and passthrough the iGPU (and the capability of displaying the output on a monitor) to one VM. I also tried to use Intel igvt-g but unfortunately this does not provide a local display output.

I am trying to do this using Proxmox 5.1-35 .

My HW is as follows:
CPU : Intel i3-7100T
- Intel® Virtualization Technology (VT-x) ‡ Yes
- Intel® Virtualization Technology for Directed I/O (VT-d) ‡ Yes
- Intel® VT-x with Extended Page Tables (EPT) ‡ Yes
MB : Gigabyte ga-z270
RAM : HyperX Fury Black DDR4 2133MHz 16GB (2x8GB)

In the BIOS I have enabled the following options:
VT-d [Enabled]
Graphics Boot [IGFX]

I have done the following steps which I copy here as a kind of "how-to" if someone is willing to try and replicate them.

Load kernel modules, blacklist modules and assign (i)GPU to vfio:

* Load kernel modules:

Edit "/etc/initramfs-tools/modules" :

Code:
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax:  module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
#
#===============================
# Modules for igvt-g
#===============================
#kvmgt
#xengt
#vfio-iommu-type1
#vfio-mdev
#
#vfio
#vfio_pci
#vfio_virqfd
#===============================
# End of Modules for igvt-g
#===============================
# Modules for passthrough
#===============================
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
#===============================
# End of Modules for passthrough
#===============================


* Blacklist modules:

Execute "lspci -nv | grep VGA"
my output is:
Code:
    00:02.0 0300: 8086:5912 (rev 04) (prog-if 00 [VGA controller])

save the bus/function numbers (ie : 00:02.0) and ID (ie : 8086:5912) because they will be used in the next steps.

Execute "lspci -nks <bus/function>" (ie : "lspci -nks 00:02.0")
my output is:
Code:
    00:02.0 0300: 8086:5912 (rev 04)
        Subsystem: 1458:d000
        Kernel driver in use: i915
        Kernel modules: i915


NB: The following step can be avoided if GRUB command line is modified to include the list of blacklisted
modules. I tried both methods but in the setup I am running right now I do not use pve-blacklist to
blacklist modules.

Edit "/etc/modprobe.d/pve-blacklist.conf" and add the 'kernel driver in use' from the previous command.

Code:
# This file contains a list of modules which are not supported by Proxmox VE

blacklist nvidiafb

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915


* Assign the GPU to vfio:

Edit "/etc/modprobe.d/vfio.conf" and add the following line where ids=<ID> from previous step.
I also had to specify "disable_vga=1" otherwise I will not see a IOMMU group containing device 00:02 .

Code:
options vfio-pci ids=8086:5912 disable_vga=1



Generate new initramfs:

make a backup copy of the current initramfs located in /boot (ie: initrd.img-4.13.4-1-pve) and execute:

update-initramfs -u -t

rename the newly generated initramfs to something different.
I generated 2 initramfs for each configuration of "/etc/initramfs-tools/modules" (passthrough or igvt-g) :
- one containing the modules for the passthrough ( initrd.img-4.13.4-1-pve-passthrough )
- one containing the modules for kvmgt and igvt-g ( initrd.img-4.13.4-1-pve-kvmgt )



Modify GRUB to enable IOMMU and blacklist drivers:

Edit "/etc/grub.d/40_custom" (examples of menuentries can be found in "/boot/grub/grub.cfg")
mine looks like the following:

Code:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Proxmox Virtual Environment GNU/Linux KVMGT' --class proxmox --class kvmgt --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c468e2be-a6ac-41bf-a123-aeeb72540bd8' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod lvm
        insmod ext2
        set root='lvmid/AuF2io-Ungg-417W-RRsC-7JEQ-T1BP-rTnuFa/CilH8U-YJyL-u8j8-drMl-dtyB-NfBw-a75qu0'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/AuF2io-Ungg-417W-RRsC-7JEQ-T1BP-rTnuFa/CilH8U-YJyL-u8j8-drMl-dtyB-NfBw-a75qu0'  c468e2be-a6ac-41bf-a123-aeeb72540bd8
        else
          search --no-floppy --fs-uuid --set=root c468e2be-a6ac-41bf-a123-aeeb72540bd8
        fi
        echo    'Loading Linux 4.13.4-1-pve ...'
        linux   /boot/vmlinuz-4.13.4-1-pve root=/dev/mapper/pve-root ro i915.enable_gvt=1 kvm.ignore_msrs=1 intel_iommu=igfx_off drm.debug=0
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-4.13.4-1-pve-kvmgt
}
menuentry 'Proxmox Virtual Environment GNU/Linux Passthrough' --class proxmox --class kvmgt --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c468e2be-a6ac-41bf-a123-aeeb72540bd8' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod lvm
        insmod ext2
        set root='lvmid/AuF2io-Ungg-417W-RRsC-7JEQ-T1BP-rTnuFa/CilH8U-YJyL-u8j8-drMl-dtyB-NfBw-a75qu0'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/AuF2io-Ungg-417W-RRsC-7JEQ-T1BP-rTnuFa/CilH8U-YJyL-u8j8-drMl-dtyB-NfBw-a75qu0'  c468e2be-a6ac-41bf-a123-aeeb72540bd8
        else
          search --no-floppy --fs-uuid --set=root c468e2be-a6ac-41bf-a123-aeeb72540bd8
        fi
        echo    'Loading Linux 4.13.4-1-pve ...'
        linux   /boot/vmlinuz-4.13.4-1-pve root=/dev/mapper/pve-root ro i915.enable_gvt=1 kvm.ignore_msrs=1 intel_iommu=on drm.debug=0 video=efifb:off modprobe.blacklist=i915,snd_hda_intel,snd_hda_codec_hdmi
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-4.13.4-1-pve-passthrough
}


Edit "/etc/default/grub" and change GRUB_DEFAULT to match the menuentry that should be executed by default

Code:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="Proxmox Virtual Environment GNU/Linux Passthrough"
#GRUB_DEFAULT="Proxmox Virtual Environment GNU/Linux KVMGT"
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

# Disable os-prober, it might add menu entries for each guest
GRUB_DISABLE_OS_PROBER=true

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"


run "update-grub" and reboot the system.



Check Passthrough or igvt-g KVMGT:

On the monitor are displayed the BIOS startup screen and the GRUB up to
Code:
   'Loading Linux 4.13.4-1-pve ...'
   'Loading initial ramdisk ...'
then nothing else is displayed.


Execute "dmesg|grep -e DMAR -e IOMMU"
I get the following output:

Code:
[    0.000000] ACPI: DMAR 0x00000000CC4703A0 0000A8 (v01 INTEL  KBL      00000001 INTL 00000001)
[    0.000000] DMAR: IOMMU enabled
[    0.033493] DMAR: Host address width 39
[    0.033495] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.033501] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[    0.033505] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.033508] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.033511] DMAR: RMRR base: 0x000000cbf2b000 end: 0x000000cbf4afff
[    0.033514] DMAR: RMRR base: 0x000000cd800000 end: 0x000000cfffffff
[    0.033517] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

[    0.033519] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.033520] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.034871] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.553071] DMAR: No ATSR found
[    0.553289] DMAR: dmar0: Using Queued invalidation
[    0.553414] DMAR: dmar1: Using Queued invalidation
[    0.553627] DMAR: Setting RMRR:
[    0.553656] DMAR: Setting identity map for device 0000:00:02.0 [0xcd800000 - 0xcfffffff]
[    0.553675] DMAR: Setting identity map for device 0000:00:14.0 [0xcbf2b000 - 0xcbf4afff]
[    0.553682] DMAR: Prepare 0-16MiB unity mapping for LPC
[    0.553695] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[    0.553815] DMAR: Intel(R) Virtualization Technology for Directed I/O


Execute "dmesg | grep -i vfio"
I get the following output:

Code:
[    1.409987] VFIO - User Level meta-driver version: 0.3
[    1.412348] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    1.432227] vfio_pci: add [8086:5912[ffff:ffff]] class 0x000000/00000000


Execute "find /sys/kernel/iommu_groups/ -type l"
I get the following output where the VGA (00:02) is in his own group (1):

Code:
/sys/kernel/iommu_groups/17/devices/0000:00:1f.6
/sys/kernel/iommu_groups/7/devices/0000:00:1b.2
/sys/kernel/iommu_groups/15/devices/0000:00:1d.0
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
/sys/kernel/iommu_groups/13/devices/0000:00:1c.6
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/11/devices/0000:00:1c.4
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
/sys/kernel/iommu_groups/18/devices/0000:06:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:1b.4
/sys/kernel/iommu_groups/16/devices/0000:00:1f.3
/sys/kernel/iommu_groups/16/devices/0000:00:1f.4
/sys/kernel/iommu_groups/16/devices/0000:00:1f.2
/sys/kernel/iommu_groups/16/devices/0000:00:1f.0
/sys/kernel/iommu_groups/6/devices/0000:00:1b.0
/sys/kernel/iommu_groups/14/devices/0000:00:1c.7
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
/sys/kernel/iommu_groups/12/devices/0000:00:1c.5
/sys/kernel/iommu_groups/2/devices/0000:00:08.0
/sys/kernel/iommu_groups/10/devices/0000:00:1c.2
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/19/devices/0000:07:00.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.0


Execute "lspci -nvks <bus/function>" (ie : "lspci -nvks 00:02.0"), now the kernel driver in use is "vfio-pci"

Code:
00:02.0 0300: 8086:5912 (rev 04) (prog-if 00 [VGA controller])
        Subsystem: 1458:d000
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at f6000000 (64-bit, non-prefetchable) [size=16M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at f000 [size=64]
        [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
        Capabilities: [ac] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Capabilities: [100] Process Address Space ID (PASID)
        Capabilities: [200] Address Translation Service (ATS)
        Capabilities: [300] Page Request Interface (PRI)
        Kernel driver in use: vfio-pci
        Kernel modules: i915



Only for igvt-g KVMGT:

More comprehensive tutorial is on github (
\intel\gvt-linux\wiki\GVTg_Setup_Guide#53-create-vgpu-kvmgt-only
)
but for Proxmox many steps are not necessary.

ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

I see the following two types:
i915-GVTg_V5_4 i915-GVTg_V5_8

If I look at the info for the 2 types:
"cat i915-GVTg_V5_4/description"
returns
low_gm_size: 128MB
high_gm_size: 512MB
fence: 4
resolution: 1920x1200
weight: 4

generate an UUID, an example can be "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" .
Execute:

echo "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" > /sys/bus/pci/devices/0000\:00\:02.0/mdev_supported_types/i915-GVTg_V5_4/create



Setup VM:

Setup a VM as desired and then edit "/etc/pve/qemu-server/<vmid>.conf"

- Passthrough with OVMF:

vi /etc/pve/qemu-server/101.conf
mine looks like:

Code:
bios: ovmf
#hostpci0: 00:02,pcie=1,romfile=kbl_dmc_ver1_01.bin,x-vga=1
hostpci0: 00:02,pcie=1,x-vga=1
vga: std
machine: q35
balloon: 1024
bootdisk: scsi0
cores: 4
ide2: local:iso/debian-9.2.1-amd64-DVD-1.iso,media=cdrom
memory: 6144
name: Debian2
net0: virtio=3A:F3:48:FC:DD:6C,bridge=vmbr0
numa: 0
ostype: l26
scsi0: local-lvm:vm-101-disk-1,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=f737cfdf-3e24-4f99-9d00-a3386375cf1f
sockets: 1

I tried both with and without specifying the GPU firmware downloaded from 01[dot]org
/linuxgraphics/downloads
.
To specify it use "hostpci0: 00:02,pcie=1,romfile=kbl_dmc_ver1_01.bin,x-vga=1" .
The romfile has to be stored in /usr/share/kvm/ as specified in
//pve.proxmox.com/wiki/Manual:_qm.conf

If I start the VM with this configuration the monitor turns black (the two lines 'Loading Linux 4.13.4-1-pve ...'
and 'Loading initial ramdisk ...' disappear) but nothing gets displayed.

noVNC fails with the following message:

VM 101 qmp command 'change' failed - VNC display not active
TASK ERROR: Failed to run vncproxy.

If I execute "qm monitor 101" and then run "info pci" I can find the following entry:

Code:
  Bus  1, device   0, function 0:
    VGA controller: PCI device 8086:5912
      IRQ 10.
      BAR0: 64 bit memory at 0x90000000 [0x90ffffff].
      BAR2: 64 bit prefetchable memory at 0x800000000 [0x80fffffff].
      BAR4: I/O at 0xa000 [0xa03f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe].
      id "hostpci0"

No additional VGA controller is available.

If I "quit" the qm monitor and execute "dmesg | grep -i vfio" I get:

Code:
[    1.409987] VFIO - User Level meta-driver version: 0.3
[    1.412348] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    1.432227] vfio_pci: add [8086:5912[ffff:ffff]] class 0x000000/00000000
[    1.452284] vfio_pci: add [8086:a2f0[ffff:ffff]] class 0x000000/00000000
[ 8579.576417] vfio-pci 0000:00:02.0: enabling device (0400 -> 0403)
[ 8579.684653] vfio_ecap_init: 0000:00:02.0 hiding ecap 0x1b@0x100

(I was also trying to passthrought the audio device here, hence the additional "vfio_pci: add [8086:a2f0[ffff:ffff]]")

On the monitor page I can see that the CPU load is around 25% and the RAM usage is 85%, both values are not changing much over time.
It is possible to shutdown the VM without rebooting the system.


- Passthrough without OVMF:

vi /etc/pve/qemu-server/101.conf
mine looks like:

Code:
args: -device vfio-pci,host=00:02.0,addr=02.0
machine: q35
balloon: 1024
bootdisk: scsi0
cores: 4
ide2: local:iso/debian-9.2.1-amd64-DVD-1.iso,media=cdrom
memory: 6144
name: Debian2
net0: virtio=3A:F3:48:FC:DD:6C,bridge=vmbr0
numa: 0
ostype: l26
scsi0: local-lvm:vm-101-disk-1,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=f737cfdf-3e24-4f99-9d00-a3386375cf1f
sockets: 1

it is also possible to specify in the args the romfile (ie: ,romfile=kbl_dmc_ver1_01.bin)

If I start the VM with this configuration the monitor turns black (the two lines 'Loading Linux 4.13.4-1-pve ...'
and 'Loading initial ramdisk ...' disappear) but nothing gets displayed.

noVNC is running and I can see the boot procedure up to login screen, then the system hangs.
If I start the VM in recovery mode I can see the following:

\\www[dot]dropbox[dot]com\s\gnr1jtb85pij2b3\proxmox_a.jpg?dl=0

and after a while the error:

\\www[dot]dropbox[dot]com\s\flvg418092utu9e\proxmox_b.jpg?dl=0


If I execute "qm monitor 101" and then run "info pci" I can find the following entry:

Code:
  Bus  0, device   1, function 0:
    VGA controller: PCI device 1234:1111
      BAR0: 32 bit prefetchable memory at 0xf0000000 [0xf0ffffff].
      BAR2: 32 bit memory at 0xfea34000 [0xfea34fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 8086:5912
      IRQ 11.
      BAR0: 64 bit memory at 0xfd000000 [0xfdffffff].
      BAR2: 64 bit prefetchable memory at 0xe0000000 [0xefffffff].
      BAR4: I/O at 0xd000 [0xd03f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe].
      id ""

if I "quit" the qm monitor and execute "dmesg | grep -i vfio" I get:

Code:
[    1.409987] VFIO - User Level meta-driver version: 0.3
[    1.412348] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    1.432227] vfio_pci: add [8086:5912[ffff:ffff]] class 0x000000/00000000
[    1.452284] vfio_pci: add [8086:a2f0[ffff:ffff]] class 0x000000/00000000
[ 9675.141550] vfio-pci 0000:00:02.0: enabling device (0400 -> 0403)
[ 9675.249571] vfio_ecap_init: 0000:00:02.0 hiding ecap 0x1b@0x100

(I was also trying to passthrought the audio device here, hence the additional "vfio_pci: add [8086:a2f0[ffff:ffff]]")

On the monitor page I can see that after the boot procedure the CPU load is around 0.25% and the RAM usage is 8.5%.
It is possible to shutdown the VM without rebooting the system.


- igvt-g KVMGT without OVMF:

vi /etc/pve/qemu-server/100.conf
mine looks like:

Code:
args: -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/a297db4a-f4c2-11e6-90f6-d3b88d6c9525,rombar=0
balloon: 1024
bootdisk: scsi0
cores: 4
ide2: local:iso/debian-9.2.1-amd64-DVD-1.iso,media=cdrom
memory: 6144
name: Debian
net0: virtio=3A:F3:48:FC:DD:6C,bridge=vmbr0
numa: 0
ostype: l26
scsi0: local-lvm:vm-100-disk-1,size=60G
scsihw: virtio-scsi-pci
smbios1: uuid=f737cfdf-3e24-4f99-9d00-a3386375cf1f
sockets: 1

I also tried to specify in the args the romfile (ie: ,romfile=kbl_dmc_ver1_01.bin)

Before starting the VM is necessary to run the

echo "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" > /sys/bus/pci/devices/0000\:00\:02.0/mdev_supported_types/i915-GVTg_V5_4/create

as described in the section "Only for igvt-g KVMGT" otherwise the VM will not start.

noVNC is running and I can see the boot procedure and also login. The Desktop Environment is displayed and if I open the terminal
in the VM and run "lspci -nv | grep VGA" I get:
00:01.0 0300: 1234:1111 (rev 02) (prog-if 00 [VGA controller])
00:02.0 0300: 8086:5912 (rev 04) (prog-if 00 [VGA controller])

If I execute "qm monitor 101" and then run "info pci" I can find the following entries:

Code:
  Bus  0, device   1, function 0:
    VGA controller: PCI device 1234:1111
      BAR0: 32 bit prefetchable memory at 0xf0000000 [0xf0ffffff].
      BAR2: 32 bit memory at 0xfea14000 [0xfea14fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 8086:5912
      IRQ 11.
      BAR0: 64 bit memory at 0xfd000000 [0xfdffffff].
      BAR2: 64 bit prefetchable memory at 0xe0000000 [0xefffffff].
      id ""


if I "quit" the qm monitor and execute "dmesg | grep -i vfio" I get:

Code:
[    1.423997] VFIO - User Level meta-driver version: 0.3
[  658.308477] vfio_mdev a297db4a-f4c2-11e6-90f6-d3b88d6c9525: MDEV: group_id = 0

I did not try to provide HW graphic accelleration to anything yet so I do not know if this is configuration
is fully working.

According to the latest release notes (
\01.org\igvt-g\blogs\wangbo85\2017\intel-gvt-g-kvmgt-public-release-q32017
) it is not possible to connect a monitor to the guest ( - GVT-g only supports remote display not local display by this release. ) so this method is not suited for what I want to achieve.
By the way, if I generate the Xorg.conf file, I save and modify it as described on github (
\intel\gvt-linux\wiki\GVTg_Setup_Guide#412-linux-intel-gfx-card-support
), after the log in the display shows
the background image and no Desktop Environment is displayed.


Did anyone succeed to do the pass-through of the iGPU to the VM and display the output to the attached monitor?

PS: I wanted to include the links but I am not allowed to. Manually add 'h-t-t-p-s-:' in front of them and replace \ with /.
 
  • Like
Reactions: Gustavo Neves
hi,

i got the following error while executing the following command:


ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

error->> ls: cannot access '/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/': No such file or directory

are you able to assist me on this? is there a command to enable Mediated Device ?
 
can tou try without x-vga=1 ?

Code:
hostpci0: 00:02,pcie=1,x-vga=1

--> hostpci0: 00:02,pcie=1