Der steinige Weg weg von Windows

Ich hatte ja neulich schon geschrieben, dass mir an Windows 10 einige Dinge nicht gefallen und ich nicht bereit bin, dass als zahlender Kunde zu akzeptieren. Und auch, dass ich mir nicht so richtig sicher bin, was als Ersatz her soll. Ich bin mir auch immer noch nicht sicher, aber dem Prozess der Entscheidungsfindung sehe ich jetzt deutlich gelassener entgegen. Beim Anschalten des Rechners schaut mich jetzt vorerst mal das Logo von Fedora an…

Es wäre ja schön, wenn man ganze Betriebssysteme komplett und ohne große Kompromisse in einer VM betreiben könnte. Das war vor einem Jahr auch noch kein so großeses Problem. Fehlende Hardwarebeschleunigung für die Grafik fällt bei Full HD noch nicht ganz so schlimm ins Gewicht. Bei 4K merkt man das aber sehr deutlich. Spätestens dann, wenn in einer Ecke des Bildschirms eigentlich etwas flüssig mit 60Hz laufen sollte, dass dann genau so stottert, wie der Browser beim Scrollen. Nee. So macht das keinen Spaß.

Die Idee, einer VM eine komplette Grafikkarte zu geben, hatte ich vor ein paar Jahren schon einmal. Der ESXi hängt im Wohnzimmer hinter dem Fernseher. Der Großvater des ESXi hat einst den Fernseher als Notfallterminal genutzt und es bot sich auch das Wohnzimmer an, weil er dort wenigstens im Winter als (sündhaft teure) elektrische Heizung noch eine zusätzliche Funktion hatte. Der nächste Rechner hatte, dann mit Flachbildschirm, bereits Fernsehwiedergabe als zentrale Aufgabe und VM-Hosting lief nebenher mit. Jetzt hängt neben der ESXi Büchse ein alter Thin Client, der sich ums Fernsehen kümmert. Das Durchreichen einer Grafikkarte wollte nicht wirklich funktionieren, machte mich aber mit dem „Pink Screen of Death“ vertraut…

Tatsächlich hat sich in dieser Richtung einiges getan und mittlerweile gibt es unter Linux mit Qemu und KVM nicht nur eine sehr schicke Virtualisierungsplattform, sondern mit vfio-pci auch noch ein Projekt, dass sich dem Thema Durchreichen von PCI(e)-Geräten widmet. Da nicht nur der ESXi, sondern auch die Kiste auf meinem Schreibtisch, VT-d unterstützt, musste das probiert werden. Nachdem Arch nicht booten wollte wurde es Fedora, als „bleeding edge“ Distribution, die alle lustigen Werkzeuge und Module direkt mitbringt.

Irgendwann letztes Wochenende habe ich Fedora zum Testen auf eine der herumliegenden Laptopplatten gequetscht und mir die Zeit damit vertrieben herauszufinden, ob man den Dreck ans Laufen bekommt. Zu Lesen gibt es zu dem Thema eine ganze Menge und vor allem Linuxer, die gerne das eine oder andere 3D-Spiel zocken wollen, haben sich dankbarerweise tief genug in die Materie eingegraben. So ist es mittlerweile relativ einfach und funktioniert ziemlich gut, einer VM eine GPU durchzureichen – relativ. Wenn man die Grafik der Intel CPU für den Host nutzen möchte, dann fängt man mit einem Kernelpatch an. So habe ich zum ersten Mal seit… Ewigkeiten wieder die fragwürdigen Freuden des Kernelkompilierens erfahren dürfen. Das Ergebnis entschädigt aber für den Aufwand.

Für Windows alleine wäre das nicht einmal nötig gewesen. Das kann man via OVMF von einem virtuellen EFI statt BIOS booten und damit entfallen alle Probleme, die das steinalte VGA mitbringt. Für Linux und OSX will das aber bei mir noch nicht so recht funktionieren, da ist man mit BIOS und VGA besser beraten.

Wenn die VM läuft, stößt man aber auf allerlei Treiberprobleme. Unter Windows ist das kein so großes Problem, denn dort ist die Eigenheit von NVidias Treibern, zu prüfen, ob sie in einer VM laufen, bekannt und der passende Workaround dutzendfach beschrieben. Für OSX muss man mit den Paramtern nv_disable und nvda_drv spielen und bekommt am Ende statt 60Hz nur 30Hz. Unter Linux habe ich „Nouveau“ hassen gelernt, weil es auch auf dem physischen PC statt einem Bild auf den Schirm nur Probleme mit sich bringt. Dazu kommt die Eigenheit von gdm unter Fedora, irgendwie die blacklists des modprobe.d zu ignorieren. Kennt man die PCI ID der Karte, kann man sie aber pci-stub direkt als Kernelparameter mitgeben und so dafür sorgen, dass die Karte dunkel bleibt, bis man richtige Treiber hat. Allerdings muss man auch für die Linuxtreiber die Signatur von KVM verstecken. Sonst fragt man sich, warum man kein Bild hat. Bei manchen Sachen hilft auch nur stumpfes Probieren. Audio über HDMI wollte anfangs praktisch gar nicht funktionieren. Naja, so gut wie garnicht, denn Knacken, Hänger der ganzen VM und Ton in halber Geschwindigkeit sind greulich. Im Original ist die NVidiakarte ein Multifunktionsgerät mit einer PCI Adresse aber zwei Funktionen. So habe ich sie auch anfangs durchgereicht, mit den beschriebenen Problemen. Reicht man sie aber als zwei unterschiedliche Geräte durch, statt als ein Multifunktionsgerät, dann sind die Probleme schlagartig passé.

Nachdem das am Ende alles so weit funktionierte, habe ich heute den Sprung gewagt und schreibe das hier bereits von meiner jetzt virtualisierten Windowsinstallation. Dass die angefangen hat sich zu zerlegen und keine Updates mehr installieren wollte, schon bevor ich ans Virtualisieren dachte, hat mir die Entscheidung auch nicht schwerer gemacht.

Unterm Strich bootet der Rechner jetzt verdammt zügig ein Fedora, an dem einer der vier Kerne und ein paar GB RAM hängen bleiben. Von dort aus kann ich mir jetzt aussuchen, was ich denn gerne als Betriebssystem mit praktisch völlig nativer Anmutung haben möchte. (Ja, auch USB funktioniert fast normal. Die vorderen Buchsen des Rechners gehören mitsamt dem Controller dafür alleine der VM.) Was der Frau der Schuhschrank…

Ein Nachteil gegenüber normaler Virtualisierung ist, dass man mit einer GPU nur eine VM gleichzeitig so betreiben kann. Damit kann ich leben. Ein riesiger Vorteil ist, dass so Backup und Hardwarewechsel noch einfacher sind. Notfalls kann man einfach eine virtualisierte Grafikkarte nehmen, wenn bei einem Defekt nichts mit VT-d zur Hand ist. Natürlich hat die Hostbüchse auch direkt ZFS bekommen. Damit funktioniert ein Backup mit send und recv sehr, sehr bequem.

Da ich jetzt vorerst wieder zwei Tastaturen auf dem Schreibtisch stehen habe, habe ich auch noch ein anderes Problem gelöst. Das Umschalten zwischen verschiedenen HDMI Eingängen mit der Fernbedienung des Fernsehers nervt richtig. LG sollte das Ding „Tragic Remote“ nennen, anstatt „Magic Remote“. Allerdings hat der Bildschirm einen seriellen Port und es gibt diese Seite: http://www.lgrs232.com/

Irgendwann schreibe ich mir noch systemd-services, die den Bildschirm mit dem Rechner ein und ausschalten. Bis dahin habe ich aber wenigstens Keybindings auf der Tastatur.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>