0

I am running a fresh install of Ubuntu 19.04 and I'd like to run a Windows Guest OS via KVM.

I followed a guide on youtube to set everything up: https://www.youtube.com/watch?v=C2jnUK4MSyE

I also read an article about this topic in the Arch wiki: https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF

So after setting everything up virt-manager tells me: "Error: Host does not support any virtualization options" which can't be true since I activated Virtualization technology and vt-d in my Bios. CPU I am using:

Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 

The youtube video provided a script which successfully activated immo groups and the vfio driver etc on my computer. Below my settings:

Kernel parameters:

#cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.0.0-31-generic root=UUID=201e3f7e-8635-4c23-89a1-89164302f8b2 ro quiet splash intel_iommu=on iommu=pt kvm.ignore_msrs=1 vt.handoff=1

Vfio driver used for my NVIDIA graphics card:

#lspci -k | grep -i vga -A 2
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
    Subsystem: Micro-Star International Co., Ltd. [MSI] HD Graphics 630
    Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)
    Subsystem: Micro-Star International Co., Ltd. [MSI] GP106M [GeForce GTX 1060 Mobile]
    Kernel driver in use: vfio-pci
root@estov-GE62VR-7RF:/home/estov# lspci -k | grep -i vga -A 3
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
    Subsystem: Micro-Star International Co., Ltd. [MSI] HD Graphics 630
    Kernel driver in use: i915
    Kernel modules: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)
    Subsystem: Micro-Star International Co., Ltd. [MSI] GP106M [GeForce GTX 1060 Mobile]
    Kernel driver in use: vfio-pci
    Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia

Vfio and kvm modules are loaded:


# lsmod | grep -i vfio
vfio_mdev              16384  0
mdev                   24576  2 kvmgt,vfio_mdev
vfio_pci               49152  0
vfio_virqfd            16384  1 vfio_pci
irqbypass              16384  2 vfio_pci,kvm
vfio_iommu_type1       28672  0
vfio                   32768  4 kvmgt,vfio_mdev,vfio_iommu_type1,vfio_pci


lsmod | grep -i kvm
kvmgt                  28672  0
mdev                   24576  2 kvmgt,vfio_mdev
kvm_intel             245760  0
kvm                   634880  2 kvmgt,kvm_intel
irqbypass              16384  2 vfio_pci,kvm
vfio                   32768  4 kvmgt,vfio_mdev,vfio_iommu_type1,vfio_pci

IOMMU groups:

IOMMU Group 0:
    00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5910] (rev 05)
IOMMU Group 1:
    00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 05)
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] [10de:1c20] (rev a1)
    01:00.1 Audio device [0403]: NVIDIA Corporation GP106 High Definition Audio Controller [10de:10f1] (rev a1)
IOMMU Group 10:
    02:00.0 Network controller [0280]: Intel Corporation Dual Band Wireless-AC 3168NGW [Stone Peak] [8086:24fb] (rev 10)
IOMMU Group 11:
    03:00.0 Ethernet controller [0200]: Qualcomm Atheros Killer E2500 Gigabit Ethernet Controller [1969:e0b1] (rev 10)
IOMMU Group 12:
    04:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller [1b21:1242]
IOMMU Group 2:
    00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:591b] (rev 04)
IOMMU Group 3:
    00:14.0 USB controller [0c03]: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller [8086:a12f] (rev 31)
    00:14.2 Signal processing controller [1180]: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem [8086:a131] (rev 31)
IOMMU Group 4:
    00:16.0 Communication controller [0780]: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 [8086:a13a] (rev 31)
IOMMU Group 5:
    00:17.0 SATA controller [0106]: Intel Corporation HM170/QM170 Chipset SATA Controller [AHCI Mode] [8086:a103] (rev 31)
IOMMU Group 6:
    00:1c.0 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 [8086:a110] (rev f1)
IOMMU Group 7:
    00:1c.3 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #4 [8086:a113] (rev f1)
IOMMU Group 8:
    00:1c.4 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 [8086:a114] (rev f1)
IOMMU Group 9:
    00:1f.0 ISA bridge [0601]: Intel Corporation HM175 Chipset LPC/eSPI Controller [8086:a152] (rev 31)
    00:1f.2 Memory controller [0580]: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller [8086:a121] (rev 31)
    00:1f.3 Audio device [0403]: Intel Corporation CM238 HD Audio Controller [8086:a171] (rev 31)
    00:1f.4 SMBus [0c05]: Intel Corporation 100 Series/C230 Series Chipset Family SMBus [8086:a123] (rev 31)

It would be great if someone could help me out of my misery. Thanks in advance

1 Answer 1

1

I'm definitely not sure that laptops are the best option for the IOMMU feature. Many manufacturer provide only BIOS settings and probably this kind of option is not available. Also don't mix between VTX-x used for virtualization and IOMMU feature used to allow processor to bypass PCI-E.

I've double checked for you, and unfortunately the IOMMU is not available for i7-7700HQ. I'm afraid to see no solution for you.

https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware#CPUs

Edit: you should consider reading the really nice document: https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF

5
  • Thanks for your fast answer. Is this list complete though? :'(
    – Tutov
    Oct 10, 2019 at 17:15
  • I agree that IOMMU usage on laptops often is shaky or bugged by HW/FW. But the error you see isn't VT-d, but VT-x missing. If you run egrep -m 1 "svm|vmx" /proc/cpuinfo does it list vmx as available? Oct 11, 2019 at 5:47
  • Yes, vmx is listed in the output. "... ds_cpl vmx est tm2 ssse3 ..."
    – Tutov
    Oct 11, 2019 at 6:42
  • The only way to check if IOMMU is enabled is this command dmesg | grep -i -e DMAR -e IOMMU, nothing to do with smv|vmx.
    – ob2
    Oct 11, 2019 at 13:44
  • It showed IOMMU, but only after the first reboot. Later attempts didn't weren't succesful but I thought it's normal since I still get the IOMMU groups.
    – Tutov
    Oct 11, 2019 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.