Stand der Technik: Nvidia-Grafikkarte an virtuelle Maschine durchreichen mit KVM vfio

  • Hallo hepi,


    ein Linux Gast zusammen mit dem CS Nvidia Treiber(Nvidia-346) funktioniert auch, man muss wie bei Windows
    den Hypervisor verstecken:

    Code
    <kvm>
     <hidden state='on'/>
    </kvm>


    Mit dem letzten tianocore/edk2
    GIT
    Stand, soll wohl auch die q35 Emulation via ovmf ohne Probleme laufen,
    ich bekomme dass aber nicht selbst gebaut.
    Damit wäre noch eine Performancesteigerung möglich.


    kind regards

    VDR-Server: Ubuntu 16.04 mit TVH
    als SAT>IP, PLEX Media, und Asterisk Server - ASRock J1900M, DD Cine S2 V6.5 + 3 * DuoFlex S2, 8GB Ram, 8x6 TB HDDs + 8x6 TB Backup Server alle 24 Stunden via rsync, kein Raid
    VDR Clients: yaVDR 0.6.0, ASRock Q1900B, 2GB Ram, 16 GB USB-Stick, Zotac GeForce GT 730, keine Lüfter - alles mit Heatpipes gegen Starngkühlkörper

  • So ich habe es geschafft meine Geforce 630 per OVMF EFI-boot durchzureichen dazu musste ich auch mein Debian Hauptsystem auf UEFI umstellen aber das klappt jetzt. Mit Q35 hatte ich dann von keinem Laufwerk booten können, hab da aber nicht groß probiert da das mit dem i440fx chipset geklappt hat. Steamos konnte ich ohne größere Probleme installieren. Bei Windows7 war schon das Problem, dass Installationsimage zu booten. Offensichtlich funktionieren Installationsimage die verändert wurden z.B. inklusive SP1 nicht um damit im UEFI zu booten. Mit der Original Windows DVD ohne SP1 hat das booten dann geklappt. Jetzt stehe ich vor dem Problem das am Anfang der Installation "Windows startet" kommt und dann nichts mehr passiert. Meine Suche ergab nur das dies eigentlich nicht mit Windows 7 klappen soll da diese den GOP Modus nicht unterstützt. Hatte noch ein Windows 10 Installation probiert --> die lief auf jeden Fall weiter als meine Windows 7 Installation, hab diese dann aber erstmal nicht weiter probiert und werde das die nächsten Tage in Angriff nehmen.


    hepi mich wundert es das du mit Windows7 keine Probleme hattest


    Gruß dile

  • Oh ja sorry da hab ich mich vertan


  • Hallo,


    ich bin immer noch vollauf begeistert, was mit KVM-QEMU und der libvirt so alles möglich ist.


    zu OVMF:


    MS Produkte lassen sich nur mit Original Microsoft ISO Images unter OVMF installieren, meine selbst erstellten ISO Images unter Benutzung
    der Installations DVDs habe ich nicht installiert bekommen.
    Unsere IT war dann so nett mir MSDN Iso Images zur Verfügung zu stellen mit denen gibt es keine Probleme.


    Linux Iso Images lassen sich OOTB via OVMF installieren, getestet habe ich Ubuntu/Linux Mint 15.4, Fedora 21 Workstation und Arch 2015.02.01.


    Solaris sowie FreeBSD machen da keinen Unterschied.


    Bei allen oben genannten war es nötig KVM-QEMU vor dem Nvidia Treiber zu verstecken,


    Code
    <features>
      <kvm>
        <hidden state='on'/>
      </kvm>
    </features>


    mit diesem Eintrag in der XML, hat man volle Hardwarebescheinigung mit der Nvidia Grafikkarte.


    Mir ist da noch ein nettes - Its not a bug, its a feature - aufgefallen,


    OVMF setzt ja normal eine UEFI/GOP taugliche Grafikkarte vorraus, installiert habe ich auch mit GTX750ti, doch nach
    der Installation konnte ich ohne Probleme eine GT520, die kein UEFI/GOP Bios hat, an den Gast weiterreichen, inklusive
    Hardwarebescheinigung.
    Dieses ist mir nur dadurch aufgefallen, da ich die Grafikkartensteckplätze auf dem Mainboard getauscht habe und der Loginscreen
    auf dem anderen Monitor erschien.


    ---------


    Ich hatte dann, im laufe meiner Tests mein System umgebaut, da z.B. der Kernel Parameter, i915.enable_hd_vgaarb=1, DRI auf dem Host deaktiviert - gleich Verlust
    der Hardwarebescheinigung auf dem Intel Host oder intel_iommu=on, den Ton über HDMI/Displayport deaktiviert,
    intel_iommu=on,igfx_off schaltet den Ton wieder ein aber deaktiviert DMAR, was zur Folge hat, es ist kein durch reichen der GPU an den Gast mehr möglich.
    Mein Fazit ein Intel I5/I7/XEON mit Grafikeinheit ist nicht der ideale Gastgeber für KVM-QEMU, aber nur bezogen auf meine Hardware mit Intel z97 Chipsatz,
    ich habe keine Ahnung wie es sich mit anderen Chipsets verhält.


    Mein System schaut jetzt wie folgt aus:
    Intel Xeon E3-1246V3 (Grafikeinheit deaktiviert via pci_stub, wird so nicht initialisiert, lspci listet sie so auch nicht)
    Asrock Z97 Extreme6, mit 32(2x16) GB DDR3 Ram
    Asus GT520 für den Host
    2 x MSI GTX750ti für die Gäste
    Samsung 850 Evo 500GB, für Host und Gäste


    Ubuntu 14.10 als Host mit Kernel 3.18 und acs override patch, Kernelparameter intel_iommu=on, pcie_acs_override=downstream(zum trennen der iommu Gruppen)
    KVM-OEMU 2.2, libvirt 1.2.12, virt-manager aus dem Git


    virt-manager OVMF Gäste:
    WIN 7SP1
    WIN 8.1
    yavdr testing
    Arch Linux


    virt-manager Seabios Gäste:
    Der Nationalpark aus Cupertino in der Version 10.10.2, Vanilla ohne H...in..sh patches (OVMF habe ich nicht hin bekommen, eventuell schafft es jemand anderer mit mehr know how als ich)


    Die Installation war wesentlich aufwendiger als die anderen, liegt nicht an OVMF sondern am OS selbst.



    best regards

    VDR-Server: Ubuntu 16.04 mit TVH
    als SAT>IP, PLEX Media, und Asterisk Server - ASRock J1900M, DD Cine S2 V6.5 + 3 * DuoFlex S2, 8GB Ram, 8x6 TB HDDs + 8x6 TB Backup Server alle 24 Stunden via rsync, kein Raid
    VDR Clients: yaVDR 0.6.0, ASRock Q1900B, 2GB Ram, 16 GB USB-Stick, Zotac GeForce GT 730, keine Lüfter - alles mit Heatpipes gegen Starngkühlkörper

    Einmal editiert, zuletzt von SED9 ()

  • Hallo,
    ich habe mich inzwischen vom Xen-Server verabschiedet, die CPU-Hardware wegen VT-d etwas aufgrüstet und habe es Dank diesen Threads geschafft, eine NVidia-Karte entweder an eine Ubuntu oder an eine Windows 8.1 Installation durchzureichen.


    Host: Ubuntu 14.10 + 3.18-Kernel + beide Patches aus der Arch Forum, qemu-kvm
    Kernel-Parameter: intel_iommu=on, pcie_acs_override=downstream , i915.enable_hd_vgaarb=1
    Gast (1): Windows 8.1 mit der GT630 + 347.52 + OVMF EFI-boot


    Im nächsten Schritt werde ich versuchen, eine DVB-Karte an den Ubuntu-Gast durchreichen, eine TeVii. Mal schauen wie gut qemu-kvm sich mit den Sub-IDs schlägt. Vermutlich sehr gut, da es schon bei der GT630 mit dem Durchreichen an den Gast keine Probleme gab,
    Den Virt-Manager nutze ich bisher noch nicht, QEMU-Aufruf über vorher editiertes Skript.


    kmoss

    HD-VDR 1&2 : Asrock N68C-S UCC, ASUS EN210 Silent, Boot IDE CF-Card, /srv auf SATA Samsung 3TB
    HD-VDR 1 : Sempron145, yavdr 0.4, TeVii S480 V2.1 DVBs2 Dual
    HD-VDR 2 : Sempron140, yavdr 0.5, DD Cine S2 V6.5 + DuoFlex S2
    Server (im Aufbau): Asrock B75M R2.0 mit i5-3470T sowie Zotac GT970 & DD Cine S2 V6.5 für Gastsysteme
    - Host: Manjaro-XFCE mit 4.4er Kernel mit qemu und virt-manager

  • Hallo kmoss,


    den i915.enable_hd_vgaarb=1 brauchst du beim durchreichen per OVMF nicht. Der wird nur beim durchreichen ohne OVMF gebraucht wenn du die Intel GPU verwendest. Ich hab bei mir sogar festgestellt, dass eine Windows 10 Installation bei OVFM mit aktivierten i915.enable_hd_vgaarb=1 extrem träge lief. Der Debian testing Kernel ohne weitere Patches funktioniert bei mir mit OVFM unter Windows 10 und SteamOS und durchgereichter GPU (Geforce 630). Ohne den i915.enable_hd_vgaarb=1 lief dann auch die Windows Installation in normaler Geschindigkeit. Außerdem hat deine Intel GPU ohne den Patch auch die komplette Treiberunterstützung.
    Leider geht Windows 7 nicht so ohne weiteres mit OVMF und EFI Boot, weswegen ich teilweise noch ohne OVMF und mit eigenem Kernel fahre.


    Ich bin auch noch am testen mit meinen Systemen und starte aktuell noch alles über ein Startscript ohne Virt-Manager.


    Gruß Dile

  • den i915.enable_hd_vgaarb=1 brauchst du beim durchreichen per OVMF nicht. Der wird nur beim durchreichen ohne OVMF gebraucht wenn du die Intel GPU verwendest.

    Wenn ich den Kernelparameter i915.enable_hd_vgaarb=1 nicht übergebe -also nur intel_iommu=on, pcie_acs_override=downstream- , starten meine Gastsysteme (Windows 8.1 und auch Ubuntu 14.10) leider nicht, d.h. der Monitor zeigt über den HDMI-Ausgang der GT630 kein Bild.
    Ich kann noch einmal das System nur mit dem override- und ohne den vgaarb-patch aufsetzen, falls das helfen soll. Die Images kann man offentlich übertragen.


    Die integrierte Intelgrafik will ich übrigens nur auf dem Host nutzen. Für den geplanten VDR-Client, YAVDR-Tests oder Win8.1 nehme ich die durchgereichte GT630, für die anderen geplanten Gastsystemen (wie VDR-Server, Router usw.) sollte VGA reichen. Soweit mein Virtualisierungsplan.

    HD-VDR 1&2 : Asrock N68C-S UCC, ASUS EN210 Silent, Boot IDE CF-Card, /srv auf SATA Samsung 3TB
    HD-VDR 1 : Sempron145, yavdr 0.4, TeVii S480 V2.1 DVBs2 Dual
    HD-VDR 2 : Sempron140, yavdr 0.5, DD Cine S2 V6.5 + DuoFlex S2
    Server (im Aufbau): Asrock B75M R2.0 mit i5-3470T sowie Zotac GT970 & DD Cine S2 V6.5 für Gastsysteme
    - Host: Manjaro-XFCE mit 4.4er Kernel mit qemu und virt-manager

  • Also bei mir funktioniert es ohne den vgaarb-patch allerdings hab ich den override Patch bisher glaub ich noch gar nicht verwendet


    Code
    GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_hd_vgaarb=1 pci-stub.ids=10de:1284,10de:0e0f quiet"   --> mit selbstgebauter 3.18.1 Kernel mit dem vgaarb-patch --> Windows 10 OVMF extrem langsam / Steamos OVFM funktioniert / durchreichen klappt auch ohne OVMF  --> auf dem Host läuft die IntelGPU ohne DRI
    GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on  pci-stub.ids=10de:1284,10de:0e0f quiet"   --> mit selbstgebauter 3.18.1 Kernel mit dem vgaarb-patch --> Windows 10 OVMF extrem langsam / Steamos OVFM funktioniert / durchreichen ohne OVMF klappt nicht  --> auf dem Host läuft die IntelGPU mit DRI
    GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on  pci-stub.ids=10de:1284,10de:0e0f quiet"   --> mit Standard Debian jessie Kernel ohne irgendwelche Patches --> Windows 10 OVMF funktioniert normal / Steamos OVFM funktioniert / durchreichen ohne OVMF klappt nicht  --> auf dem Host läuft die IntelGPU mit DRI


    Wenn du auf dem Host die Intelgrafik für einen VDR benutzen willst dann brauchst du halt die komplette Treiberunterstützung für die Intel GPU (ohne vgaarb-patch) , aus diesem Grund probiere ich mich auch an OVMF um auf der Intel GPU auch noch einen VDR Client laufen zu lassen --> dazu bin ich aber noch nicht gekommen.


    Gruß dile

  • Hallo,


    der i915 vga arbiter patch, ist nur nötig sollte kein OVMF EFI Bios verwendet werden können, nach meinen Erkenntnissen kann man so , WIN Vista - 7 - 8 - 10, Linux, FreeBSD, Solaris problemlos betreiben.
    Möchte man jedoch einen OSX Gast, ist bei Benutzung eines Sockel 1150 Boards und CPU mit integrierter Grafikeinheit ist der i915 vga arbiter patch Pflicht.


    Jetzt hat diese Kombination aber gravierende Nachteile, wie ich schon beschrieben habe,


    1. der Kernel Parameter: i915.enable_hd_vgaarb=1 deaktiviert DRI auf dem Host
    2. der Kernel Parameter: intel_iommu=on deaktiviert den Sound des HDMI/Displayports auf dem Host
    3. der Kernel Parameter: intel_iommu=on,igfx_off behält den Ton bei, deaktiviert aber DMAR


    Diese Szenarien habe ich mit Ubuntu, Fedora und Arch durchgespielt, es gibt da keine Unterschiede im Verhalten, egal ob Kernel 3.16, 3.18 oder 3.19.


    Für nicht OVMF Gäste rate ich zu einer XEON CPU ohne Grafikeinheit oder alternativ zum deaktivieren der Grafikeinheit solange man den IGP noch nicht an einen Gast
    weiterreichen kann und einer dezidierten Nvidia Grafikkarte für den Host sowie den ACS override patch.


    Obige ist meine persönliche Lösung, benötigt zwar ca. 4 Watt mehr aber behält die volle HW-Beschleunigung der Grafikeinheit den Ton über HDMI und die Möglichkeit jegliches OS
    mit GPU HW-Beschleunigung zu virtualisieren, in diesem Fall ist es egal ob die Gast Grafikkarte UEFI/GOP tauglich ist oder nicht da man ja nicht auf OVMF angewiesen ist.


    Für OVMF Gäste, reicht der Intel IGP, solange man auf den Ton über HDMI auf dem Host verzichten kann, eine UEFI/GOP taugliche Grafikkarte für den Gast einsetzt und der ACS override patch.


    Best regards

    VDR-Server: Ubuntu 16.04 mit TVH
    als SAT>IP, PLEX Media, und Asterisk Server - ASRock J1900M, DD Cine S2 V6.5 + 3 * DuoFlex S2, 8GB Ram, 8x6 TB HDDs + 8x6 TB Backup Server alle 24 Stunden via rsync, kein Raid
    VDR Clients: yaVDR 0.6.0, ASRock Q1900B, 2GB Ram, 16 GB USB-Stick, Zotac GeForce GT 730, keine Lüfter - alles mit Heatpipes gegen Starngkühlkörper

  • Hallo,


    ich hab den ACS override patch bisher nicht verwendet. Kann es sein das man den nur braucht wenn man mehrere gleiche GPU hat ? Mir ist noch nicht ganz klar was der macht bzw. in welcher Konstellation man diesen braucht.


    Gruß dile

  • Hi,


    ich verlinke dir mal die Beschreibung von Alex Williamson, besser kann man es selbst nicht beschreiben:


    IOMMU Groups, inside and out


    Enable overrides for missing ACS capabilities


    Best regards

    VDR-Server: Ubuntu 16.04 mit TVH
    als SAT>IP, PLEX Media, und Asterisk Server - ASRock J1900M, DD Cine S2 V6.5 + 3 * DuoFlex S2, 8GB Ram, 8x6 TB HDDs + 8x6 TB Backup Server alle 24 Stunden via rsync, kein Raid
    VDR Clients: yaVDR 0.6.0, ASRock Q1900B, 2GB Ram, 16 GB USB-Stick, Zotac GeForce GT 730, keine Lüfter - alles mit Heatpipes gegen Starngkühlkörper

  • Habe wieder etwas Zeit für das Testsystem gefunden. Die Windowsinstallation bereitete einige Sorgen...

    Ich kann noch einmal das System nur mit dem override- und ohne den vgaarb-patch aufsetzen, falls das helfen soll. Die Images kann man offentlich übertragen.

    der i915 vga arbiter patch, ist nur nötig sollte kein OVMF EFI Bios verwendet werden können, nach meinen Erkenntnissen kann man so , WIN Vista - 7 - 8 - 10, Linux, FreeBSD, Solaris problemlos betreiben.


    Beim Neuaufsetzen habe ich bemerkt, dass die Windowsinstallation mit Q35 als virtuelle Maschine doch kein OVMF nutzte :( Zwar habe ich nun QVMF (ohne Q35), allerdings konnte ich die Images nicht übertragen und habe daher den Produkt Key für Windows 8.1 freigegeben, um ihn bei der Neuinstalltion wieder nutzen zu können.
    Aktuell unterscheiden sich die Gastinstallationen von Ubuntu 14.10 und Windows 8.1 nicht nur bei den eingebundenen Images sondern auch im Aufruf.
    Hintergrund: Die Geräte von "virt-scsi-pci" habe ich nicht ins BIOS bei der Windowsinstalltion bekommen und Windows 8.1 suchte beim Setup...


    Ubuntu 14.10


    Windows 8.1

    Code
    qemu-system-x86_64 -enable-kvm -name Windows81 -m 4096 -cpu host,kvm=off \
    -smp 4,sockets=1,cores=1,threads=1 \
    -drive if=pflash,format=raw,file=/home/kmoss/Downloads/ovmf/OVMF_Windows.fd \
    -device ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
    -device vfio-pci,host=01:00.0,romfile=/home/kmoss/Downloads/GT630.rom \
    -device vfio-pci,host=01:00.1 \
    -hda /home/kmoss/Downloads/Windows81.img \
    -cdrom /home/kmoss/Downloads/Windows81.iso \
    -usb -usbdevice host:04d9:2519 -show-cursor \
    -vga none


    Einige Anmerkungen/Fragen habe ich noch:
    1. Ich nutze für OVMF aktuell nur eine Datei. Damit mir die Gastinstallationen nicht die BIOS-Einstellungen gegenseitig ändern, habe ich für jede Gastinstallationen eine eigene OVMF-Datei. Man kann allerdings auch 2 Dateien haben, eine feste (die alle Gäste nutzen können) und eine variable Datei. Nutzt jemand OVMF mit 2 Dateien in einer Gastinstallation?
    2. Mein Hostsystem basiert auf Ubuntu 14.10, dessen Support im Juli abläuft. Inzwischen gibt es Ubuntu 15.04 mit einem 3.19er Kernel. Wenn ich das System neuaufsetze (auf einer SSD statt aktuell Festplatte) und den Kernel patche (patchen muss), könnte ich als Hostsystem 15.04. nehmen. Oder doch besser Ubuntu 14.04 wegen LTS?


    kmoss

    HD-VDR 1&2 : Asrock N68C-S UCC, ASUS EN210 Silent, Boot IDE CF-Card, /srv auf SATA Samsung 3TB
    HD-VDR 1 : Sempron145, yavdr 0.4, TeVii S480 V2.1 DVBs2 Dual
    HD-VDR 2 : Sempron140, yavdr 0.5, DD Cine S2 V6.5 + DuoFlex S2
    Server (im Aufbau): Asrock B75M R2.0 mit i5-3470T sowie Zotac GT970 & DD Cine S2 V6.5 für Gastsysteme
    - Host: Manjaro-XFCE mit 4.4er Kernel mit qemu und virt-manager

  • Randnotiz, bisschen off-topic in diesem KVM-Thread: Das brandneue Xenserver 6.5 SP1 bietet neue Features zum GPU-Durchreichen (wahrscheinlich gibt es bei dem Thema schon Konkurrenzdruck zwischen den Lösungen):


    Zitat
    • Intel GVT-d support for GPU pass through for Windows guests. This allows users of Xeon E3 Haswell processors to use the embedded GPU in those processors within a Windows guest using standard Intel graphics drivers.
    • NVIDIA GPU pass though to Linux VMs allowing OpenGL and CUDA support for these operating systems.


    Quelle: http://xenserver.org/blog.html?view=entry&id=91


    Gruß
    hepi

  • Hallo Leute,


    habt Ihr denn schon Erfahrungen mit Windows 10 sammeln können ?


    Ich hab mit Windows 10 das Problem das die virtuelle Soundkarte nicht richtig funktioniert und der Sound total verzerrt ist. Bin mir aber nicht sicher ob dies an ein generelles Problem mit Windows 10 ist oder nur bei mir nicht funktioniert.



    Ich hab schon mit verschiedenen QEMU_AUDIO Einträgen herumprobiert und mit -soundhw hda bekomme ich nur verzerrten Ton und die CPU Last ist ungewöhlich hoch. Wenn ich auf den HDMI Ausgang der GPU umschalte sinkt die CPU Auslastung und der Ton ist gut. Hab schon mit -soundhw ac97 und anderen Einträgen probiert aber da gibts wohl keinen Treiber. hda installiert sich als High Definition Audio-Gerät von Microsoft.


    ----------

    Zitat

    Archlinux (die Mutter aller Diskussionen zu diesem Thema):


    Der Link https://bbs.archlinux.org/viewtopic.php?id=162768 funktioniert leider nicht mehr --> gestern ging der noch :(


    Bad request. The link you followed is incorrect or outdated.

  • Ich hab jetzt unter Windows 10 den ac97 angelegt


    -soundhw ac97
    damit ich den Realtek Treiber unter Windows 10 installieren konnte hab ich die Treibersignatur von Windows 10 deaktiviert
    Auf den ersten Blick macht die Lösung einen guten Eindruck --> Sound funktioniert normal und keine hohe CPU Last mehr


    Ansonsten läuft Windows10 ganz gut mal sehen ob ich noch auf weitere Probleme treffe.



    Gruß dile

  • habt Ihr denn schon Erfahrungen mit Windows 10 sammeln können ?


    Ich hab mit Windows 10 das Problem das die virtuelle Soundkarte nicht richtig funktioniert und der Sound total verzerrt ist. Bin mir aber nicht sicher ob dies an ein generelles Problem mit Windows 10 ist oder nur bei mir nicht funktioniert.


    Ich habe neben dem vorhandenen Ubuntu als Grundlage für den Host auch auf einer älteren 60GB-SSD mit Arch (Antergos mit 4.1er Kernel aus kernel-vfio-lts) sowie Fedora 23 (Kernel 4.2.8 wird hier genutzt) probiert. Ziel war es statt des bisherigen "Start als sudo über Kommandozeile" den Virt-Manager zu nutzen.
    Fedora mit Virt-Manager ist 1.3.2 und qemu 2.4.1 funktionierte bei mir besser, wobei ich mich an https://www.youtube.com/watch?v=GtV_pYIgxOA orientiert habe. Der Sound in der VM mit Windows 10 funktionierte dabei über den HDMI-Anschluss der 970er ohne zusätzlich eingerichtete Soundkarte.


    Gruß kmoss

    HD-VDR 1&2 : Asrock N68C-S UCC, ASUS EN210 Silent, Boot IDE CF-Card, /srv auf SATA Samsung 3TB
    HD-VDR 1 : Sempron145, yavdr 0.4, TeVii S480 V2.1 DVBs2 Dual
    HD-VDR 2 : Sempron140, yavdr 0.5, DD Cine S2 V6.5 + DuoFlex S2
    Server (im Aufbau): Asrock B75M R2.0 mit i5-3470T sowie Zotac GT970 & DD Cine S2 V6.5 für Gastsysteme
    - Host: Manjaro-XFCE mit 4.4er Kernel mit qemu und virt-manager

  • Ich habe gestern Abend endlich Zeit gefunden, mich mal wieder mit dem Thema zu befassen. Und nun habe ich einen Windows 10-Gast am Laufen auf meiner Nvidia GTX 660.


    Wirt ist ein Ubuntu 15.10 Server, konfiguriert habe ich das System analog zu dem Blog-Posting von Alex Williamson (http://vfio.blogspot.de/2015/0…ies-part-4-our-first.html) weitgehend grafisch über virt-manager.


    Da mein Wirt absichtlich keinen X-Server installiert hat, habe ich virt-manager vom Laptop gestartet und mich per ssh auf dem Wirt eingeloggt. Die Version von virt-manager muss neu genug sein, damit man im UI auch UEFI-BIOS auswählen kann, ebenso sollten die OVMF-Firmwares neu genug sein. Diese Probleme habe ich folgendermaßen gelöst:


    Auf dem Wirt habe ich das Ubuntu-Paket von Ubuntu Xenial dazuinstalliert (http://packages.ubuntu.com/xenial/ovmf).
    Auf dem Laptop habe ich eine virtuelle Maschine mit einem nightly-ISO vom kommenden Ubuntu Xenial eingerichtet, damit ich virt-manager in Version 1.3.2 nutzen kann (http://packages.ubuntu.com/xenial/virt-manager). Ich wollte mir erst diese Version lokal bauen auf Ubuntu Trusty, aber es gibt zu viele Abhängigkeiten und bei Launchpad sind auch keine PPAs zu finden, die virt-manager 1.3.2 rückportieren würden.


    Dann klappte die Anleitung von Alex Williamson recht gut, aber es war eine hakelige und zeitintensive Sache.


    Beim Versuch, die konfigurierte Maschine auf dem Wirt das erste Mal zu starten, lief ich in eine Fehlermeldung bzgl. fehlendem AppArmor-Profil hinein, die wohl damit zusammenhängt, dass ich zusätzlich die OVMF-Firmware von einem bestimmten Ort auf der Platte hinzuladen will. Als Workaround habe ich diesen Vorschlag befolgt:
    http://ubuntuforums.org/showthread.php?t=2292667&p=13375165#post13375165


    Wenn Windows 10 installiert ist und man die grafische Konsole in virt-manager deaktivieren möchte, um auf die native GPU auszugeben, hat sich virt-manager störrisch angestellt und die virtuelle GPU nicht löschen wollen. Dies ging dann einfacher mit virsh edit und dem Löschen bestimmter XML-Häppchen in der Konfigurationsdatei der Maschine.


    virsh edit bringt auch einen uralten Editor (vi/vim) hoch, der nicht meinem Geschmack entspricht. Daraufhin habe ich virsh edit immer mit vorangestellter Variable EDITOR=/bin/nano gestartet, um mit nano arbeiten zu können. Andere Wege, den Editor zu definieren, haben bei mir nicht gezogen.


    Meine Nvidia-GPU hatte ich mal vor längerer Zeit mit einem UEFI/GOP-kompatiblem VBIOS geflasht, habe ich glaube ich auch im Thread beschrieben. Somit kann auf dem Wirt ein ganz normaler Stock-Kernel laufen, der ungepatcht ist.


    Viele Grüße
    hepi

  • Hallo Hepi,


    ein spannendes Thema, ich hatte soetwas schon länger vor und habe es nun endlich auch mal ausprobiert.


    Auch ich habe die Erfahrung gemacht, dass der Weg lang und ein sehr steiniger ist. Dennoch hat es sich gelohnt und ich habe inzwischen ein sehr stabiles und vor allem sehr performantes Setup auf die Beine gestellt und bin sehr begeistert!


    Die Eckdaten:

    • Host: Ubuntu 15.10
    • Gast: Win 10
    • GPU: NVidia GTX770
    • OVMF Betrieb
    • Konfiguration ohne GUI, komplett per Script


    Wesentliche Fallstricke auf meinem Weg:

    • Bei der Bios/Seabios Methode habe ich es nicht geschafft ein Bild auf die NVidia GPU zu bekommen, vermutlich hätte ich da den Kernel patchen müssen
    • OVMF funktioniert dagegen sehr gut
    • Maus/Tastatur sharing per Synergy --> läuft --> Bei Spielen kann die Maus völlig spinnen, in dem Falle musste ich in Synergy "relative movement" aktivieren und die Maus auf den aktiven Screen limitieren, dazu habe ich mir einen Shortcut erstellt
    • Schlechte Sound Qualität/Stottern am HDMI Soundausgang --> Demonic Sound bug --> Lösung ist die Aktivierung von MSI für die NVidia Devices im Gast
    • Netzwerk -> Bridge-Mode
    • Performance-Steigerung durch Aktivierung von hugepages -> brachte bei mir einen deutlichen Geschwindigkeitsschub
    • Starten von QEMU als user statt als root -> Da waren einige Rechteanpassungen nötig
    • schlechte Soundqualität am hda Device im Gast--> Umstellung von 48kHz auf 44,4kHz im Gast brachte viel, Durch zusätzliche Verbesserung der Performance konnte ich das weitestgehend ausbessern

    Tutorials gibt es zwar viele, aber keines das mir 1 zu 1 geholfen hätte.


    hepi: Es sind keine Kernel-Patches, keine PPAs, kein Virt-Manager etc. nötig. So sollte das Ganze mit kleinen config Anpassungen auf 15.10 laufen.




    Mein Script zur Konfiguration bzw. zum Starten kann ich bei Bedarf gerne mal anhängen, da komme ich allerdings momentan nicht dran.


    Gruß,
    Robsta


    Hardware: Antec Fusion Remote Black, Asus P5N7A-VM, E5200, Mystique SaTiX-S2 Dual V2, Stereo-Atmo
    TV: Samsung UE32B6000, BenQ W1070
    Software: yaVDR


  • Das ist mein Start-Script für Win10


    Gruß,
    Robsta


    Hardware: Antec Fusion Remote Black, Asus P5N7A-VM, E5200, Mystique SaTiX-S2 Dual V2, Stereo-Atmo
    TV: Samsung UE32B6000, BenQ W1070
    Software: yaVDR


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!