Pass VGA to VM

I have 2 VGA, a GTX 1070 and an Intel E3-1300 processor i7-4790K in my system.

Including the monitor and its use is the HDMI output on the motherboard, using the processor’s VGA.

I want to transfer the GTX 1070 to a VM, but I can’t, the message appears:

At least 1 GPU is required by the host for its functions.
With your selection, no GPU is available for the host to consume.


I’m using Dragonfish

What is your motherboard? iirc depending on its chipset you might not be able to, buy I might be confusing with quicksync/transcoding.

The motherboard is an Asus Z97-K R2.0

I dont know what an “Intel E3-1300 processor i7-4790K” is.

But it could very well be, that your iGPU and your GTX 1070 are in the same IOMMU group. Therefore when you pass through one GPU the other is passed through aswell, resulting in Truenas having no GPU for itself.

1 Like

The Processor is an Intel i7-4790K
The i7-4790k’s integrated GPU is an Intel® HD Graphics 4600, which the TrueNAS drivers identify as Xeon E3-1200 since it installs the i915 drivers.

I don’t know if I could update these drivers on TrueNAS!?

This would be true if I was passing all PCI-e but I’m not.
And I researched a lot on the old forum, and I saw that a lot of people are having the same problem, and apparently without a solution, or if they found it, they didn’t post it in the messages I read.

Whats the output of:

#!/bin/bash
for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  printf 'IOMMU Group %s ' "$n"
  lspci -nns "${d##*/}"
done

This lists all your pci devices by IOMMU group.

1 Like
root@truenas[~]# ./test.sh
IOMMU Group 0 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
IOMMU Group 1 00:00.0 Host bridge [0600]: Intel Corporation 4th Gen Core Processor DRAM Controller [8086:0c00] (rev 06)
IOMMU Group 10 00:1c.4 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 [8086:8c98] (rev d0)
IOMMU Group 11 00:1c.6 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 7 [8086:8c9c] (rev d0)
IOMMU Group 12 00:1d.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1 [8086:8ca6]
IOMMU Group 13 00:1f.0 ISA bridge [0601]: Intel Corporation Z97 Chipset LPC Controller [8086:8cc4]
IOMMU Group 13 00:1f.2 SATA controller [0106]: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode] [8086:8c82]
IOMMU Group 13 00:1f.3 SMBus [0c05]: Intel Corporation 9 Series Chipset Family SMBus Controller [8086:8ca2]
IOMMU Group 14 02:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Blue SN500 / PC SN520 NVMe SSD [15b7:5003] (rev 01)
IOMMU Group 15 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 11)
IOMMU Group 16 06:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Green SN350 NVMe SSD 240GB (DRAM-less) [15b7:5019] (rev 01)
IOMMU Group 17 07:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1166 Serial ATA Controller [1b21:1166] (rev 02)
IOMMU Group 2 00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller [8086:0c01] (rev 06)
IOMMU Group 2 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104 [GeForce GTX 1070] [10de:1b81] (rev a1)
IOMMU Group 2 01:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
IOMMU Group 3 00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
IOMMU Group 4 00:14.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB xHCI Controller [8086:8cb1]
IOMMU Group 5 00:16.0 Communication controller [0780]: Intel Corporation 9 Series Chipset Family ME Interface #1 [8086:8cba]
IOMMU Group 6 00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]
IOMMU Group 7 00:1c.0 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 [8086:8c90] (rev d0)
IOMMU Group 8 00:1c.2 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 3 [8086:8c94] (rev d0)
IOMMU Group 9 00:1c.3 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev d0)
IOMMU Group 9 04:00.0 PCI bridge [0604]: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge [1b21:1080] (rev 04)
root@truenas[~]#

I am not an expert in processor and chipset design, but I see a problem there, that the GTX 1070 is in the same IOMMU group as the PCI Controller. That controller will be passed through to the VM aswell. If your iGPU is attached to that controller, Truenas ends up with no GPU.

Usually for pci passthrough to work, the GTX 1070 should sit alone in its group.