Du bist nicht angemeldet.

#1 02.02.2021 20:58:33

delta-x8
Gast

QEMU-VM und GPU

Moin allerseits, ich habe das Problem, dass ich gerne ein paar Windows-Programme unter Arch laufen lassen möchte. Weil es um Programme wie beispielsweise Adobe InDesign geht, ist die Grafikleistung durchaus relevant. Ansonsten wären Spiele manchmal auch ganz nett (ja, ich weiß, es gibt unter Linux auch Tetris in der Konsole dank ncurses, allerdings mag ich es gerne auch mit etwas, ähm ja, mehr Grafik)...

Ich habe schon mal ein bisschen mit Wine herumexperimentiert, so ganz begeistert war ich nicht. Also habe ich es mit QEMU und einer VM versucht, das Ergebnis war schon besser. Allerdings läuft das leider immer noch etwas hakelig, daher tendiere ich nun zu einem GPU-passthrough, das könnte eine Lösung sein - gibt allerdings sehr viele Anleitungen und Varianten... Ich weiß daher im Moment nicht so recht, was bei mir zutreffend wäre.

Ich habe in meinem Desktop-Rechner zwei GPUs - einmal die integrierte Intel-GPU vom i7-6700 und eine weitere GPU, in meinem Fall eine AMD Radeon RX Vega 56. An der Radeon hängen über DisplayPort zwei UHD-Monitore dran, an der Intel-GPU gar nichts.

Ich weiß daher im Moment nicht so recht, ob in dem Fall ein Single-GPU-Passthrough passend wäre. Weil ich ja recht viel Grafikleistung haben möchte, wäre die Idee die, der VM die Radeon zuzuweisen, Arch könnte währendessen vielleicht noch die Intel-GPU nutzen. Allerdings ist die mit keinem Bildschirm verbunden, das heißt, ohne Radeon läuft ja eigentlich nichts, wenn ich das richtig sehe. Was natürlich genial wäre, wenn Arch und die VM eine Grafikkarte gleichzeitig nutzen könnten, allerdings geht das, soweit ich weiß, irgendwie nicht.

Daher würde mich interessieren, wie ihr das so gelöst haben - was sind eure Erfahrungen und Ideen zu dem Thema?

#2 02.02.2021 23:58:12

Dirk
Moderator

Re: QEMU-VM und GPU

delta-x8 schrieb:

(ja, ich weiß, es gibt unter Linux auch Tetris in der Konsole dank ncurses, allerdings mag ich es gerne auch mit etwas, ähm ja, mehr Grafik)...

Dann benutz doch einfach den nativen Steam-Client.

Und Ncurses-basiertes Tetris in der Shell würde ich übrigens gern mal sehen. Paketname bitte.

delta-x8 schrieb:

Daher würde mich interessieren, wie ihr das so gelöst haben - was sind eure Erfahrungen und Ideen zu dem Thema?

Damals, als ich noch dachte, ich würde Windows-Anwendungen „brauchen“ habe ich einfach Qemu-KVM benutzt

Offline

#3 03.02.2021 08:26:12

delta-x8
Gast

Re: QEMU-VM und GPU

Leider bringt mich Steam wenig weiter, ich habe von EpicGames noch einige Sachen, die ich wenn gerne nutzen würde. Und Adobe InDesign wird damit auch nicht laufen...

Als Arch-Package gibt es das Konsolen-Tetris noch nicht, aber das kann man schnell mit einem makefile zum Laufen bringen: https://github.com/brenns10/tetris

QEMU-KVM läuft bei mir momentan schon, allerdings hat das ja nichts mit der GPU zu tun, bei KVM geht es ja lediglich um die CPU.

Was stimmt, ist, dass tatsächlich ziemlich viel unter Arch funktioniert. Allerdings gibt es ein paar Programme aus der Windows-Welt, die durchaus ganz praktisch sind, wenn man bestehende Dateien weiterhin öffnen/ bearbeiten können mag...

#4 03.02.2021 17:10:42

stefanhusmann
Moderator

Re: QEMU-VM und GPU

Und Ncurses-basiertes Tetris in der Shell würde ich übrigens gern mal sehen. Paketname bitte.

emacs. Mit Option -nw gestartet und dann "Alt-x tetris"

Offline

#5 03.02.2021 20:32:30

Dirk
Moderator

Re: QEMU-VM und GPU

delta-x8 schrieb:

Leider bringt mich Steam wenig weiter, ich habe von EpicGames noch einige Sachen, die ich wenn gerne nutzen würde. Und Adobe InDesign wird damit auch nicht laufen...

Dann musste wohl bei Windows bleiben sad Die ganze Drecks Spyware die im Ring 0 läuft und hardcoded absichtlich nur für Windows ist, von Adobe oder den ganzen Gamelaunchern außer Steam, läuft halt auch nur unter Windows in brauchbarer Form. Bedank dich bei Adobe und den Spieleentwicklern.

delta-x8 schrieb:

Als Arch-Package gibt es das Konsolen-Tetris noch nicht, aber das kann man schnell mit einem makefile zum Laufen bringen: https://github.com/brenns10/tetris

Nice, würde auf dem Server laufen lassen.

delta-x8 schrieb:

QEMU-KVM läuft bei mir momentan schon, allerdings hat das ja nichts mit der GPU zu tun, bei KVM geht es ja lediglich um die CPU.

So was hier sonst?

https://wiki.archlinux.org/index.php/QE … celeration

Offline

#6 04.02.2021 14:11:05

delta-x8
Gast

Re: QEMU-VM und GPU

Dirk schrieb:
delta-x8 schrieb:

Als Arch-Package gibt es das Konsolen-Tetris noch nicht, aber das kann man schnell mit einem makefile zum Laufen bringen: https://github.com/brenns10/tetris

Nice, würde auf dem Server laufen lassen.

Ohje, ich sehe schon, das Konsolen-Tetris landet demnächst im Core-Repository roll.

Das sieht tatsächlich sehr gut aus, allerdings würden mich an der Stelle ein paar Erfahrungen von anderen Arch-Nutzern interessieren. Einfach weil das schon etwas Aufwand ist, bei dem einiges schief gehen kann. Gerade in Verbindung mit der AMD GPU. Das heißt ja auch, dass es beispielsweise kein Bumblebee gibt, also ein bisschen anders als bei Nvidia ist es schon. Ich habe etwas gesehen, wo eine einzelne Nvidia GPU zwischen Arch und der VM umgeschaltet wurde - allerdings war das mit einer Nvidia und dort wurde am vBIOS der Karte herumgebastelt - https://github.com/joeknock90/Single-GPU-Passthrough

Windows werde ich übrigens nicht mehr als Hauptbetriebssystem installieren. Das ist so ein fürchterlicher Flickenteppich von Betriebssystem, bei dem hauptsächlich das Anzeigen eines Bluescreens zuverlässig läuft. Mit der Windows-Software und Spielen ist halt leider so ein Dilemma. Und weshalb auch immer, einige Softwarehersteller sind so unglaublich bockig bei Linux - "Ne, für Linux haben wir nix und Wine-Support gibt's bei uns auch nicht. Aber sie können ja gerne mal herumexperimentieren...".

Wine hat mich leider nicht so beeindruckt, das lief sehr langsam. Eventuell kann man das auch besser hinbekommen und ich war zu dusselig dazu, das kann auch sein. Ich habe mich allerdings gefragt, warum Wine das zur Laufzeit übersetzt auf die Linux-APIs. Ich meine, man sollte doch eigentlich vorher schon alle Systemaufrufe "übersetzen" können (quasi eine Windows-EXE umformulieren für Linux), sodass die ganze Angelegenheit effizienter/ schneller wird, oder? Deshalb übrigens überhaupt die Idee mit VM, Wine wäre mir eigentlich lieber. Die CPU und Peripherie ist bei der VM ja virtualisiert, das heißt, ich kann das Netzwerk bei Windoof hinter eine Firewall sperren und damit die Telemetrie unterbinden. Lediglich die GPU wird "durchgereicht" und die Grafikleistung wäre dabei ziemlich gut (so habe ich das zumindest gelesen). In der Form wäre das glaube ich ganz gut nutzbar, auch datenschutzfreundlich.

#7 04.02.2021 19:20:19

Dirk
Moderator

Re: QEMU-VM und GPU

delta-x8 schrieb:

Ohje, ich sehe schon, das Konsolen-Tetris landet demnächst im Core-Repository roll.

Geil, am besten als Abhängigkeit von core.

delta-x8 schrieb:

Wine hat mich leider nicht so beeindruckt, […]

Statt krampfhaft zu versuchen, möglichst viel Windows-Only-Software zum laufen zu bringen, könntest du stattdessen versuchen, die Software möglichst weitgehend durch andere Software zu ersetzen.

Offline

#8 08.02.2021 15:13:05

BGeiger
Mitglied

Re: QEMU-VM und GPU

Ich verwende seit einigen Monaten zum Spielen Windows in einer VM mit durchgereichter Grafikkarte und bin davon recht begeistert, also sollte es hier wohl auch kein Problem sein (Wenn die Hardware das ermöglicht) Natürlich müsste man die Intel-GPU für das Hostsystem verwenden. Was ebenfalls kein Problem darstellt, wenn nur Betriebssysteme ab Windows 7 virtualisiert werden (also UEFI-tauglich). Natürlich muss dafür allerdings die Intel-GPU an einem Monitor abgeschlossen werden bzw. an einem Monitor-Switch. Auf die Single-GPU Lösung würde ich versuchen zu verzichten. Also ich habe es damals zumindest nie richtig hinbekommen.

Wenn die Intel-GPU definitiv nicht angeschlossen werden soll, so gibt es dann ebenfalls noch die Möglichkeit, dass man zum Booten dennoch die Intel-GPU verwendet und die VM direkt über den Bootloader startet (Genauer: Eigentlich nicht über, aber mit einem Skript, der den Starteintrag auswertet). So habe ich es bei mir gemacht, damit ich wirklich die maximalen Ressourcen zur Verfügung habe. Aber dann verliert man die Möglichkeit, dass man beide Systeme gleichzeitig verwenden kann, was ich meistens bevorzuge. Bei mir gibt es deswegen Grub Einträge für nur Windows xy starten (also die VM) und Hostsystem startet ohne grafische Oberfläche und auch Einträge für, dass Windows xy starten soll und auch die grafische Oberfläche auf dem Hostsystem.

Also man kann das wirklich sehr komfortabel gestalten.

delta-x8 schrieb:

Die CPU und Peripherie ist bei der VM ja virtualisiert, das heißt, ich kann das Netzwerk bei Windoof hinter eine Firewall sperren und damit die Telemetrie unterbinden..

Nein, die CPU wird eigentlich nicht wirklich virtualisiert (Es ist möglich, aber die CPU wird direkt angesprochen). Die anderen Geräte natürlich schon. Aber CPU und GPU benötigen ja die meiste Leistung. Also bei meinen Tests kommen ich im Schnitt auf 95% - 97 % der Leistung von einem direktem Windows. Und zum Thema Telemetrie bzw. Datenschutz. So habe ich 2 Windows 10 VMs, wovon eine VM gar keine Netzwerkkarte hat, also ich dahingehend auch keine Angst haben muss, dass irgendwas online geht (quasi meine Software Testwiese). Aber Leistungstechnisch ist das wirklich kein Vergleich zu Wine. Bei Wine bekommt man vieles (besonders halbwegs neue Software) sehr schlecht oder mit Fehler zum Laufen und die Leistung ist (zumindest bei mir) wesentlich schlechter. Habe zwar schon gehört. dass manche Sachen bei anderen besser laufen soll, aber ist mir wirklich noch nie passiert.

Beitrag geändert von BGeiger (08.02.2021 15:26:49)

Offline

#9 09.02.2021 00:36:54

delta-x8
Mitglied

Re: QEMU-VM und GPU

Zuerst einmal danke ich dir für deinen ausführlichen Beitrag! Mit den GPUs hätte ich noch eine Frage, und zwar bietet die Intel-GPU nur einen HDMI-Ausgang, der bei 3840x2160 (soweit ich weiß) nur 30 Hertz hinbekommt. Daher eine ziemlich ruckelige Angelegenheit und dazu noch auf einen Bildschirm begrenzt. Daher würde ich eher zu einer Lösung nur mit Radeon tendieren.

BGeiger schrieb:

Wenn die Intel-GPU definitiv nicht angeschlossen werden soll, so gibt es dann ebenfalls noch die Möglichkeit, dass man zum Booten dennoch die Intel-GPU verwendet und die VM direkt über den Bootloader startet (Genauer: Eigentlich nicht über, aber mit einem Skript, der den Starteintrag auswertet).

Daher eine Frage dazu, wenn du die VM direkt beim Booten startest, ist das dann in etwa so wie Dualboot von der Nutzung her?

Bislang stelle ich mir das irgendwie so vor, dass ich immer Arch (Hostsystem) starten würde. Dann habe ich ein Skript, das in der Lage ist, Windows (8.1 oder 10) in QEMU zu starten, aufzurufen bei Bedarf über einen .desktop-Eintrag (wie bei jedem Programm). Normalerweise bekommt Arch die Radeon-GPU und damit die zwei Bildschirme. Wird nun die VM gestartet, wird Arch die Radeon-GPU weggenommen (und eventuell stattdessen eine mit keinem Bildschirm verbundene Intel-GPU zugewisen, falls das irgendetwas bringt) und Windows bekommt beide Bildschirme sowie die Radeon-GPU. Wenn man die VM herunterfährt, wird das wieder rückgängig gemacht und man kann wieder Arch verwenden. Die gleichzeitige Verwendung beider Systeme wäre nicht gegeben, das wäre allerdings nicht so schlimm in meinem Fall.

Es stimmt, die CPU läuft über KVM, also Hardware-Virtualisierung über Intel VT. Die %-Werte zur Leistung bei dir sehen übrigens überzeugend aus, das ist dann ja gut nutzbar. Wine ist vor allem interessant, weil man das Windows einspart, also etwas Speicherplatz, Startzeit und Updateaufwand. Und dort kann man gut die GPU-Leistung für Windows- und Linuxprogramme aufteilen. An sich schon eine geniale Idee, nur die Umsetzung, na ja...

Offline

#10 09.02.2021 10:44:47

BGeiger
Mitglied

Re: QEMU-VM und GPU

OK das mit der Intel-GPU kann ich durchaus nachvollziehen. Ich habe deswegen 2 Grafikkarten drin (GeForce 660 und 1060). Also nicht nur deswegen, sondern auch weil ich für ältere Spiele Windows XP virtualisieren will. Wenn ich die 1060er verwenden will muss ich ebenfalls über die Intel-GPU booten, aber kann dem X-Server einstellen, dass dieser dennoch die GeForce 660 fürs Hostsystem verwenden soll, was wesentlich besser ist. Daher ist es eigentlich wichtig für was man das Hostsystem während der Nutzung der VM verwenden will. Wenn es nur daran liegt, dass man es im Bios nicht ständig umstellen will, dann kann man es ja genauso machen. Also Intel-GPU als Boot-GPU im Bios einstellen und sich ein Skript basteln, indem einen Grub Booteintrag erstellt und dort angibt, ob das Hostsystem die Intel-GPU oder die Radeon verwenden soll. Dann hätte man das Problem, dass man es jedesmal im Bios umstellen müsste weg. Will man VM nutzen, dann nimmt er die Intel-GPU und wenn nicht, dann die Radeon. Natürlich müsste man jedesmal den Rechner neustarten. Aber soweit ich weiß hätte man das Problem bei einer Single-GPU Lösung auch.

delta-x8 schrieb:

Daher eine Frage dazu, wenn du die VM direkt beim Booten startest, ist das dann in etwa so wie Dualboot von der Nutzung her?

Ja, eigentlich fast. Der Unterschied ist, dass ich im Hostsystem, selbst wenn es ohne grafische Oberfläche läuft, dennoch die virtuelle Maschine steuern kann. USB Geräte weiterleiten, VM starten oder beenden, etc. kann. Und es behält dennoch die Vorteile einer VM.

delta-x8 schrieb:

Wird nun die VM gestartet, wird Arch die Radeon-GPU weggenommen.

Es soll anscheinend so funktionieren. Ich habe das aber nie richtig hinbekommen ohne neuzustarten. Das Problem dabei ist, dass eigentlich eine Grafikkarte vorher nicht initialisiert werden darf, wenn diese der VM übergeben werden soll. Ist die Grafikkarte allein schon als Bootkarte eingetragen, dann ist dies bereits der Fall. Das soll man lösen können, indem man das ROM der Karte ausliest, dieses bearbeitet und manuell der VM übergibt. Das Umschalten allerdings von der Radeon zur Intel GPU wird meines Wissens nach aber nicht ohne einen Neustart des X-Servers gehen. Aber ich lasse mich da gerne eines besseren belehren. Ich habe es auch nach Tagen des Probierens nicht hinbekommen. Ich konnte die Grafikkarte zwar übergeben, aber das Bild blieb bei mir immer schwarz. Aber wenn du es schaffst, so würde ich mich natürlich über eine Rückmeldung freuen.

Aber ich Glaube, dass wir da ehh unterschiedliche Zielsetzungen haben. Mein Ziel war es Windows ohne Internet zu betreiben, aber dennoch im Internet zu sein, also erreichbar zu sein (muss ich allein beruflich schon). Vorher hatte ich Windows XP, Windows 7, Windows 10 und Arch gleichzeitig nativ laufen. Windows XP und Windows 7 wegen älterer Spiele. Aber mit Windows XP und 7 sollte man nicht mehr online gehen, weswegen ich ursprünglich auf die Idee der VM kam. Gleichzeitig wollte ich aber auch neuere Spiele verwenden können und deswegen kam die Idee mit aus Grub heraus die Haupt GPU verwenden zu können dazu. Also quasi nutze ich die GeForce 660 für Windows XP und 7 und bin dann über Arch online, oder Windows 10 mit der GeForce 1060 und bin dann im Windows 10 online.

Wenn mir die Verwendung des Hauptsystems während der Benutzung einer VM egal wäre (und auch kein älteres Windows laufen lassen wollte), so wie bei dir, dann hätte ich mich wohl weiterhin für ein Dualboot System entschieden.

Offline

#11 10.02.2021 20:45:18

delta-x8
Mitglied

Re: QEMU-VM und GPU

Gut, ich habe es erst einmal mit Dualboot gelöst - ist einfach einzurichten und funktioniert.

Es wäre genial, wenn das gehen sollte, dass die Radeon-GPU ohne Neustart anders zugewiesen wird - werde ich vielleicht mal noch austesten, wenn ich ein paar andere Dinge bei Arch hinbekommen habe (vernünftige Skalierung der grafischen Oberfläche bei 27"-Monitoren und so). Wenn's läuft, kann ich dazu auf jeden Fall nochmal was schreiben. Die Netzwerksache habe ich übrigens so gelöst, dass ich einfach die Netzwerkdienste deaktiviert habe (msconfig), sodass Windows keine Verbindung hat.

Zwei (brauchbare) GPUs sind natürlich der Optimalfall. Das hatte ich schon überlegt, nur eine zweite Radeon RX Vega kann ich nicht hinzufügen - dazu müsste ich mir einen anderen Rechner holen. Und dafür kann ich mich wenig begeistern, weil ich meinen Rechner sehr gerne so habe, wie er ist...

Bei dir scheint das ziemlich kompliziert zu sein, weil auch noch mehrere Windows-Versionen laufen sollen. Vielleicht kannst du auch den Kompatibilitätsmodus unter einem neueren Windows verwenden oder es tatsächlich mit Wine versuchen. Bei XP-Anwendungen könnte es ansonsten mit Wine ganz gut funktionieren, oder?

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums