Nvidia bevorzugt quelloffenen Linux-Kernel-Treiber von nun an
Nvidias nächste Grafiktreiber-Generation wird statt des proprietären Linux-Kernel-Treibers standardmäßig den quelloffenen einrichten, sofern dieser den vorgefundenen Grafikprozessor unterstützt. Zwei Jahre nach der Vorstellung eines Open-Source-Kernel-Moduls für Linux stellt die Firma damit die Weichen, um ihren von jeher umstrittenen proprietären Kernel-Treiber langfristig auf das Abstellgleis zu schicken.
Für viele Nutzer von Nvidias Treibern ändert sich dadurch aber vorerst nur wenig – gewisse Aspekte verkomplizieren sich sogar. Mittel- bis langfristig dürfte sich die Lage aber deutlich verbessern; womöglich brauchen viele Nutzer die Treiber von Nvidia dann auch gar nicht mehr.
Paradigmenwechsel durch KI-HypeNvidia schwenkt mit der 560er-Reihe seiner Treiber um, nachdem der quelloffene die modernen Grafikchips für Notebooks, Desktop-PCs und Workstations mittlerweile ähnlich gut unterstützt wie der proprietäre. Bei der Veröffentlichung eines Linux-Kernel-Treibers unter GPL/MIT im Mai 2022 sah das noch ganz anders aus, denn da war der Support für Mainstream-GPUs noch im Alpha-Stadium und ließ zahlreiche wichtige Features missen.
Das war kein Wunder, denn Nvidia hatte den Open-Source-Treiber vornehmlich für seine KI-Beschleunigerchips entwickelt, die mit den Mainstream-GPUs verwandt sind. Allem Anschein nach hat Druck im Enterprise-Markt diesen Paradigmenwechsel ausgelöst: Technische, praktische und lizenzrechtliche Probleme mit proprietären Kernel-Treibern wurden im umsatzträchtigen KI-Markt immer mehr zu einem Wettbewerbsnachteil, der seit langem auf offene Treiber setzende Firmen wie AMD und Intel mehr und mehr einen Vorteil verschafft hätte. Daher gehört dem offenen Kernel-Modul auch klar die Zukunft: Für die neuesten Chips der Reihen Grace Hopper und Blackwell hat Nvidia schon gar keinen proprietären Kernel-Treiber mehr veröffentlicht.
Alle wesentlichen Funktionslücken beim Support für Mainstream-GPUs hat Nvidia aber zwischenzeitlich ausgeräumt. Die Dokumentation der derzeit aktuellen 555er-Treiberreihe listet nur noch wenige Einschränkungen, die mit der Nutzung des quelloffenen Kernel-Treibers einhergehen.
Installer lässt Nutzern die WahlDer quelloffene Kernel-Treiber unterstützt allerdings nur GPUs der Generationen Turing, Ampere, Ada Lovelace und Hopper – grob gesagt also die GeForce-20er-Serie und neuer. Grafikkerne der Generationen Maxwell, Pascal und Volta (GeForce 800 bis 10xx, sowie einzelne 700er-Modelle) unterstützt er nicht – für diese müssen Nutzer weiter den proprietären Kernel-Treiber nutzen, der aber nach wie vor auch die oben genannten Chips unterstützt. Auch für ältere, über Legacy-Treiberserien unterstützte GPU-Reihen bleibt es beim Proprietären. Ähnlich wie bei KI-Beschleunigern dürfte es für zukünftige Mainstream-Grafikchips aber wohl nur noch den quelloffenen Kernel-Treiber geben.
Der Installer berücksichtigt diesen Spagat bereits, wird ab der 560er-Versionsreihe aber den quelloffenen Treiber wo möglich bevorzugen. Darüber hinaus spielt es die über das Modul mit der Hardware kommunizieren Treiber für 3D (OpenGL und Vulkan), Videowiedergabe (NVDEC), Videoencoding (NVENC) und allgemeine Berechnungen (CUDA) mittels GPU ein. Die alle bleiben proprietär und müssen wie gehabt exakt die gleiche Versionsnummer haben wie der Kernel-Treiber.
Bei der Installation kann man zwischen dem quelloffenen und dem proprietären Treiber auswählen.
(Bild: Nvidia)
Distributionen und Add-on-Pakete müssen reagierenViele Nutzer installieren die Treiber allerdings nicht über Nvidias Installer, sondern über Distributions-spezifische Pakete. Es bleibt abzuwarten, wie gut diese den Spagat handhaben, damit je nach vorgefundenem Grafikchip das passende beziehungsweise von Nvidia empfohlene Kernel-Modul genutzt wird.
Die ohnehin gerne mal tückische Treiberinstallation verkompliziert sich somit wahrscheinlich, bis der Support für die älteren, nur durch den proprietären Kernel-Treiber unterstützen GPUs in einen Legacy-Treiber verlagert wird. Langfristig kann Nvidias Schwenk beim Kernel-Treiber die Installation der Treiber vereinfachen, weil Distributionen den quelloffenen Treiber ohne Furcht vor Repressalien in ihre Standard-Kernel integrieren können. Manche Distributoren scheuen sich aber davor, weil es die Pflege des Kernels signifikant verkompliziert und Tücken birgt.
Missmut mit Kernel-Entwicklern bleibtNur wenig dürfte sich indes die Situation für Nutzer verbessern, die Fehler an die Entwickler des offiziellen Linux-Kernels melden wollen. Die haben sich von jeher zumeist nicht groß um Bug-Reports von Systemen mit proprietären Kernel-Treibern von Nvidia geschert. Externe entwickelte Kernel-Treiber unter Open-Source-Lizenz sind aber nur wenig besser: Mangels Abschottung kann ein Fehler in ihrem Code leicht zu Problemen in ganz anderen Bereichen des Kernels führen, ohne dass das offensichtlich ist. Wie gehabt dürften viele Entwickler daher verlangen, den Fehler erstmal auf einem System ohne Nvidias Treiber zu reproduzieren, bevor sie diesen näher untersuchen.
In den offiziellen Kernel wird Nvidias Treiber in der jetzigen Form ohnehin nie einziehen, weil ihm ein stabiles Interface zu Userland-Treibern für 3D, Video & Co. fehlt. Auf das legt Linux-Erfinder und Hauptentwickler Linus Torvalds enormen Wert, damit man den Kernel aktualisieren kann, ohne parallel die auf einem seiner Treiber aufbauenden Userland-Treiber aktualisieren zu müssen.
Die Open-Source-Community arbeitet aber schon an einer Alternativlösung, die es besser machen soll. Darunter sind etwa einige Red-Hat-Mitarbeiter, die seit einer Weile einen Nova genannten Kernel-Treiber für Nvidias neueste GPU-Generationen entwickeln. Dazu nutzen sie den quelloffenen Kernel-Treiber von Nvidia als Informationsquelle sowie die von ihm genutzte Firmware. Mit der lässt sich das volle Hardware-Potenzial ausschöpfen, denn sie kann die GPU auch in ihre sparsamsten und schnellsten Betriebsmodi schalten. Diese Möglichkeit fehlt der abgespeckten Firmware, die Nvidia in den vergangenen Jahren für GPU-Generationen seit Maxell veröffentlicht hat – was der Hauptgrund war, warum der im Kernel enthaltene Treiber Nouveau bei vielen neueren GPUs nur eine unterirdische Performance liefert.
An passenden Userspace-Treiber arbeitet die Community ebenfalls. Darunter ist etwa der unter Federführung einer Mitarbeiterin von Collabora entstanden Treiber "NVK", der bereits aktuelle Vulkan-Version meistert und sich auch mit Nouveau nutzen lässt. Aktuelle Versionen der in Linux-Distribution enthaltenen Grafiktreiber-Bibliothek und -Treibersammlung Mesa bringen diesen Treiber schon mit. Wenn Nova irgendwann durchstartet und in den offiziellen Kernel einzieht, dürfte Linux-Distributionen Nvidias neueste Grafikchips deutlich besser von Haus aus unterstützen – für viele Nutzer vielleicht so gut, dass sie Nvidias eigenen Treiber gar nicht mehr brauchen.
(dahe)