my new notebook doesn't support Windows 7 anymore so I decided to set up a Guest Windows 7 VM under Host Debian 9.3 (4.9.0.5) with VGA Passthrough to avoid the pain of using Windows 10. I went through many many different tutorials and tested many approaches but still couldn't manage to make it work. It has been a few weeks now and I'm starting to question my ability to solve this problem alone so I decided to seek some help and hope I will find the missing piece to finally finish my setup.
Hardware
- CPU: i7-7700 (yes, the desktop CPU)
- GPU: GTX 1060 (mobile 6GB version)
- Chipset: Z170 (VT enabled in BIOS)
- [...]
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt"
[...]
Code: Select all
$ sudo dmesg | grep -e IOMMU -e DMAR
[ 0.000000] ACPI: DMAR 0x000000002EBAD968 000070 (v01 ALASKA A M I 00000001 INTL 00000001)
[ 0.000000] DMAR: IOMMU enabled
[ 0.042405] DMAR: Host address width 39
[ 0.042407] DMAR: DRHD base: 0x000000fed90000 flags: 0x1
[ 0.042412] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap d2008c40660462 ecap f050da
[ 0.042415] DMAR: RMRR base: 0x0000002e5c8000 end: 0x0000002e5e7fff
[ 0.042418] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed90000 IOMMU 0
[ 0.042420] DMAR-IR: HPET id 0 under DRHD base 0xfed90000
[ 0.042421] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.043687] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 0.557424] DMAR: No ATSR found
[ 0.557745] DMAR: dmar0: Using Queued invalidation
[ 0.557791] DMAR: Hardware identity mapping for device 0000:00:00.0
[ 0.557793] DMAR: Hardware identity mapping for device 0000:00:01.0
[ 0.557795] DMAR: Hardware identity mapping for device 0000:00:08.0
[ 0.557797] DMAR: Hardware identity mapping for device 0000:00:14.0
[ 0.557799] DMAR: Hardware identity mapping for device 0000:00:14.2
[ 0.557801] DMAR: Hardware identity mapping for device 0000:00:16.0
[ 0.557803] DMAR: Hardware identity mapping for device 0000:00:17.0
[ 0.557805] DMAR: Hardware identity mapping for device 0000:00:1c.0
[ 0.557807] DMAR: Hardware identity mapping for device 0000:00:1c.6
[ 0.557809] DMAR: Hardware identity mapping for device 0000:00:1c.7
[ 0.557811] DMAR: Hardware identity mapping for device 0000:00:1d.0
[ 0.557813] DMAR: Hardware identity mapping for device 0000:00:1d.4
[ 0.557815] DMAR: Hardware identity mapping for device 0000:00:1f.0
[ 0.557818] DMAR: Hardware identity mapping for device 0000:00:1f.2
[ 0.557820] DMAR: Hardware identity mapping for device 0000:00:1f.3
[ 0.557822] DMAR: Hardware identity mapping for device 0000:00:1f.4
[ 0.557825] DMAR: Hardware identity mapping for device 0000:01:00.0
[ 0.557827] DMAR: Hardware identity mapping for device 0000:01:00.1
[ 0.557830] DMAR: Hardware identity mapping for device 0000:6d:00.0
[ 0.557833] DMAR: Hardware identity mapping for device 0000:6e:00.0
[ 0.557836] DMAR: Hardware identity mapping for device 0000:70:00.0
[ 0.557838] DMAR: Setting RMRR:
[ 0.557840] DMAR: Ignoring identity map for HW passthrough device 0000:00:14.0 [0x2e5c8000 - 0x2e5e7fff]
[ 0.557843] DMAR: Prepare 0-16MiB unity mapping for LPC
[ 0.557845] DMAR: Ignoring identity map for HW passthrough device 0000:00:1f.0 [0x0 - 0xffffff]
[ 0.557848] DMAR: Intel(R) Virtualization Technology for Directed I/O
[ 1.143547] AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[ 1.143561] AMD IOMMUv2 functionality not available on this system
[ 2.212461] DMAR: 32bit 0000:6e:00.0 uses non-identity mapping
Code: Select all
$ for iommu_group in $(find /sys/kernel/iommu_groups/ -maxdepth 1 -mindepth 1 -type d); do echo "IOMMU group $(basename "$iommu_group")"; for device in $(ls -1 "$iommu_group"/devices/); do echo -n $'\t'; lspci -nns "$device"; done; done
00:01.0 PCI bridge [0604]: Intel Corporation Skylake PCIe Controller (x16) [8086:1901] (rev 05)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106M [GeForce GTX 1060] [10de:1c60] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10f1] (rev a1)
Code: Select all
pci_stub
vfio
vfio_iommu_type1
vfio_pci
kvm
kvm_intel
Note: vfio_pci tends to leave my system unbootable with intel_iommu=on in the cmdline, that's why I use pci-stub.
Code: Select all
pci_stub ids=10de:1c60,10de:10f1
Code: Select all
$ sudo dmesg | grep pci-stub
[ 3.846977] pci-stub: add 10DE:1C60 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
[ 3.847682] pci-stub 0000:01:00.0: claimed by stub
[ 3.848385] pci-stub: add 10DE:10F1 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
[ 3.849088] pci-stub 0000:01:00.1: claimed by stub
$ lspci -nnk
[...]
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106M [GeForce GTX 1060] [10de:1c60] (rev a1)
Subsystem: CLEVO/KAPOK Computer GP106M [GeForce GTX 1060] [1558:7507]
Kernel driver in use: pci-stub
Kernel modules: nouveau
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10f1] (rev a1)
Subsystem: CLEVO/KAPOK Computer Device [1558:7507]
Kernel driver in use: pci-stub
Kernel modules: snd_hda_intel
[...]
Best regards,
Domme