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

  • Hallo Robsta,


    danke für Dein Feedback!


    Ich hatte mich mit HDMI-Audio über Nvidia-GPU noch nicht auseinandergesetzt, weil ich bisher über DVI gegangen bin und die Onboard-Soundkarte komplett an den Windows-Gast durchgereicht habe. Eben habe ich mal auf HDMI umgekabelt - und hatte keine aktiven Sound-Devices über HDMI. Deshalb werde ich mich mal demnächst durch die MSI-Geschichte durchquälen, die glücklicherweise wieder bei Alex Williamson erklärt ist: http://vfio.blogspot.de/2014/0…-how-to-coax-windows.html


    Mein qemu-Aufruf wird ja bei mir von libvirt gemacht, da ich ja grafisch mit virt-manager konfiguriert habe. Ich finde dann meinen qemu-Aufruf mit allen Parametern im Logfile unter /var/log/libvirt/... Da der Aufruf recht umfangreich ist im Gegensatz zu einem manuell gemachten qemu-Start, und ich die Attribute auch nicht alle kapiere, macht es für mich momentan keinen Sinn, den Aufruf hier zu posten.


    Was mir bei Dir auffällt, ist, dass Du q35 verwendest, wovon Alex Williamson abrät. Ich habe bei mir pc-i440fx-vivid drin.


    Hugepages habe ich auch aktiviert (weil ich den Blog-Post von Alex nachgebetet habe), und virtio usw. Du hast Dir wohl ein Windows10-ISO mit den virtio-Treibern gebacken, löblich! Das erspart Mühe beim Installieren. EDIT: Denkfehler, ist ja kein ISO, Dein Image hat nur virtio im Namen.


    Ich bin recht zufrieden damit, dass ich über libvirt gehe, weil ich damit ein paar Komfort-Features geschenkt bekomme wie Cloning und Restart/Shutdown auf Knopfdruck. Ich habe auf dem Host WebVirtManager installiert. Damit kann ich dann auch Maschinen starten oder stoppen per Web-Browser.


    Schreibe diese Antwort gerade vom Windows10-Gast.


    Gruß
    hepi

  • Hallo,


    in letzter Zeit hat sich doch viel getan.


    Kernel Patches sind nicht mehr nötig, da man jedes OS via OVMF betreiben kann, so hat ein Host mit Intel IGPU auch wieder seine Berechtigung,
    da er ohne Einschränkungen betrieben werden kann.


    Mir ist nur aufgefallen, Win sowie OSX Gäste, konnte ich nicht von Ubuntu 14.10 auf 16.04 übertragen, die USB Maus wden Command prompt urde via USB Pass trough vom Gast nicht erkannt,
    die Tastatur hingegen schon.


    Der Virt Manager zusammen mit der libvirt macht die Angelegenheit doch sehr komfortabel, missen möchte ich dieses Komfort feature nicht mehr, auf Scripting
    kann man getrost verzichten.


    Mal ein kurze Liste was via OVMF, Nvidia möglich ist, als Host Ubuntu 16.04, KVM/Qemu sowie Virt Manager und Libvirt aus dem Ubuntu PPA:


    Code
    1. OS I440FX Q35
    2. Win7 + - (unter Q35 kommt Fehler Code 12, beim durch reichen der Nvidia Karte)
    3. Win10 + +
    4. Linux + + (Ubuntu, Arch, Fedora, Suse bei Debian 8 wurde der Nvidia Treiber nicht erkannt, auf Gentoo habe ich verzichtet, ist nicht mein Fall)
    5. OpenElec ? + (den I440FX habe ich nicht getestet)
    6. yaVDR 6 + +
    7. Solaris + +
    8. FreeBSD + +
    9. OS X - + (getestet mit 10.10 Yosemite und 10.11 El Capitan, via I440FX ist kein OVMF möglich, nur Bios)


    Recht aufwendig sind die Installationen von OpenElec sowie OS X, alles andere wurde mit der Standard ISO installiert.
    Android_X86 werde ich eventuell einmal testen, obwohl ich keine Ahnung habe wie es Nvidia Treiber seitig aussieht.


    Beste Grüße

    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 SED9,


    super Übersicht, danke dafür!

    alles andere wurde mit der Standard ISO installiert.

    Das yaVDR 0.6 Iso zB unterstützte bei mir keinen UEFI boot, ich habe es nach diesem Thread gepatcht. (Haha, und ich sehe gerade dass du genau diesen Weg aufgezeigt hast). Mit Patch lief zwar die Installation durch, allerdings hat das installierte yaVDR dennoch nicht per UEFI gebootet.


    Eine funktionierende "out of the box" Installation kann ich also hier nicht bestätigen.



    Bzgl. VirtManager kann ich eure Argumente des erweiterten Komforts gut nachvollziehen. Leider ist eben (bisher) bei Ubuntu <=15.10 keine VirtManager Version mit OVMF Support enthalten, so dass ich erst mal bei den Scripten hängen geblieben bin. Dies würde ich jedoch auch gerne mal umstellen sobald entsprechende Pakete verfügbar sind.


    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


  • Hallo,


    Da gebe ich Dir recht, die 0.6.0 yavdr ISO war etwas buggy, UEFI ging bei mir nur nach dem ISO-rebuild, auch nach der Installation
    war etwas Nacharbeit angesagt, da wurden, soweit ich mich erinnere, teilweise verschiedene Kernelfragmente aufgespielt.<- oder in dieser Art


    Ich hatte, bei den älteren Ubuntu Versionen, das PPA von Jacob Zimmermann eingebunden,
    dieses war immer aktueller als die Ubuntu Repos.
    Zum Schluss hatte ich mir dann die Pakete aus den jeweiligen Git's gebaut, bis ich die Abhängigkeiten nicht mehr auflösen konnte, mein 14.10 war ja schon ewig abgelaufen.


    Jetzt läuft bei mir alles unter 16.04 ohne Probleme.


    Beste Grüße

    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

  • Ich hatte mich mit HDMI-Audio über Nvidia-GPU noch nicht auseinandergesetzt, weil ich bisher über DVI gegangen bin und die Onboard-Soundkarte komplett an den Windows-Gast durchgereicht habe. Eben habe ich mal auf HDMI umgekabelt - und hatte keine aktiven Sound-Devices über HDMI. Deshalb werde ich mich mal demnächst durch die MSI-Geschichte durchquälen, die glücklicherweise wieder bei Alex Williamson erklärt ist: http://vfio.blogspot.de/2014/09/vfio-int…ax-windows.html

    Hey Hepi,


    die MSI Geschichte verhilft nur zu besserer Performance, falls du gar kein Device angezeigt bekommst, gibt es noch ein anderes Problem.


    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


  • Da gebe ich Dir recht, die 0.6.0 yavdr ISO war etwas buggy, UEFI ging bei mir nur nach dem ISO-rebuild, auch nach der Installation
    war etwas Nacharbeit angesagt, da wurden, soweit ich mich erinnere, teilweise verschiedene Kernelfragmente aufgespielt.<- oder in dieser Art


    Ich habe es bisher nicht mit yavdr 0.6.1 hinbekommen. Zwar hatte ich schon einmal ein Bild, allerdings kann ich nicht auf die Konsole umschalten.
    Versuche bisher waren ein anderer Kernel und das Erstellen der xorg.conf:

    Code
    1. sudo apt-get install linux-image-generic-lts-vivid linux-headers-generic-lts-vivid
    2. sudo process-template /etc/X11/xorg.conf.yavdr


    Zum Vergleich hatte ich auch direkt yavdr 0.6.1 auf einer Test-SDD installiert, da konnte ich auf die Konsole umschalten.


    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,


    ist natürlich schwer zu erkennen wo der Fehler liegt.


    Wird denn bei dir

    Quote

    /usr/bin/signal-event first-vdr-start


    ohne Fehler abgearbeitet, bzw. ist die Datei

    Quote

    /etc/init/first-vdr-start.conf


    noch vorhanden?


    Löse /usr/bin/signal-event first-vdr-start mal händisch aus und stell den Output online, oft
    klemmt es wohl an dieser Stelle.


    Was mir noch eingefallen ist, wie installierst du yavdr, mit oder ohne GPU passthrough?


    Installierst du mit GPU passthrough, darfst du

    Code
    1. <features>
    2. <features>
    3. <acpi/>
    4. <apic/>
    5. <kvm>
    6. <hidden state='on'/>
    7. </kvm>
    8. <vmport state='off'/>
    9. </features>


    In der XML nicht vergessen, soweit du eine Nvidia Karte benutzt.


    Beste Grüße

    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

  • Ich habe nach der Installation von yavdr0.6.1 ein Overlay-Image erstellt. Kann also jederzeit zurück.
    Informationen über das System direkt nach der Installation:


    Ja, ich installiere mit der NVIDIA-Karte:


    Zum Schluss noch syslog mit grep 'vdr:' im Anhang.



    kmoss

    Files

    • syslog.zip

      (3.79 kB, downloaded 64 times, last: )

    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

  • Offenbar gibt es Probleme bei der Einstellung der UHD-Auflösung. Wenn ich auf Full-HD über das Web-Interface einstelle, geht es :-)

    Images

    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

  • Offenbar gibt es Probleme bei der Einstellung der UHD-Auflösung

    Ich habe bislang nur an einem Monitor mit 2560x1440 getestet, aber soweit ich weiß meckert softhddevice, wenn das OSD größer als Full-HD ist.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)