Germany

Ist die Hölle eingefroren? Nvidia bringt Treiber für den Linux-Kernel unter GPL/MIT auf den Markt

GPU-Hersteller Nvidia will Linux-Kernel-Treiber für seine GPUs mit zwei Lizenzen unter den Open-Source-Lizenzen GPL und MIT bereitstellen. Die erste Version R515 des neuen Treibers bietet stabile Unterstützung für Nvidias AI-GPU und ist damit auf Rechenzentren ausgerichtet. Der Hersteller will in Kürze Unterstützung für Desktop-GPUs der GeForce-Serie hinzufügen.

Der Linux-Teil ist in Zukunft freie Software

In einer Mitteilung von Nvidia gestern Abend kündigte der Hersteller die Veröffentlichung der Open-Source-Lizenzen GPLv2 und MIT an. Entwicklern steht es dann frei, die Lizenz zu wählen, die für ihren Zweck besser geeignet ist; Insbesondere die MIT-Lizenz ist kaum mehr als ein Dokument mit drei Absätzen, das jedem praktisch jedes mögliche Softwarerecht unwiderruflich gewährt.

Als Grund für diesen Schritt nennt der Hersteller mehrere Faktoren. Erstens wollen sie die „User Experience“ beim Einsatz von Nvidias GPUs in Kombination mit Linux grundlegend verbessern. Entwickler haben in Zukunft eine viel bessere Möglichkeit als bisher, Probleme zu untersuchen und im Treiber nachzuverfolgen. Auch Distributoren sollen davon profitieren, da sie den Open-Source-Treiber künftig deutlich einfacher in ihre Systeme integrieren können.

Open-Source-Module sollen laut Nvidia bald Eingang in Paket-Repositories verschiedener Linux-Distributionen finden: Canonical will den Treiber in den kommenden Monaten für Ubuntu 22.04 LTS ausliefern. SUSE plant, die Module im Juni in SUSE Linux Enterprise 15 SP4 zu integrieren. Im Gegensatz zum Kernel-eigenen Modul sollten signierte Module es unmöglich machen, das sichere Booten zu deaktivieren.

Turbulenzen auf dem KI-Markt

Das Einsatzgebiet von Grafikprozessoren ist in den letzten Jahren stetig gewachsen. Sie kommen nicht mehr ausschließlich in modernisierten Gaming-Rechnern unter dem heimischen Schreibtisch zum Einsatz – auch in Rechenzentren sind sie zunehmend zu finden.

Bisher wurden Open-Source-Kernel-Module hauptsächlich auf Turing- und Ampere-Rechenzentrums-GPUs getestet. Nvidia bezeichnet den Code als „ready for production“ für diese Art von Rechenlast. Für GeForce-Grafikkarten und -Workstations kennzeichnet Nvidia Open-Source-Module als „Alpha-Qualität“.

Es werden nur Karten der Turing-Architektur und neuer unterstützt, dh. GPUs wurden 2018 eingeführt, da Open-Source-Module auf GSP (GPU System Processor) angewiesen sind, das mit Turing eingeführt wurde. Nutzer älterer Grafikkarten müssen auf einen eigenen Treiber oder den kostenlosen Nouveau-Treiber zurückgreifen. Nvidia gibt keine Firmware-Komponenten und Treiber-Benutzerspeicherplatz, wie CUDA, bekannt. Laut Nvidias Dokumentation fehlen der Open-Source-Version noch Features wie G-Sync, Quadro Sync, SLI, Stereo, Rotationen unter X und YUV 4:2:0 auf Turing-Karten.

Was machst du, neu?

Nvidia weist übrigens darauf hin, dass durchaus Pläne bestehen, den Open-Source-Treiber in den offiziellen Linux-Kernel aufzunehmen. Dies führt in der Regel zu einem langen Prozess mit viel Kommunikation in LKML: Weil der Code der aktuell freigegebenen Module gegen die Konventionen des Linux-Kernels verstößt, wird er sich in absehbarer Zeit nicht für eine Integration in den Hauptkernel eignen. Daran will man aber laut Nvidia gemeinsam mit den Entwicklern des Kerns und Canonical, SUSE und Red Hat arbeiten.

Nvidias neues Core-Modul kommt mit einer Open-Source-Lizenz.

(Bild: Screenshot)

Der quelloffene Nouveau-Treiber, der Teil des Linux-Kernels ist, soll sich langfristig Nvidias Code-Basis zunutze machen. Bisher ist der Treiber auf eine spezielle Firmware von Nvidia angewiesen und kann Taktung und Energieverwaltung neuerer Grafikkarten nicht beeinflussen, wodurch diese ihr Leistungspotential nicht nutzen können. Nvidia selbst schlägt derweil vor, dass der Nouveau-Treiber einiges vom Treiber des Herstellers kopiert, um das eigene Feature-Set zu erweitern. Schließlich ist es auch möglich, dass beide Treiber irgendwann Teil des Kernels sind – die Entscheidung wird wie üblich letztendlich bei Linus Torvalds selbst liegen.

Leiden unter Nvidia-Treibern

Nvidia- und Linux-GPUs hatten eine ganz besondere Verbindung: Wer in den Genuss der vollen 3D-Beschleunigung (oft sehr teurer) GPUs unter Linux kommen wollte, musste eine Kombination aus eigenem Kernel-Modul und eigenem Treiber verwenden, um die GUI zu installieren. Fazit: Das Nvidia-Modul musste eigens für den aktuell laufenden Kernel kompiliert werden.

Allerdings entwickelt sich der Linux-Kernel oft schneller als das Nvidia-eigene Modul. Versuche, eine vorhandene Version von Nvidias Treibern für eine gerade erschienene neue Version des Linux-Kernels zu kompilieren, scheitern daher oft. Im Laufe der Jahre ist der Nvidia-Treiber sogar für Kernel-Entwickler zu einem ständigen Ärgernis geworden: Wenn etwas mit dem Treiber nicht funktioniert, das Bauen des Moduls fehlschlägt oder bestimmte Features nicht verfügbar sind, greifen Nutzer regelmäßig zu Linux, etwa Mailing List .kernel (LKML) und ich hatte dort auf Hilfe gehofft.

Manchmal störte der Nvidia-Treiber sogar andere Teile des Kernels und brachte sie zum Absturz. Allerdings gehört der Endbenutzer-Support weder zu den typischen Aufgaben von LKML, noch könnten Linux-Entwickler sinnvoll helfen – denn gerade weil das Modul nicht offen lizenziert wurde, handelt es sich um eine typische „Black Box“. „Aus Sicht des Entwicklers war ein Debugging daher weitgehend unmöglich.

In diesem Zusammenhang gibt es seit langem einen legendären Wutausbruch des Linux-Erfinders und Chefentwicklers Linus Torvalds von der Universität Helsinki im Jahr 2012. Torvalds hatte in diesem Zusammenhang erwartungsgemäß nur wenige freundliche Worte über Nvidia übrig. Er macht auch keinen Hehl daraus, dass er das Nvidia-Modul für ein großes Sicherheits- und Stabilitätsproblem hält.

Downloads und Optionen

Die erste Treiberversion des neuen Open-Source-Treibers trägt die Versionsnummer R515, die derzeit als Betaversion verfügbar ist. Verfügbar auf der Nvidia-Website; Ihre Quellen finden Sie auf GitHub. Das fertige Paket enthält sowohl den Open-Source-Treiber als auch den bisherigen Closed-Source-Treiber. Soll ersteres verwendet werden, ist ein explizites „enable“ erforderlich, wobei der Administrator dem Nvidia-Treiberpaket-Installationsskript bei der Installation den Parameter „-m = kernel-open“ mitgibt.

Der Nouveau-Treiber muss für die Installation deaktiviert werden. Um die Open-Source-Version der Kernel-Module mit Desktop-GPUs nutzen zu können, muss das Modul „nvidia.ko“ mit der Option „NVreg_OpenRmEnableUnsupportedGpus = 1“ geladen werden. Bei unserem Testsystem mussten wir beim Systemstart zusätzlich den Parameter nvidia-drm.modeset = 1 an den Linux-Kernel übergeben, da sonst der Bildschirm schwarz blieb. Allerdings ist der Open-Source-Treiber im aktuellen Alpha- oder Beta-Status nicht für den alltäglichen Gebrauch zu empfehlen.

(DMK)

Zur Startseite