Alexander Pohl
2014-Sep-12 17:22 UTC
VGA passthru of HD4400 graphics on intel nuc kit is not working
Hi, I am trying to setup VGA passthrough of Intel HD Graphics 4400 on an Intel nuc kit with a core I3-4010U processor. The Intel website clearly states that this mainboard supports VT-x and VT-d and the bios has options for both [1,2]. However, all I get are blue screens and resource not available errors in the windows device manager. [1] http://ark.intel.com/products/76978/Intel-NUC-Kit-D34010WYK [2] http://ark.intel.com/products/75107/Intel-Core-i3-4010U-Processor-3M-Cache-1 _70-GHz I use up to date Arch Linux (Linux intel-nuc 3.16.2-1-custom #1 SMP PREEMPT Wed Sep 10 10:18:12 CEST 2014 x86_64 GNU/Linux) as dom0 with Xen 4.4.1 and the xl toolstack. I want to virtualise Windows 7 Professional N edition with emulated standard VGA as primary adapter and HD4400 chipset graphics as secondary graphics passed through to domU. I am using the new xen-qemu device model as this is much faster on my box than xen-qemu-traditional. But I tried both and both don't work correctly. lspci output: 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09) !!! 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) !!! 00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09) 00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04) 00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04) 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-V (rev 04) !!! 00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04) 00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04) The VT-d relevant xen kernel output: (XEN) Intel VT-d iommu 0 supported page sizes: 4kB. (XEN) Intel VT-d iommu 1 supported page sizes: 4kB. (XEN) Intel VT-d Snoop Control not enabled. (XEN) Intel VT-d Dom0 DMA Passthrough not enabled. (XEN) Intel VT-d Queued Invalidation enabled. (XEN) Intel VT-d Interrupt Remapping enabled. (XEN) Intel VT-d Shared EPT tables not enabled. (XEN) I/O virtualisation enabled It looks like VT-d has been automatically enabled, although I am worried that Dom0 DMA Passthrough shows as not being enabled. Here is my domU config file: builder = "hvm" name = "windows" uuid = "9b43be1d-3cef-4431-9e3d-f5f3c9c4bd79" viridian = 1 memory = 4096 maxmem = 4096 vcpus = 2 vif = [ 'mac=00:16:3e:68:e1:10,bridge=xenbr0,model=e1000' ] disk = [ 'file:/mnt/data/xen/domU.img,hda,w', 'file:/mnt/data/install/dreamspark/win7/en_windows_7_professional_n_with_sp1 _x64_dvd_u_677207.iso,hdb:cdrom,r' ] sdl = 0 vnc = 1 vnclisten = '0.0.0.0' vncpasswd = 'xen' #device_model_version='qemu-xen-traditional' #boot='dc' acpi=1 apic=1 hap=1 pae=1 usb=1 localtime=1 usbdevice='tablet' on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'destroy' xen_platform_pci=1 pci_power_mgmt=1 pci_msitranslate=1 #gfx_passthru=1 pci = ['00:02.0','00:03.0','00:1b.0'] pci-back is compiled into a custom Arch linux kernel and pci resources to be hidden are specified with grub on kernel command line during boot. The pci addresses are visible with xl pci-assignable-list after booting. Here is the relevant grub2 config: XEN_HYPERVISOR_CMDLINE="dom0_mem=512M,max:512M dom0_max_vcpus=1 dom0_vcpus_pin xsave=1" XEN_LINUX_CMDLINE="console=tty0 xen-pciback.hide=(00:02.0)(00:03.0)(00:1b.0)" I installed windows 7 into a 100 GB sparse file located on a NAS and mounted through NFS using the config file shown above. After first boot of DomU I downloaded and installed the HD graphics drivers from the Intel website [3]. [3] https://downloadcenter.intel.com/SearchResult.aspx?lang=&ProductID=3742&Prod Id=3742 The windows device manager installs the following graphics devices: 1) Intel HD Graphics Familiy PCI Slot 5 (PCI bus 0, device 5, function 0) This device cannot find enough free resources that it can use. (Code 12) If you want to use this device, you will need to disable one of the other devices on this system. 2) Standard VGA Graphics Adapter PCI Slot 3 (PCI bus 0, device 3, function 0) This device works properly. 3) Other devices: PCI Device PCI Slot 2 (PCI bus 0, device 2, function 0) The drivers for this device are not installed. (Code 28) To find a driver for this device, click Update Driver. My question is, why is the HD adapter at 00:05.0? Should it not be at 00:02.0 where the other pci device is found? Searching for drivers for the device at 00:02.0 does not find any. The Windows device manager also installs HD audio device drivers, but audio playback is distorted. I need help how to get this setup working and how to create debug output of the Xen hypervisor, Dom0 and DomU in order to give more details. I understand that the Intel nuc kits are quite new hardware. Maybe it isn't possible yet? Many thanks. Alexander