Tutorial: Fedora 23, libvirt ,KVM, GPU passthrough, win8.1 and GTX780, copy and paste

hallo pumuckel und vielen dank für den sinnvollen thread.

ich selber finde das schon ziemlich interessant. waäre an einer umsetzung auf arch oder ubunutu (und nebenderivaten) aber sehr interesiert.

Mir kam gerade noch ein anderer gedanke.

Ist das was da gemacht wird nicht irgendwie auch das, was man mit parallels unter mac os macht, wenn man dort windows anschmeisst? (na also ohne bootcamp)
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
da ich gestern abend meinen i3 durch einen vt-d-fähigen i5 ersetzt habe (dieser thread war einer der gründe :d ), werde ich das ganze in nächster zeit mal unter arch testen und selbstverständlich hier berichten.

falls du (fischje) oder jemand anderes bis dahin weiter kommt, würde ich mich über einen erfahrungsbericht freuen.
 
Ich wäre bei einer rolling distro etwas vorsichtiger, da dort schnell mal ein update die Sache zerbroeseln kann.

Aber ihr kennt euch da sicherlich besser aus und arch war ja auch die erste, mit der es zuverlässig ging ;)

Schreibt durch mal den youtuber an oder geht auf seinen blog. :)
 
Zuletzt bearbeitet:
Habe das vor 2 Jahren mal mit Arch-Linux genutzt und da lief das meiste Zeug sehr flüssig. Ich hatte "damals" (es hat sich ja schon einiges getan seit den ersten Kerneln mit denen VGA/PCIe Passhtrough lief) nur Probleme mit Soundaussetzern. Als ich den Athlon 640 dann gegen nen FX8350 getauscht hatte, war auch das weg. Für Arch Fans, hier ein nützlicher Thread im Arch Forum.
 
Nachtrag (wegen einiger PMs)

VT-D oder AMD IOMMU sind natürlich nötig

WICHTIG: nicht jede Kombination von MB und CPU kann VT-D oder IOMMU .... und selbst wenn es "angezeigt" wird heißt dass noch nicht, das VT-D oder IOMMU fehlerfrei arbeiten !

Consumer Boards haben oft fehlerhafte Bios Implementationen der Tables

auch ist für das OS immer (95%) eine VGA nötig zusätzlich zur dez die man durchreicht (also z.B. eine IGP ist nie so durchreichbar - wird sich aber evtl ändern ab 4.4 (nicht für Gamer) )
... z.B. das durchschieben einer Intel IGP scheitert


Anlauf Stelle : http://vfio.blogspot.de/
 
Zuletzt bearbeitet:
vielen dank, dass du die informationen nochmal zusammenfasst hast. (auch wenn grad für mich persönlich nichts neues dabei war) ich würde es sehr begrüßen, wenn der erfahrungsaustausch öffentlich stattfindet, was nun mal der sinn eines forums ist.

anstatt dem threadersteller eine pm zu schreiben, sollten fragen im thread gestellt werden. dann können ggf. auch andere antworten und die auftretenden probleme nachvollziehen.
 
ich habe vor, mir in 2 wochen einen 4k-monitor zu holen. der grafikanschluss auf meinem mainboard unterstützt natürlich keine 4k-auflösungen. damit ist doch das virtualisierungsprojekt für mich erstmal gestorben oder wäre folgendes szenario denkbar?

monitor 1 (1920x1200@hdmi) an intel i5-igpu / monitor 2 (3840x2160@dp) an amd hd280x

wichtig ist mir, dass der 4k-monitor beim host (arch) und beim gast (windows) nutzbar ist. den host könnte ich ja über den alten monitor bedienen, solange ich die vm nutze. meine idee war, die grafikkarte nur bei bedarf - sprich, wenn die vm gestartet werden soll - via pci-stub oder blacklist beim host rauszuwerfen. oder kann die dezidierte grafikkarte gar nicht für den host verwendet werden?
 
Hm, das Herauswerfen via Blacklist und umschalten per Bootoption geht sicher (so machst du es ja jetzt auch :?), allerdings fürchte ich, dass man nicht wirklich im laufenden Betrieb die Grafikkarte "umhängen" kann (mit anderen Karten (USB) geht das aber recht gut, unbind → vfio-pci → vm → vm starten), da da mindesten die Linux-Treiber nicht mitspielen. Andererseits: du hast Haswell? – warum kaufst du dann nicht "einfach" für 70€ ein Board mit Displayport?
 
ich habe einen ivy bridge. extra kohle ausgeben wollte ich eigentlich, da ich es erstmal als test betrachte. (hab im prinzip wegen vt-d überhaupt erst meinen i3 sandy bridge ersetzt)
 
Bei AMD gibts AMD-Vi in fast jeder Preisklasse ;)

Wollt's nur mal gesagt haben, da Intel mit VT-d so unverschämt geizt und sich das leider ordentlich bezahlen lässt.
 
dafür interessiert die Leute, die das entwickeln, AMD schon seit 2-3 Jahren nicht mehr ;) (und die Boardhersteller bei Intel und AMD sowieso nicht).

@mitch: willst du die im laufenden Betrieb rauswerfen oder einfach quasi "dualboot" (d.h. immer, wenn du die VM nutzt neustarten) – 2teres geht sicher, muss man halt in Grub 2 Einträge erstellen und dann evtl. noch in einem Skript die Module nachladen, wenn man die GPU nutzen will. Die erste Methode geht wahrscheinlich auch, wenn die GPU per UEFI (ich denke mit VGA sind die Chancen eher gering, dass die Treiber mitmachen) ordentlich resetet wird (du hast dein Linux via UEFI gebootet), da musst du aber halt dann den Xserver aus und einschalten, was, wenn du keine Serverdienste nutzt, auch mit einem Neustart fix zu beheben wäre.

@Pumuckel: ich schau' mal, ob ich das vfio-tutorial für UEFI-passthrough ein bisschen für Debian "übersetze" und werde das dann in einen extra Thread bringen, dann kann ein Mod sicher die Diskussion umhängen.
 
Wie kommst du denn darauf? Ich finde Intel sollte nicht für solche Abzockmethoden belohnt werden, und so langeman nich unbedingt die absolute super Top-Performance braucht tut es gerade für kleinere Server zum Testen oder für's NAS auch ein AMD, der dann immerhin einen angemessenen Preis hat.
 
Zuletzt bearbeitet:
Es geht hier ja um VFIO-PCIe-passtrough und das wird afaik weitgehend von Redhat gesponsert, die machen Enterprise-Software – sag' mir nochmal, wann die letzten Opterons verschwunden sind ;)?
Zum Testen geht es natürlich auch, theoretisch hat das AMD ja auch alles, nur wird von Entwicklerseite AMD eher nicht evaluiert. Hinzu kommt dann, dass das ja auch bei Intel-Consumer-Boards nicht immer perfekt implementiert ist, das Problem hat man halt bei AMD auch und wenn da vllt. Asrock bei einem Z97 nochmal ein Beta-Bios verschickt, weiß ich nicht, ob das Asus für ein 5 Jahre altes AM3+-Board auch macht.
Außerdem weiß niemand auch nur ungefähr, wie man an ein gutes AMD-Board mit ACS-Support kommt (weil sich auch niemand für einen 5 Jahre alten Chipsatz interessiert). Im spezifischen Fall des GPU-Passtrough ist das aber wichtig, wenn man den Kernel seiner Distro nicht patchen will (was meiner Ansicht nach zu einem "stabilen", reproduzierbaren Setup doch für 80% der Linuxnutzer dazu gehört). In dem Anwendungsfall ist auch die IGP von Intel recht gut, da man dann keine zweite GPU (will man 4k~120€; Aufpreis Board ~20€) für Linux braucht und der Intel-Treiber PCIe-Devices eher nicht in die Quere kommt (davon abgesehen, dass man auf der Consumer-Plattform die zweite GPU bei Intel halt nicht ordentlich unterbringen kann, weil die CPU-Rootports kein ACS unterstützen – da betritt man halt bei AMD mit jedem Board terra incognita, bei Intel steht der Nachteil schon auf der "Verpackung").

Willst du einen Storagecontroller an dein FreeNAS durchreichen → kann man gerne AMD probieren ;).
 
Ja um Consumersachen gehts es hier ja eigentlich. Zumindest um Consumerangelegenheiten, auch wenn gerade hier im Luxx natürlich viele dafür trotzdem Serverhardware holen :)

Intel hat jaauch erst kürzlich eine Consumer CPU mit VT-d eingeführt, bis dahin war da AMD sogar klar im Vorteil, weil man ja nicht zur teuren Serverhardware gezwungen war. Zumindest für Preisbewusste eine Alternative. Eine starke interne Grafik kann man den APUs ja ohnehin nicht absprechen. Ob der AMD Treiber jetzt da zickiger ist odernicht weiß ich nicht, aber es ist schade dass man darüber kaum Erfahrungen findet. Ich habe schon etwas den Eindruck, dass sich das leider selbst bedingt - so lange man keine Erfolgsberichte dazu findet, machts auch keiner.

Aber ist schon blöde. Man findet ja schon so gut wie nichts an Erfahrungen und Tuts zu Vi, geschweige denn zu weiteren Details wie ACS...
 
Intel hat jaauch erst kürzlich eine Consumer CPU mit VT-d eingeführt, bis dahin war da AMD sogar klar im Vorteil, weil man ja nicht zur teuren Serverhardware gezwungen war.
Intel hat schon seit Jahren Consumer CPUs (i5 und i7) und Business Boards im Programm die problemlos VT-d unterstützen. Preislich ist das auch nicht so teuer. Intel kann nichts dafür, wenn Gamer (und die trifft man hier im Forum in der Masse an) sich nun einmal Gamer Boards kaufen und keine Boards mit einem Q PCH. Bisher war das meist so, daß die OC tauglichen PCHs und CPUs VT-d nicht unterstützt haben. Die typischen Server/Workstation Anbieter achten darauf, daß VT-d problemlos läuft und somit mit Xeon und passendem Board die Wahrscheinlichkeit am besten ist, daß das vollkommen problemlos läuft.

Wenn wir anfangen von AMD Hardware zu reden, ist das nicht mehr der Fall. Selbst mit Opteron Systemen muß man damit leben, daß es erhöhten Bastelbedarf gibt, alles schlechter dokumentiert ist und die Performance nicht so gut wie bei Intel ist, und zwar auch bei solchen Dingen bei denen man es gar nicht erwartet.
 
..... Die Intel/AMD Kontroverse bitte im CPU oder Mainboard Hardwareforum austragen.

DANKE
 
Ein Frage zum Thema des Threads: Ist es einem von Euch gelungen eine Geforce GT210 an eine VM durchzureichen?
 
diese Gfx hatte ich nie hoffe dir kann jemand helfen

wobei (nur anmerkung) die NVidia bisher immer UEFI erforderten ... die AMD aber ohne auch funktionierten .... die 210 hat kein UEFI

mußte selbst zu einer GTX 960 wechseln um das zu testen (meine Alte GTx 660 funktionierte auch nicht) .. NV blocked die usage
 
Zuletzt bearbeitet:
wobei (nur anmerkung) die NVidia bisher immer UEFI erforderten ... die AMD aber ohne auch funktionierten .... die 210 hat kein UEFI
Ah, ok danke. Das wußte ich noch nicht, obwohl ich viele Seiten durchgeforstet habe. Da muß ich wohl oder übel die neue GTX 960 für die VM opfern, um auszuprobieren ob es überhaupt mit Virtualbox geht. Falls da nicht geht, muß ich wohl oder übel es mit kvm nochmals probieren.
 
Ich habe jetzt die ganze Sache unter Arch und mit libvirt probiert, läuft soweit ganz gut. Manche Games in der VM (Skyrim z.B.) kann ich allerdings nicht mit der Maus bedienen,
da der Zeiger da nur hin und her zuckt. Werd die VM nochmal per Script starten, vielleicht liegts an libvirt. Synergy nutz ich auch, allerdings tritt das Problem auch ohne Synergy auf.
 
Das Problem hatte ich auch. Hast Du bei Synergy 'Use relative mouse moves' aktiviert? Findet sich über 'Advanced server configuration'. Dazu fixiere ich zusätzlich die Maus auf dem Windows-Desktop per Hotkey und es funktioniert.
 
Das hat funktioniert, danke.

Wie bekomme ich eigentlich Sound aus der VM in die Lautsprecher? Per aktiviertem Spice-Fenster gehts, sobald das Fenster inaktiv ist, nicht mehr.
 
Das hat funktioniert, danke.

Wie bekomme ich eigentlich Sound aus der VM in die Lautsprecher? Per aktiviertem Spice-Fenster gehts, sobald das Fenster inaktiv ist, nicht mehr.

Für den Sound benutze ich Realtek-AC97 Treiber in Windows 10.
Ich höre allerdings auch nichts mehr, wenn ich das Fenster vom Virtual Machine Manager schließe. Würde mich auch interessieren wie man das lösen könnte.
 
Hab es erstmal so gelöst, indem ich eine USB-Soundbar in die VM durchgereicht habe. Nun hängen hier aber 2 Soundbars, sieht nicht so schick aus ;)
 
ich habe auch den Onboard-Sound an die VM weitergereicht und dann an den Eingang meiner Behringer-UCA gehängt. Das rauscht zwar etwas, vmtl. aufgrund irgendwelcher Potentialunterschiede/Schirmungsprobleme/der Ausgang hat kein Line-Level/UCA ist zu empfindlich (Kopfhörer direkt am Board rauscht nicht), funktioniert aber sehr gut (natürlich nur für die Ausgabe, für Skype habe ich eine Webcam per Hotplug weitergereicht). Die Pulse-Variante war mir zu unsupported und Spice hat bei mir nie funktioniert. An sich finde ich die Lösung schon schick, habe jetzt immer ein Windows-Fenster unter Linux (in das ich mit der Maus reinfahren kann) und schalte dann für 3D mit "win+p" meinen Hauptmonitor um.
 
Heute hat es mir das System zerschossen, die GPU war aus der VM verschwunden und unter lspci war sie auch nicht mehr zu finden. Erst nachdem ich den Rechner stromlos
gemacht habe, war die Graka wieder sichtbar.

Die Meldung lautete:

Code:
qemu-system-x86_64: -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.0,addr=0x9: vfio: Error: Failed to setup INTx fd: Device or resource busy
qemu-system-x86_64: -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.0,addr=0x9: Device initialization failed
 
Nabend,

habe jetzt bei mir mit meinen Antergos auch mal eine VM mit GPU Passthrough aufgesetzt und läuft soweit auch ganz gut. Mich würde mal interessieren, wie genau ihr die VM bzgl. der Eingabegeräte konfiguriert habt. Ich habe soweit in meiner Config die Maus und Tastatur direkt angesprochen, kann dann aber natürlich logischerweise die Geräte nicht mehr am Host nutzen.

Grundsätzlich habe ich mir auch synergy etwas angeschaut, fand dieses aber etwas seltsam, dass die Geräte per LAN zur Verfügung gestellt werden. Habe mir daher einen USB Switch gekauft und habe entsprechend die Geräte im Switch und den Switch an zwei verschiedenen USB Ports sitzen. Jetzt wollte ich so vorgehen, dass ich einen USB Port an die VM weitergebe. Habe mir hierzu auch den folgenden Thread bei Stackechange angeschaut.

kvm virtualization - Pass an USB hub from a KVM host to a guest with libvirt - Server Fault

Allerdings komme ich hier nicht ganz weiter. Meine Ausgabe von lsusb -t sieht folgendermaßen aus...

Code:
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 7: Dev 32, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 33, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 3: Dev 33, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 34, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 34, If 1, Class=Human Interface Device, Driver=usbhid, 12M

Wenn ich den folgenden Part in meine XML Packe...

Code:
<hub type='usb'>
<address type='usb' bus='1' port='1.7'/>
</hub>

... dann bekomme ich die folgende Fehlermeldung.

Fehler: Interner Fehler: process exited while connecting to monitor: 2016-03-11T18:53:24.962382Z qemu-system-x86_64: -device usb-hub,id=hub0,bus=usb1.0,port=1.7: usb port 1.7 (bus usb1.0) not found (in use?)

Hatte hier auch schon diverse andere Konstellationen in der XML eingebaut aber leider ohne Erfolg. Habt ihr eine Idee oder habt nette Ideen, wie man es möglicherweise auch besser lösen kann?

Danke und Grüße
KingGoggel
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh