PCIe Passthrough "Not Supported"

So ive been trying todo PCIe passthrough on my laptop but ran into some issues. Virtual Machine Manager complains about the host not supporting pcie passthrough even though i do have support for it. My cpu has VT-d and VT-x support and i dont have any issues with my iommu groups

Laptop: Lenovo y70-70 80du
CPU: i7-4710HQ
GPU: GTX 860m
RAM: 12GB

Vitual Machine Manager Error

Error starting domain: unsupported configuration: host doesn’t support passthrough of host PCI devices

Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 88, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 124, in tmpcb
callback(*args, **kwargs)
File “/usr/share/virt-manager/virtManager/libvirtobject.py”, line 83, in newfn
ret = fn(self, *args, **kwargs)
File “/usr/share/virt-manager/virtManager/domain.py”, line 1479, in startup
self._backend.create()
File “/usr/lib64/python2.7/site-packages/libvirt.py”, line 1039, in create
if ret == -1: raise libvirtError (‘virDomainCreate() failed’, dom=self)
libvirtError: unsupported configuration: host doesn’t support passthrough of host PCI devices

https://pastebin.com/6WG42grG

lspci -nn

00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller [8086:0c04] (rev 06)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller [8086:0c01] (rev 06)
00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06)
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 05)
00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 [8086:8c3a] (rev 04)
00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 05)
00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 05)
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 [8086:8c10] (rev d5)
00:1c.1 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 [8086:8c12] (rev d5)
00:1c.2 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 [8086:8c14] (rev d5)
00:1c.4 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 [8086:8c18] (rev d5)
00:1d.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 [8086:8c26] (rev 05)
00:1f.0 ISA bridge [0601]: Intel Corporation HM86 Express LPC Controller [8086:8c49] (rev 05)
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] [8086:8c03] (rev 05)
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 05)
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 860M] [10de:1392] (rev ff)
08:00.0 Network controller [0280]: Broadcom Limited BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 10)
0a:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5249 PCI Express Card Reader [10ec:5249] (rev 01)

Motherboard…

1 Like

My understanding is that the BIOS would also need to have VT-d enabled. Can you confirm any other people with that model laptop have been able to make it work? Or perhaps is there any way to test that it is enabled? I know some laptops can have weird key sequences needed to unlock hidden menus, so that could also be worth looking in to.

1 Like

Is a laptop

I have the virtualization features enabled but ill look around for a hidden menu option

This is a laptop, with a CPU that has not got an inbuilt GPU. The Nvidia card is the only graphics - and is assigned to the host, ergo it cannot be passed through.

Exactly, look up the chipset

This laptop has a iGPU

It’s a laptop, it’s not made for supporting PCIe passthrough. Your cpu having virtualisation instructions in no way means PCIe passthrough is supported.

I beg to differ, E3 Xeon’s usually end with a 5 if they have an iGPU. E.g. an E3 1225 has in built graphics, an E3 1220 does not.

Even if it did there is stuff that needs to properly supported by the manufacturer to make pass thru work. Chances of that happening on a laptop are pretty small - it’s not sometgingany laptop users would be asking to do…

EDIT apologies, I didn’t read your post properly and just homed in on the paste which states e3 xeon 1200. It does acknowledge the i7 later on. In this case I think you are just out of luck since this is a laptop.

Okay, let’s start with this.

you need intel_iommu=on in your kernel command line, and you need to make sure VT-x and VT-d are enabled. I know this has already been mentioned, but I want to cover all my bases.

The error above is documented to be related to one of those two configuration options being incorrectly set. Verify that the IOMMU is being initialized with the following:

dmesg | grep -e DMAR -e IOMMU

You should have a line similar to Intel-IOMMU: enabled show up in the output.

2 Likes

i found the issue

cpu is not telling the OS that vt-d is allowed even though the chipset and cpu both support it

Ah. That would do it.

Did you find a way to solve that or is that an unfixable issue?

trying to get in touch with the lenovo bios team

thisisdog

Good luck with that.

3 Likes

got told that i had to call software support and they would help me for no charge. call software support and they demand money.

ARSEHOLES

1 Like

do “less /proc/cpuinfo”

and look at “flags” if you don’t see vtd etc, but you can also use dmidecode or other alike software.

other than that you can try

“sudo modprobe msr”
“sudo rdmsr 0x3a”

1 Like

might need to install/remove intel ucode

sudo rdmsr returns a 5

likely disabled under bios.