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
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!