Vfio passtrough gpu, a question about hdmi


 
Thread Tools Search this Thread
Operating Systems Linux Vfio passtrough gpu, a question about hdmi
# 1  
Old 10-20-2018
Vfio passtrough gpu, a question about hdmi

The situation


Code:
videocard n°1 Nvidia Ge-force(used on host linux)
videocard n°2 Ati radeon(used on guest windows 7)
host is Slackware 14.2,kernel 4.18.15


I had set vfio to pass a ati card to windows7 guest


Configure /etc/modprobe.d/vfio.conf


Code:
options vfio-pci ids=1002:68f9,1002:aa68



configure /etc/modprobe.d/blacklist.conf


Code:
blacklist radeon


configured /etc/default/grub


And of course make the initrd and reboot



I use virt manager and passed the pci devices


This is the xml of libvirt for windows7 guest


Code:


<domain type='kvm' id='13' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>windows7</name>
  <uuid>96908fd1-bb05-4154-a160-e7dc5c029d5e</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.11'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/windows7_VARS.fd</nvram>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <vmport state='off'/>
  </features>
  <cpu mode='custom' match='exact' check='full'>
    <model fallback='forbid'>Opteron_G3</model>
    <vendor>AMD</vendor>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='x2apic'/>
    <feature policy='require' name='tsc-deadline'/>
    <feature policy='require' name='hypervisor'/>
    <feature policy='require' name='arat'/>
    <feature policy='require' name='mmxext'/>
    <feature policy='require' name='fxsr_opt'/>
    <feature policy='require' name='pdpe1gb'/>
    <feature policy='require' name='3dnowext'/>
    <feature policy='require' name='3dnow'/>
    <feature policy='require' name='cmp_legacy'/>
    <feature policy='require' name='cr8legacy'/>
    <feature policy='require' name='3dnowprefetch'/>
    <feature policy='require' name='osvw'/>
    <feature policy='disable' name='monitor'/>
    <feature policy='disable' name='rdtscp'/>
    <feature policy='disable' name='svm'/>
  </cpu>
  <clock offset='localtime'>
    <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>destroy</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='cdrom'>
      <driver name='qemu'/>
      <target dev='sda' bus='scsi'/>
      <readonly/>
      <boot order='1'/>
      <alias name='scsi0-0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='unsafe' io='threads'/>
      <source file='/var/lib/libvirt/images/windows7.qcow2'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <boot order='2'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <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'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='3' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='3'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x11'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x12'/>
      <alias name='pci.5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x13'/>
      <alias name='pci.6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x14'/>
      <alias name='pci.7'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0x15'/>
      <alias name='pci.8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x16'/>
      <alias name='pci.9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x17'/>
      <alias name='pci.10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x18'/>
      <alias name='pci.11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </controller>
    <controller type='scsi' index='0' model='virtio-scsi'>
      <alias name='scsi0'/>
      <address type='pci' domain='0x0000' bus='0x0b' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='PRIVATE'/>
      <source bridge='bridge0'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/4'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/4'>
      <source path='/dev/pts/4'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <console type='pty'>
      <source path='/dev/pts/5'/>
      <target type='virtio' port='1'/>
      <alias name='console1'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='keyboard' bus='virtio'>
      <alias name='input0'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </input>
    <input type='tablet' bus='virtio'>
      <alias name='input1'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input2'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input3'/>
    </input>
    <graphics type='spice' port='5901' autoport='yes' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
      <image compression='off'/>
    </graphics>
    <sound model='ich6'>
      <alias name='sound0'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x01' function='0x0'/>
    </sound>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x07' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
    </hostdev>
    <memballoon model='virtio'>
      <stats period='5'/>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+10089:+10085</label>
    <imagelabel>+10089:+10085</imagelabel>
  </seclabel>
  <qemu:commandline>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.hostdev0.x-vga=on'/>
  </qemu:commandline>
</domain>



The guest start,but return error code 12 "no more resources avaliable"


I suspect is a problem with hdmi..my cards(the audio card and the ati card)
use the same driver(snd-intel-hda) and I cannot blacklist it(no sound at all)


Any solution?

------ Post updated at 10:41 PM ------

Can I pass the card gpu but no hdmi?

------ Post updated at 11:45 PM ------

Hdmi must go with the video..probably is this the problem?


VGA Bios Collection: Sapphire HD 5450 1024 MB | TechPowerUp


"UEFI Supported: No"

------ Post updated 20-10-18 at 06:47 PM ------

I've ordered a old nvidia quadro without hdmi,will work?Next week we know...
This User Gave Thanks to Linusolaradm1 For This Post:
# 2  
Old 10-25-2018
Buy a fresh nvidia quadro.
Put in a slot and is the only device on its iommu group


Code:
lspci |grep VGA|grep NV
05:00.0 VGA compatible controller: NVIDIA Corporation G86 [Quadro NVS 290] (rev a1)


find /sys/kernel/iommu_groups/ -type l|grep iommu|grep 20
/sys/kernel/iommu_groups/20/devices/0000:05:00.0

Start a fresh windows8..no uefi bios,and...code 12 Smilie

------ Post updated at 03:59 PM ------

Solution found: machine with configuration "q35" give errors
Using the classical pc-i440fx configuration,vorks fine.
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Linux

Evdev and joystick on passtrough,windows see it as mouse

I have setup a working vm with gpu passtrough To avoid the use of synergi(commercial) or double keyboard/mouse(sic!) I passtrough my three usb devices using EVDEV Editing the vm I put those lines </devices> <qemu:commandline> <qemu:arg value='-object'/> <qemu:arg... (2 Replies)
Discussion started by: Linusolaradm1
2 Replies

2. UNIX for Beginners Questions & Answers

No sound hdmi

i am having a problem with putting a sound via HDMi.Its muted, nothing. When I tested like this: speaker-test -D hw:PCH,DEV=7 -c 2 i hear that,. this is aplay -L aplay -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server... (2 Replies)
Discussion started by: tomislav91
2 Replies

3. Hardware

How disabling GPU?

Hi All I'm find out a way to disable the DGD: AMD Radeon HD 7470M on my Ubutu 16.04.2 LTS because radeon open source module is not capable to support this GPU and consequence the boot is very slow. I have tried serveral way with pci-stub.ids in the grub menu but not work. In general how... (11 Replies)
Discussion started by: _Fabio_79
11 Replies

4. Linux

Vga passtrough with only one monitor,is possible?

I have one monitor,two vga cards,one is nvidia(host) the other ati rs450(guest),I use this script for use a vm windows with a native gpu(the ati rs450) I see this video and seems to be possible using only one monitor,but I don't understand how to do The video QEMU VGA passthrough without a... (0 Replies)
Discussion started by: Linusolaradm1
0 Replies

5. Hardware

Cooler GPU

In one of our computers a Zotac GPU was installed (Zotac GeForce GTX 780 3GB AMP! to be exact) and the processor remained an Intel Core i7 2600. For the processor a new after-market cooler was installed and for the GPU also, together with fans on all case grids. Initially the temperatures as... (4 Replies)
Discussion started by: figaro
4 Replies

6. Hardware

External GPU issue

Dear all, I set up a external Gforce GPU using the PE4H (Pcie passive adapter) from HWTOOLS.NET. I'm able to add and remove the device doing and The point is the kernel does not initialized the device correctly. Here is what dmesg gives after the scan: lspci -t gives and lspci... (2 Replies)
Discussion started by: aihake
2 Replies

7. UNIX for Advanced & Expert Users

GPU and CUDA

Hi , i want begin programming using CUDA which enviroment can i get .I don't have desktop to buy GPU graphics card. what should to do to get CUDA enviroment. i'm thinking to buy desktop has this card or laptop (1 Reply)
Discussion started by: Scotch
1 Replies

8. Solaris

Tracing the GPU usage

Hello, Can give me some tips to trace the GPU usage on a solaris8 update7 box? I try to understand why a Cadcam app is so slow on my Solaris box compared to a win$ box. I guess it comes from the poor graphic card I have but i would like to emphasize it. My bench is 150sec long on a Solaris... (0 Replies)
Discussion started by: solea
0 Replies
Login or Register to Ask a Question