[SOLVED] LibreElec with Intel KabyLake GPU Passthrough

Ekinox

New Member
Mar 17, 2020
21
5
3
44
Hello, I have a mini computer with an Intel i5-7200 CPU (with Intel HD 620 GPU,) that i use for vitualization. This computer is near of my TV and i would like to use it as a Kodi box, using LibreElec distribution (i know virtualization is not made for that but i try the challenge...). Intel VMX, VT-d & AES are enabled in the bios.

The target :
Having a Kodi up and running, in a dedicated Proxmox VM, with GPU (for 4k decoding) and audio (HDMI output). Best would be with less CPU & RAM usage.

Preliminary test:
In order to check my hardware performance & compatibility, i've installed LibreElec on the computer, on a dedicated hard disk, without virtualization, alone. Result was more than i expected: GPU & Audio recognized at first boot, 4K films rendered at 30fps with 20% CPU and 500Mo RAM usage only. My hardware and LibreElec are delivering a very good result.

The idea is to reproduce it in through a Proxmox VM.

My configuration:
proxmox-ve: 6.1-2 (running kernel: 5.3.18-2-pve)
pve-manager: 6.1-8 (running version: 6.1-8/806edfe1)
pve-kernel-helper: 6.1-7
pve-kernel-5.3: 6.1-5
pve-kernel-5.3.18-2-pve: 5.3.18-2
pve-kernel-5.3.10-1-pve: 5.3.10-1
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.0.3-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: 0.8.35+pve1
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.15-pve1
libpve-access-control: 6.0-6
libpve-apiclient-perl: 3.0-3
libpve-common-perl: 6.0-17
libpve-guest-common-perl: 3.0-5
libpve-http-server-perl: 3.0-5
libpve-storage-perl: 6.1-5
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 3.2.1-1
lxcfs: 3.0.3-pve60
novnc-pve: 1.1.0-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.1-3
pve-cluster: 6.1-4
pve-container: 3.0-22
pve-docs: 6.1-6
pve-edk2-firmware: 2.20200229-1
pve-firewall: 4.0-10
pve-firmware: 3.0-6
pve-ha-manager: 3.0-9
pve-i18n: 2.0-4
pve-qemu-kvm: 4.1.1-4
pve-xtermjs: 4.3.0-1
qemu-server: 6.1-7
smartmontools: 7.1-pve2
spiceterm: 3.1-1
vncterm: 1.6-1
zfsutils-linux: 0.8.3-pve1
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

/etc/modules
vfio
vfio_iommu_type1

info pci

vfio_pci
vfio_virqfd

IOMMU Groups:

IOMMU Group 0:
-e 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904] (rev 02)
IOMMU Group 1:
-e 00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)
IOMMU Group 10:
-e 01:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 07)
IOMMU Group 11:
-e 02:00.0 Network controller [0280]: Broadcom Limited BCM43224 802.11a/b/g/n [14e4:4353] (rev 01)
IOMMU Group 2:
-e 00:08.0 System peripheral [0880]: Intel Corporation Skylake Gaussian Mixture Model [8086:1911]
IOMMU Group 3:
-e 00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
-e 00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
IOMMU Group 4:
-e 00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
IOMMU Group 5:
-e 00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)
IOMMU Group 6:
-e 00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port [8086:9d12] (rev f1)
IOMMU Group 7:
-e 00:1c.3 PCI bridge [0604]: Intel Corporation Device [8086:9d13] (rev f1)
IOMMU Group 8:
-e 00:1e.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 [8086:9d27] (rev 21)
-e 00:1e.4 SD Host controller [0805]: Intel Corporation Device [8086:9d2b] (rev 21)
-e 00:1e.6 SD Host controller [0805]: Intel Corporation Sunrise Point-LP Secure Digital IO Controller [8086:9d2d] (rev 21)
IOMMU Group 9:
-e 00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-LP LPC Controller [8086:9d58] (rev 21)
-e 00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
-e 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
-e 00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)

lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
00:1c.3 PCI bridge: Intel Corporation Device 9d13 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1e.4 SD Host controller: Intel Corporation Device 9d2b (rev 21)
00:1e.6 SD Host controller: Intel Corporation Sunrise Point-LP Secure Digital IO Controller (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
02:00.0 Network controller: Broadcom Limited BCM43224 802.11a/b/g/n (rev 01)

lspci -n -s 00:02.0
00:02.0 0300: 8086:5916 (rev 02)
lspci -n -s 00:1f.3
00:1f.3 0403: 8086:9d71 (rev 21)

/etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:5916
options vfio-pci ids=8086:9d71

/etc/modprobe.d/blacklist.conf
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915


Graphic card IS NOT UEFI compatible:

Valid ROM signature found @0h, PCIR offset 40h
PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 0406, class: 030000
PCIR: revision 3, vendor revision: 0
Last image


LibreElec installation:
- .OVA downloaded
- tar -xvf in order to extract the VMDK file
- qm importdisk 109 libreelec.vmdk local-lvm --format vmdk
(Note: I've tried to convert to qcow2 before import; but once the VM started, i had a systematic mount error at startup...)
- installed as an IDE hard disk
(Note: Also work with ATA disk; but do not work with SCSI disk (LibreElec do not boot))

boot: c
bootdisk: ide0
cores: 4
hostpci0: 00:1f,rombar=0
hostpci1: 00:02,rombar=0,x-vga=1
ide0: local-lvm:vm-109-disk-0,size=548M
machine: q35
memory: 2048
name: LibreElec4
net0: virtio=7A:1D:F2:84:4D:D2,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
smbios1: uuid=fe322f1e-8fb3-4d22-a17f-d11a874d9838
sockets: 1
vga: none
vmgenid: 8014702e-f642-41f7-ba07-308da07c2d77

(Note: Need "rombar=0" option if i want it to work)
(Note: Tried "machine" with "pc-q35-3.1" or "i440" but not better)

info pci
Bus 6, device 16, function 2:
Audio controller: PCI device 8086:9d71
PCI subsystem 8086:7270
IRQ 10.
BAR0: 64 bit memory at 0xfc054000 [0xfc057fff].
BAR4: 64 bit memory at 0xfc040000 [0xfc04ffff].
id "hostpci0.2"
Bus 6, device 17, function 0:
VGA controller: PCI device 8086:5916
PCI subsystem 8086:2212
IRQ 11.
BAR0: 64 bit memory at 0xfb000000 [0xfbffffff].
BAR2: 64 bit prefetchable memory at 0xc0000000 [0xcfffffff].
BAR4: I/O at 0x4000 [0x403f].
id "hostpci1"

Result:
- If I start with audio passthrough but without GPU Passthrough, LibreElec starts correctly (can be seen in the console); the audio card is recognized (HDMI output available); CPU stay low 15%; memory low 500Mo.
- If I start with GPU Passthrough (with or without audio) CPU gets high 75 to 99%, memory stays low 500Mo, no ping, no ssh. Don't know how to debug...

May you help in order to make it work ? Thanks in advance for your time.
 
Last edited:
Hello, i think your configuration is okay, i cant see a problem. Did you try with these settings another distribution? Test it with Linux Mint, like i did:

https://forum.proxmox.com/threads/p...s-passthrough-for-ubuntu-18.47129/post-296532

Thanks for this link. I will give it a try !
I'm not that much optimistic because i've made many tries and each of them fails in a different maner.

Here is the results of my tests in order to have Kodi running:
- VM with Ubuntu: GPU passthrough is "working more or less" / HDMI display works / Kodi works BUT do not detect the GPU as a Intel HD 620 but llvmpipe (this implies very bad performance) / Audio not recognized (LSPCI on the guest shows that GPU and Audio are here)
- VM with Windows 10: GPU passthrough seems to work fine (Intel HD 620 is recognized, ready to work) BUT... i'm not able to activate HDMI (?!?!?)(with a VNC Server on Win10, i can connect but i can not detect any screen and turn on HDMI)... wierd... / Starting Kodi, he recognizes the HD 620 and acceleration is fine / Audio still not available (error on the Audio device, "can not be started". Tried to delete, reinstall, update drivers, etc... don't want to work....)
- VM with Librelec: No progress since my previous post / GPU seems to work and HDMI works / But the VM stops immediatly...

So... I will continue to work on the Windows 10 side... GPU seems to work mainly but the Audio really don't....

Thanks for your help.
 
When you only want use only LibreElec with your TV i have another suggestion: You can install Debian Buster with Gui install Proxmox for your Virtual machines: https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Buster

After that you get the Multimedia repository with Kodi.

That works fine.

Such a workaround make sense for me and will answer my needs.
I will continue to investigate in order to find a solution "100% Proxmox"; once i will be discouraged, i will give it a try. Thank you very much.
 
Hello all, i still not have reached my target (Kodi box full up and running on Proxmox) but i think my issues are mainly on the hos side rather than Proxmox and i'm currently able to passthrough GPU and audio. I will post a last message in order to share my findings and close this discussion.
 
Achievement:
- GPU and audio passthrough working / Tested on Ubuntu and Win10 / Reproductible

Still pending:
- Win10: HDMI not activated (audio & GPU recognized, acceleration OK in Kodi)
- Ubuntu: Acceleration not working (no issue on xorg, Intel drivers OK, DRI OK), graphic card unrecognized (llvmpipe instead)

--------------------------------
/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:eek:ff pcie_acs_override=downstream"

Note: pcie_acs_override=downstream is not mantadory; should help to have more simple IOMMU groups but do not change anything for me
--------------------------------
/etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

--------------------------------
IOMMU group detail (cf script here: https://pve.proxmox.com/wiki/Pci_passthrough)

IOMMU Group 0:
-e 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904] (rev 02)
IOMMU Group 1:
-e 00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)
IOMMU Group 10:
-e 01:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 07)
IOMMU Group 11:
-e 02:00.0 Network controller [0280]: Broadcom Limited BCM43224 802.11a/b/g/n [14e4:4353] (rev 01)
IOMMU Group 2:
-e 00:08.0 System peripheral [0880]: Intel Corporation Skylake Gaussian Mixture Model [8086:1911]
IOMMU Group 3:
-e 00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
-e 00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
IOMMU Group 4:
-e 00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
IOMMU Group 5:
-e 00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)
IOMMU Group 6:
-e 00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port [8086:9d12] (rev f1)
IOMMU Group 7:
-e 00:1c.3 PCI bridge [0604]: Intel Corporation Device [8086:9d13] (rev f1)
IOMMU Group 8:
-e 00:1e.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 [8086:9d27] (rev 21)
-e 00:1e.4 SD Host controller [0805]: Intel Corporation Device [8086:9d2b] (rev 21)
-e 00:1e.6 SD Host controller [0805]: Intel Corporation Sunrise Point-LP Secure Digital IO Controller [8086:9d2d] (rev 21)
IOMMU Group 9:
-e 00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-LP LPC Controller [8086:9d58] (rev 21)
-e 00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
-e 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
-e 00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)

Note: I've understood that the whole IOMMU group will be passed through. For the GPU, easy, only 1 device. For the audio, group 9, 4 devices will have to be passed.

--------------------------------
Note: In order to passthrough a device, it has to be free in the host. So we have to find all the modules/drivers used in order not to load them.

lspci -v 00:1f.3

00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
Subsystem: Intel Corporation Sunrise Point-LP HD Audio
Flags: fast devsel, IRQ 11
Memory at df120000 (64-bit, non-prefetchable) [disabled] [size=16K]
Memory at df100000 (64-bit, non-prefetchable) [disabled] [size=64K]
Capabilities: [50] Power Management version 3
Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel, snd_soc_skl

Note: Do this for all the devices you have to pass; identify all the "kernel modules"

--------------------------------
/etc/modprobe.d/blacklist.conf

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
blacklist snd_soc_skl
blacklist i2c_i801

Note: Blacklist all the modules identified previously

--------------------------------
lspci -n -s 00:1f.3

00:1f.3 0403: 8086:9d71 (rev 21)

Note: Do this for all the devices you have to pass; identify all the codes of the manufacturer & device (8086:9d71 here)

--------------------------------
/etc/modprobe.d/vfio.conf

options vfio-pci ids=8086:5916,8086:9d58,8086:9d21,8086:9d71,8086:9d23

--------------------------------
/etc/pve/nodes/EkiHystou/qemu-server/100.conf

bios: ovmf
bootdisk: scsi0
cores: 4
efidisk0: local-lvm:vm-100-disk-1,size=4M
hostpci0: 00:02,pcie=1,x-vga=1
hostpci1: 00:1f.3,pcie=1
ide2: local:iso/ubuntu-18.04.4-desktop-amd64.iso,media=cdrom,size=2076704K
machine: q35
memory: 4096
name: hystUbuKodi
net0: virtio=36:1E:4C:23:97:ED,bridge=vmbr0
numa: 0
ostype: l26
parent: AvantVulkan
scsi0: local-lvm:vm-100-disk-0,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=d322b557-9869-465a-a610-efee9825f159
sockets: 1
vga: none
vmgenid: cbadaf6d-65b6-4fe5-b4b3-d8dd864f2783

Note: Following the official guide here (https://pve.proxmox.com/wiki/Pci_passthrough), my CPU is not UEFI compatible. But passthrough only works with OVMH (UEFI) BIOS activated on my VM
Note: I have better results if i pass only the audio device (00:1f.3) and no the whole functions (00:1f).
Note: Works only with q35 machine and pcie activated.

Hope it will help few of you. Bye.
 
Hi,

Thanks for this topic and your explications, sorry for my bad english.

I've got a similary mini PC (i5 8250U but same HD620 graphics). I try to passthrough HDMI since few days without success.
I tried many configurations for a Win10 VM.

So today I tried yours :
Grub is similar, same /etc/modules, same IOMMU groups, same /etc/modprobe.d/blacklist.conf, vfio.conf with my ids :
options vfio-pci ids=8086:5917 #Graphic card
options vfio-pci ids=8086:9d71,8086:9d4e,8086:9d21,8086:9d23 #Audio group
VM config :
agent: 1
bios: ovmf
bootdisk: sata0
cores: 4
cpu: host
efidisk0: local-lvm:vm-150-disk-1,size=128K
hostpci0: 00:02,pcie=1,x-vga=1
hostpci1: 00:1f.3,pcie=1
machine: q35
memory: 4096
name: Win10
net0: e1000=26:D4:FB:22:03:70,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: local-lvm:vm-150-disk-0,size=32G
smbios1: uuid=d03ab789-84ef-4d66-81b0-2c5f3a678a48
sockets: 1
tablet: 0
vga: virtio
vmgenid: e6831e7b-6d80-49e4-8061-2e6118dd5b14
I don't undestand where is the problem. Windows is running, drivers are installed, graphic card is recognized... But black screen on my TV, on HDMI port.

Can help me, please ?
 
Hi,

Thanks for this topic and your explications, sorry for my bad english.

I've got a similary mini PC (i5 8250U but same HD620 graphics). I try to passthrough HDMI since few days without success.
I tried many configurations for a Win10 VM.

I don't undestand where is the problem. Windows is running, drivers are installed, graphic card is recognized... But black screen on my TV, on HDMI port.

Can help me, please ?

Hello, i've stopped my investigations with Win10. I'm not able to activate HDMI display using GPU Passthrough... don't know if it's linked to this specific GPU card or Intel drivers. Will not able to help here, sorry...
My "Kodi box" is running correctly on a Ubuntu VM with GPU passthrough; here is the status:
- Without Intel drivers & acceleration (card recognized as "llvmpipe"), Kodi is running correctly with current Ubuntu kernel. HD rendering is consumming 80% of CPU; 4K rendering is KO.
- With Intel drivers, there is a lot of issues (CGPU hand & freeze) with Intel drivers; bugs are opened and i regularly test new kernels. The situation is not stable but with these kernels, GPU acceleration works fine and 4K is rendered with 20% CPU only.
 
Hello, i've stopped my investigations with Win10. I'm not able to activate HDMI display using GPU Passthrough... don't know if it's linked to this specific GPU card or Intel drivers. Will not able to help here, sorry...
My "Kodi box" is running correctly on a Ubuntu VM with GPU passthrough; here is the status:
- Without Intel drivers & acceleration (card recognized as "llvmpipe"), Kodi is running correctly with current Ubuntu kernel. HD rendering is consumming 80% of CPU; 4K rendering is KO.
- With Intel drivers, there is a lot of issues (CGPU hand & freeze) with Intel drivers; bugs are opened and i regularly test new kernels. The situation is not stable but with these kernels, GPU acceleration works fine and 4K is rendered with 20% CPU only.
Ok, that reassures me, maybe there is no solution right now... I hope it will be better in the future !

Thanks !
 
tks. I managed to get win10 running in a mini pc with intel 620 graphics with theses instructions.

the blacklist of vfio.conf did the trick.

Now im trying to run linux mint 20.04 as guest .. nothing .. until now
 
I use libreelec in a Intel NUC Kit NUC8i3BEH and i have a problem, because if I enable audio, works, but no ethernet working, no proxmox gui work, no other vm machine, a disaster

How is possible to fix it ?

lspci
Code:
00:00.0 Host bridge: Intel Corporation Device 3ecc (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 655 (rev 01)
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller (rev 30)
00:17.0 SATA controller: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode] (rev 30)
00:1c.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
6e:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)

My virtual machine
Code:
agent: 1
bios: ovmf
boot: order=hostpci0;ide0;net0;ide2
cores: 4
efidisk0: local-lvm:vm-101-disk-1,size=4M
hostpci0: 0000:00:02.0,pcie=1,x-vga=1
hostpci1: 0000:00:1f.3,pcie=1
hotplug: disk,network
ide0: local-lvm:vm-101-disk-0,size=10792M
ide2: none,media=cdrom
machine: q35
memory: 2048
name: KODI
net0: virtio=C2:95:B1:F8:C5:7E,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
smbios1: uuid=798913ed-8aa4-422b-be93-436687c7b38d
sockets: 1
usb0: host=25a7:0701,usb3=1
usb1: host=1241:1603,usb3=1
vga: none
vmgenid: 5e08f278-fe8c-4757-bef8-a2007e805be6

/etc/modprobe.d/vfio.conf
Code:
options vfio-pci ids=8086:3ea5
options vfio-pci ids=8086:9d84,8086:9dc8,8086:9da3,8086:9da4,8086:15be

/etc/modprobe.d/blacklist.conf
Code:
blacklist radeon
blacklist nouveau
blacklist nvidia
blacklist i915
blacklist snd_hda_intel

/etc/modules
Code:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Modules required for PCI passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

# Modules required for Intel GVT
kvmgt
exngt
vfio-mdev

/etc/default/grub
Code:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:eek:ff pcie_acs_override=downstream"
GRUB_CMDLINE_LINUX=""
 
Last edited:
I use libreelec in a Intel NUC Kit NUC8i3BEH and i have a problem, because if I enable audio, works, but no ethernet working, no proxmox gui work, no other vm machine, a disaster

How is possible to fix it ?

lspci
Code:
00:00.0 Host bridge: Intel Corporation Device 3ecc (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 655 (rev 01)
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller (rev 30)
00:17.0 SATA controller: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode] (rev 30)
00:1c.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
6e:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)

My virtual machine
Code:
agent: 1
bios: ovmf
boot: order=hostpci0;ide0;net0;ide2
cores: 4
efidisk0: local-lvm:vm-101-disk-1,size=4M
hostpci0: 0000:00:02.0,pcie=1,x-vga=1
hostpci1: 0000:00:1f.3,pcie=1
hotplug: disk,network
ide0: local-lvm:vm-101-disk-0,size=10792M
ide2: none,media=cdrom
machine: q35
memory: 2048
name: KODI
net0: virtio=C2:95:B1:F8:C5:7E,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
smbios1: uuid=798913ed-8aa4-422b-be93-436687c7b38d
sockets: 1
usb0: host=25a7:0701,usb3=1
usb1: host=1241:1603,usb3=1
vga: none
vmgenid: 5e08f278-fe8c-4757-bef8-a2007e805be6

/etc/modprobe.d/vfio.conf
Code:
options vfio-pci ids=8086:3ea5
options vfio-pci ids=8086:9d84,8086:9dc8,8086:9da3,8086:9da4,8086:15be

/etc/modprobe.d/blacklist.conf
Code:
blacklist radeon
blacklist nouveau
blacklist nvidia
blacklist i915
blacklist snd_hda_intel

/etc/modules
Code:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Modules required for PCI passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

# Modules required for Intel GVT
kvmgt
exngt
vfio-mdev

/etc/default/grub
Code:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:eek:ff pcie_acs_override=downstream"
GRUB_CMDLINE_LINUX=""
These devices are all in same group "00:1f"
Thats a problem.
Did you try to run the VM with graphics only? You need IMMOU Isolation. Check the wiki about it. https://pve.proxmox.com/wiki/Pci_passthrough

00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
 
Last edited:
These devices are all in same group "00:1f"
Thats a problem.
Did you try to run the VM with graphics only? You need IMMOU Isolation. Check the wiki about it. https://pve.proxmox.com/wiki/Pci_passthrough

00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
Hi,

in first thanks to read and reply.

Yes, audio is in the same group of ethernet and others things that i don't know what are, like SMBus, Serial bus controller and ISA Bridge.

Anyway if i start this virtual machine with only gpu and not audio, works, but no audio.

1626340747701.png

The last PCI device, 02.0 is the GPU.
1626340849050.png
As you can see, Mediated Devices is No, is good ? I guess yes.

Video in hdmi is ok, seems ok.

If i start it with also audio, a disaster:

1626341042914.png
Here last PCI is only audio, but i tried also with all functions, and pci express flag, inside pci device, when you double click to setup it in this gui, without success.

OK Audio
NO Ethernet
NO proxmox gui
Lost connection with promox and others Vm in promox freeze or anyway doesn't respond.

I have tried also in vfio, to add all devices in audio group:

/etc/modprobe.d/vfio.conf

Code:
options vfio-pci ids=8086:3ea5
options vfio-pci ids=8086:9d84,8086:9dc8,8086:9da3,8086:9da4,8086:15be

But change nothing. I guess that this setup is the same like All Function, when you double click in pci device and setup device and Primary GPU, All function, Rom Based...

This is my IOMMU Isolation

Code:
root@NUC-i3:~# find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/7/devices/0000:00:17.0
/sys/kernel/iommu_groups/5/devices/0000:00:14.3
/sys/kernel/iommu_groups/13/devices/0000:6e:00.0
/sys/kernel/iommu_groups/3/devices/0000:00:12.0
/sys/kernel/iommu_groups/11/devices/0000:00:1d.6
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
/sys/kernel/iommu_groups/8/devices/0000:00:1c.0
/sys/kernel/iommu_groups/6/devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:14.2
/sys/kernel/iommu_groups/4/devices/0000:00:14.0
/sys/kernel/iommu_groups/12/devices/0000:00:1f.0
/sys/kernel/iommu_groups/12/devices/0000:00:1f.5
/sys/kernel/iommu_groups/12/devices/0000:00:1f.3
/sys/kernel/iommu_groups/12/devices/0000:00:1f.6
/sys/kernel/iommu_groups/12/devices/0000:00:1f.4
/sys/kernel/iommu_groups/2/devices/0000:00:08.0
/sys/kernel/iommu_groups/10/devices/0000:00:1d.0
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.4

I read already IOMMU Isolation, but in proxmox there isn't a guide to do that. 12 Group need to be isolate, right?
 
There is a guide in the wiki. I had link it before and you did it I think. PCI passthrough is still experimental. When you can't get sound working on this way you can get an USB soundcard and your sound. It's maybe an easier way...
 
There is a guide in the wiki. I had link it before and you did it I think. PCI passthrough is still experimental. When you can't get sound working on this way you can get an USB soundcard and your sound. It's maybe an easier way...
On https://pve.proxmox.com/wiki/Pci_passthrough

Isn't explain how to isolate IOMMU.
Is a NUCi3BEH, that support 7.1, anyway is impossible use an external soundcard, because lost all channels, you can't handle 5.1, only 2.0, usb soundcard, have only 2 mini jack.

There isn't a way ? Is possible change groups for audio ? Or some tricks ?
 
@RobertusIT can you post your output from lspci -k ?
Code:
root@NUC-i3:~# lspci -k
00:00.0 Host bridge: Intel Corporation Device 3ecc (rev 08)
        Subsystem: Intel Corporation Device 2074
        Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 655 (rev 01)
        Subsystem: Intel Corporation Iris Plus Graphics 655
        Kernel driver in use: i915
        Kernel modules: i915
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
        Subsystem: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP Thermal Controller
        Kernel driver in use: intel_pch_thermal
        Kernel modules: intel_pch_thermal
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP Shared SRAM
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP CNVi [Wireless-AC]
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP MEI Controller
        Kernel driver in use: mei_me
        Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode] (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode]
        Kernel driver in use: ahci
        Kernel modules: ahci
00:1c.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
        Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
        Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
        Kernel driver in use: pcieport
00:1d.6 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port (rev f0)
        Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP LPC Controller
        Kernel driver in use: vfio-pci
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP High Definition Audio Controller
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel, snd_sof_pci
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP SMBus Controller
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
        Subsystem: Intel Corporation Cannon Point-LP SPI Controller
        Kernel driver in use: vfio-pci
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
        Subsystem: Intel Corporation Ethernet Connection (6) I219-V
        Kernel driver in use: e1000e
        Kernel modules: e1000e
6e:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
        Subsystem: Intel Corporation RTS522A PCI Express Card Reader
        Kernel driver in use: rtsx_pci
        Kernel modules: rtsx_pci
 

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!