[vfio-users] GPU passthrough with Intel KVMGT, Nvidia card gets subsystem id 00000000 when passed through

Jack Coulter jscinoz at jscinoz.so
Tue Jul 12 00:29:38 UTC 2016


Hi János,

I had problems myself when trying to extract a card's firmware via
Nouveau - the resulting VBIOS images gave me the same issue in the VM -
a subsystem ID of all zeros. On a hunch, I made a bootable Windows USB
and dumped the VBIOS with GPU-Z - this resulting binary then worked with
VFIO. You could give this a try and see if it resolves your issue. You
can use rufus (https://github.com/pbatard/rufus) to create a live
Windows environment ("Windows to Go" is the option you're after).

Curious to hear how this goes, as I've recently acquired an Optimus
system myself and have been wondering if KVMGT + VFIO would finally
allow for Optimus to work in a VM.


Kind regards,
Jack

On 11/07/16 06:26, János Horváth wrote:
> Hi all,
>
> I'm trying to get native Windows gaming performance while running
> Linux on my Optimus laptop (Lenovo Y50).
> Hardware:
> CPU: Intel Core i7-4710HQ
> RAM: 16GB DDR3 1600MHz
> GPU: Nvidia GeForce GTX860M & Intel HD 4600
> It supports IOMMU and all the requirements for the pci passthrough.
>
> I have found a project by Intel, KVMGT
> (https://01.org/igvt-g/blogs/wangbo85/2016/intel-gvt-g-kvmgt-public-release-q12016)
> which lets me share the Intel Integrated Graphics (HD 4600) between
> the host and the guest, so I thought that I could replicate the
> Optimus feature inside the VM, while the host would be running on the
> Intel HD 4600. I installed Intel's test release to the laptop (Ubuntu
> 14.04 64bit with kernel 4.3.0 patched with support for KVMGT, and a
> patched QEMU and SeaBios) and created a Windows 8.1 64bit VM.
> It works great, the VM recognizes the Intel HD 4600 and I am able to
> choose which machine's (host or guest) screen to show on my display.
> (By the way this (Intel's) solution is by far the best for this
> purpose as I am able to switch between which OS to show on the
> displays not having to only rely on which monitor is plugged to which
> output)
> The problem is (as expected) with the Nvidia GTX860M. I am able to
> pass through the device, but in Windows Device Manager, it shows the
> vendor and device ID correctly, but the subsystem shows as 00000000,
> so I am of course unable to install any driver.
> I have tried to use the vBIOS of the Nvidia card with the romfile
> option of QEMU, but it does not help (I extracted the vBIOS, which is
> not UEFI capable btw, with nouveau driver from a live system).
>
> Here is the command I use to start QEMU:
> sudo /usr/bin/qemu-system-x86_64 -m 2048 -smp 2 -M pc -name kvmgt
> -drive
> file=/media/hjanos/Hjanos2TB/VM/GPU/GPU-intel.img,format=raw,index=0,media=disk
> -cdrom
> /media/hjanos/Hjanos2TB/ISO/en_windows_8.1_with_update_x64_dvd_4065090.iso
> -bios /usr/bin/bios.bin -enable-kvm -vgt -vga vgt -display sdl
> -machine kernel_irqchip=on -vgt_high_gm_sz 384 -vgt_low_gm_sz 128
>  -vgt_fence_sz 4 -cpu
> host,kvm=off,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_vendor_id=Nvidia43FIX
> -usb -usbdevice tablet -net nic -net tap,script=/home/hjanos/qemu-ifup
> -net user,smb=/home/hjanos -device
> vfio-pci,host=01:00.0,romfile=/media/hjanos/Hjanos2TB/VM/GPU/vbios.rom
>
> I need help to figure out why does the subsystem id gets changed to
> 00000000 when I pass through the Nvidia card, as I beleive that makes
> the driver unable to install. (it is not code 43 as usual, rather it
> is code 28)
>
> Please let me know if you need any additional details.
>
> Thanks,
> Janos
>
>
> _______________________________________________
> vfio-users mailing list
> vfio-users at redhat.com
> https://www.redhat.com/mailman/listinfo/vfio-users


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160712/b563a337/attachment.sig>


More information about the vfio-users mailing list