Works perfectly now! Thank you Alex! Thanks, Daniel
On Tue, Jan 17, 2017 at 11:18 PM, Alex Williamson < alex.l.william...@gmail.com> wrote: > On Tue, Jan 17, 2017 at 8:54 PM, Daniel Browne <jairuncal...@gmail.com> > wrote: > >> Hi guys, >> I've got a new Fedora 25 host setup and I am attempting to get an Ubuntu >> 16.40 guest running with VGA passthrough. On the guest, I've installed the >> official nvidia driver via the Ubuntu drivers tool. The nvidia driver >> loads, but xorg.log shows the error "failed to initialize glx extension >> (compatible nvidia x driver not found)" >> >> Based on an e-mail to this list from the last time I attempted this, it >> is my understanding that you need a Q35 machine and a valid pci-e bus setup >> to make this all work. >> > > I'm not sure how much this is true, that you need a "valid pci-e bus > setup", but you haven't got one. AFAIK, the PCI-e root port issues are > limited to Radeon. > > > I *believe* I have a valid pci-e setup with Q35, but I'm honestly not >> entirely sure. Most of what I've found regarding the subject is a bit light >> on details. I would appreciate it if someone could look over my domain XML >> below and help me figure out what I'm doing wrong. >> >> <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0 >> '> >> <name>ubuntu16.04</name> >> <uuid>80e1008f-b83c-47c7-a334-c9a07577751c</uuid> >> <memory unit='KiB'>4184064</memory> >> <currentMemory unit='KiB'>4184064</currentMemory> >> <vcpu placement='static'>2</vcpu> >> <os> >> <type arch='x86_64' machine='pc-q35-2.7'>hvm</type> >> <loader readonly='yes' type='pflash'>/usr/share/edk2/ >> ovmf/OVMF_CODE.fd</loader> >> <nvram>/var/lib/libvirt/qemu/nvram/ubuntu16.04_VARS.fd</nvram> >> <boot dev='hd'/> >> </os> >> <features> >> <acpi/> >> <apic/> >> <kvm> >> <hidden state='on'/> >> </kvm> >> <vmport state='off'/> >> </features> >> <cpu mode='custom' match='exact'> >> <model fallback='allow'>Haswell-noTSX</model> >> </cpu> >> <clock offset='utc'> >> <timer name='rtc' tickpolicy='catchup'/> >> <timer name='pit' tickpolicy='delay'/> >> <timer name='hpet' present='no'/> >> </clock> >> <on_poweroff>destroy</on_poweroff> >> <on_reboot>restart</on_reboot> >> <on_crash>restart</on_crash> >> <pm> >> <suspend-to-mem enabled='no'/> >> <suspend-to-disk enabled='no'/> >> </pm> >> <devices> >> <emulator>/usr/bin/qemu-kvm</emulator> >> <disk type='file' device='disk'> >> <driver name='qemu' type='raw'/> >> <source file='/var/lib/libvirt/images/ubuntu.img'/> >> <target dev='vda' bus='virtio'/> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x04' >> function='0x0'/> >> </disk> >> <disk type='file' device='cdrom'> >> <driver name='qemu' type='raw'/> >> <target dev='sda' bus='sata'/> >> <readonly/> >> <address type='drive' controller='0' bus='0' target='0' unit='0'/> >> </disk> >> <controller type='usb' index='0' model='ich9-ehci1'> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' >> function='0x7'/> >> </controller> >> <controller type='usb' index='0' model='ich9-uhci1'> >> <master startport='0'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' >> function='0x0' multifunction='on'/> >> </controller> >> <controller type='usb' index='0' model='ich9-uhci2'> >> <master startport='2'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' >> function='0x1'/> >> </controller> >> <controller type='usb' index='0' model='ich9-uhci3'> >> <master startport='4'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' >> function='0x2'/> >> </controller> >> <controller type='sata' index='0'> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' >> function='0x2'/> >> </controller> >> <controller type='pci' index='0' model='pcie-root'/> >> <controller type='pci' index='1' model='dmi-to-pci-bridge'> >> <model name='i82801b11-bridge'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' >> function='0x0'/> >> </controller> >> <controller type='pci' index='2' model='pci-bridge'> >> <model name='pci-bridge'/> >> <target chassisNr='2'/> >> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' >> function='0x0'/> >> </controller> >> > > Add a PCIe root port here: > > <controller type='pci' index='3' model='pcie-root-port'> > <address type='pci' domain='0x0' bus='0x0' slot='0x1c' function='0'/> > </controller> > > > <controller type='virtio-serial' index='0'> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' >> function='0x0'/> >> </controller> >> <interface type='network'> >> <mac address='52:54:00:11:00:b1'/> >> <source network='default'/> >> <model type='virtio'/> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' >> function='0x0'/> >> </interface> >> <serial type='pty'> >> <target port='0'/> >> </serial> >> <console type='pty'> >> <target type='serial' port='0'/> >> </console> >> <channel type='spicevmc'> >> <target type='virtio' name='com.redhat.spice.0'/> >> <address type='virtio-serial' controller='0' bus='0' port='1'/> >> </channel> >> <input type='mouse' bus='ps2'/> >> <input type='keyboard' bus='ps2'/> >> <graphics type='spice' autoport='yes'> >> <listen type='address'/> >> <image compression='off'/> >> </graphics> >> <sound model='ich6'> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x02' >> function='0x0'/> >> </sound> >> <video> >> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' >> primary='yes'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' >> function='0x0'/> >> </video> >> > > Hmm, you have emulated QXL graphics too, this alone could be the source of > your problem. Generally the xorg.conf needs a BusID to pick the right > device in this sort of setup, but I can't vouch for GeForce working as > secondary in a Linux guest. > > >> <hostdev mode='subsystem' type='pci' managed='yes'> >> <driver name='vfio'/> >> <source> >> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> >> </source> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' >> function='0x0'/> >> </hostdev> >> > > Chance the address to: > > <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> > > Bus = 3 puts it on the index = 3 pcie-root-port above > > > >> <hostdev mode='subsystem' type='pci' managed='yes'> >> <driver name='vfio'/> >> <source> >> <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/> >> </source> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x07' >> function='0x0'/> >> </hostdev> >> <redirdev bus='usb' type='spicevmc'> >> <address type='usb' bus='0' port='1'/> >> </redirdev> >> <redirdev bus='usb' type='spicevmc'> >> <address type='usb' bus='0' port='2'/> >> </redirdev> >> <memballoon model='virtio'> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x05' >> function='0x0'/> >> </memballoon> >> </devices> >> <qemu:commandline> >> <qemu:arg value='-set'/> >> <qemu:arg value='device.hostdev0.x-vga=on'/> >> </qemu:commandline> >> > > Kudos for good use of <qemu:arg>, but you're running an OVMF VM, so you > don't want to use this. Thanks, > > Alex > > >> </domain> >> >> Thanks, >> Daniel >> >> _______________________________________________ >> vfio-users mailing list >> vfio-users@redhat.com >> https://www.redhat.com/mailman/listinfo/vfio-users >> >> >
_______________________________________________ vfio-users mailing list vfio-users@redhat.com https://www.redhat.com/mailman/listinfo/vfio-users