Grafikkarten mit Linux: Nvidia öffnet seinen Treiber erstmals für Open Source

Update 2 Sven Bauduin
158 Kommentare
Grafikkarten mit Linux: Nvidia öffnet seinen Treiber erstmals für Open Source
Bild: Nvidia

Nvidia leitet eine Zeitenwende für den Support der eigenen Grafikkarten unter Linux ein und öffnet seinen Treiber erstmals auch für Open Source. Mit der Serie 515, der die Nachfolge des proprietären Release 510 antreten wird, bezieht der Hersteller erstmals auch die Linux-Community und freie Softwareentwickler mit ein.

Noch bis gestern kaum vorstellbar

Noch vor kurzem galt es als eher unwahrscheinlich, dass Nvidia seinen proprietären Grafiktreiber für die Betriebssysteme Linux, Solaris und FreeBSD unter der freien Softwarelizenz GPL/MIT über die Entwicklerplattform GitHub als Open Source bereitstellen würde. Doch für viele unverhofft hat der Hersteller genau die Verhaltensweise an den Tag gelegt, die zuvor als ausgeschlossen galt.

Nvidia setzt erstmals auf Open Source

Nach einem erfolgreichen Download können die sogenannten „Open-Source GPU Kernel Module“, welche aber auch „Nvidia Linux Open GPU Kernel Module“ genannt werden, mit Hilfe von build und install in Position gebracht werden.

This is the source release of the NVIDIA Linux open GPU kernel modules, version 515.43.04.

To build:

make modules -j`nproc`

To install, first uninstall any existing NVIDIA kernel modules. Then, as root:

make modules_install -j`nproc`

Note that the kernel modules built here must be used with gsp.bin firmware and user-space NVIDIA GPU driver components from a corresponding 515.43.04 driver release. This can be achieved by installing the NVIDIA GPU driver from the .run file using the --no-kernel-modules option. E.g.

sh ./NVIDIA-Linux-[...].run --no-kernel-modules
Nvidia Open-Source GPU Kernel Modules

Während die sogenannte „User-Space Software“ weiterhin proprietär ausgerichtet bleibt, sind die GPU-Module und -Treiber jetzt für jedermann offen einsehbar und können somit endlich auch gemeinsam mit und von der Open-Source-Gemeinde weiterentwickelt werden. Nvidia kommentiert das wie folgt.

This release is a significant step toward improving the experience of using NVIDIA GPUs in Linux, for tighter integration with the OS and for developers to debug, integrate, and contribute back.

For Linux distribution providers, the open-source modules increase ease of use.

They also improve the out-of-the-box user experience to sign and distribute the NVIDIA GPU driver. Canonical and SUSE are able to immediately package the open kernel modules with Ubuntu and SUSE Linux Enterprise Distributions.

Nvidia

Demnach sollen Canonical und SUSE die freien GPU-Module von Nvidia als erste in ihre Linux-Distributionen Ubuntu und SUSE Linux Enterprise einbauen.

Open-Source-Grafiktreiber muss noch reifen

Dass Nvidia mit seinem Open-Source-GPU-Modulen und -Grafiktreibern noch ganz am Anfang steht, verdeutlicht der aktuelle Status der „Open-Source GPU Kernel Module“. Während die freien GPU-Module für den Einsatz in Rechenzentren schon heute als „ausgereift“ eingestuft sind, ist die Verwendung der Grafikprozessoren für die Produktreihen GeForce, RTX und Quadro noch als Alpha deklariert.

Open Source nur für Turing und Ampere

Grafiktreiber auf Basis der „Open-Source GPU Kernel Module“ setzen eine Grafikkarte auf Basis der Architekturen Turing oder Ampere voraus. Ältere GPU-Generationen von Nvidia müssen auf den proprietären Treiber oder auf den Open-Source-Treiber Nouveau zurückgreifen.

Version 515.43.04 bietet Open Source via Opt-in
Version 515.43.04 bietet Open Source via Opt-in (Bild: Nvidia)

Ab der neuesten Version 515.43.04 steht der Nvidia-Grafiktreiber dem Anwender erstmals sowohl als proprietäre Ausführung sowie optional als Open Source zur Auswahl. Die Nvidia Developer haben weitere Informationen auf dem Technical Blog zusammengefasst. Noch mehr Details zum neuen Release liefert die Projektseite auf der Entwicklerplattform GitHub. Der bekannte YouTube-Nutzer Jeff Geerling gibt weitere Einblicke in den Open-Source-Treiber.

Die Redaktion dankt Community-Mitglied „ShadowDragon“ für den Hinweis zu dieser Meldung.

Update

Canonical, Red Hat und SUSE bereiten Pakete vor

Im Rahmen der Bekanntmachung hat Nvidia bereits angedeutet, dass Größen wie Canonical, Red Hat und SUSE bereits entsprechende Pakete für ihre Distributionen Ubuntu, Red Hat Enterprise Linux und den SUSE Linux Enterprise Desktop (SLED) respektive Server (SLES) vorbereiten.

Auf diesem Weg sollen die „Open-Source GPU Kernel Module“ ihren Weg dann auch schnell in andere Distributionen finden. Beginnend mit dem Entwicklungszweig R515 wird die Installationsroutine den Anwendern zukünftig die Wahl zwischen dem proprietären und dem offenen Treiber geben.

Open Source setzt auf proprietäre Firmware

Der Open-Source-Grafiktreiber arbeitet aber nach wie vor mit der gleichen proprietären Firmware und den selben Bibliotheken und Grafikstacks für den Benutzermodus („User-Space“), wie CUDA, OpenGL, OpenCL und Vulkan, zusammen.

Nvidia kündigte an, auch Beiträge und Änderungen der Community zum Code des Open-Source-Treibers zu akzeptieren, wenn diese sinnvoll sind oder Fehler beheben, verlangt dann aber ein sogenanntes Contributor License Agreement (CLA), um etwaige Lizenz-Streitigkeiten zu vermeiden.

Weitere Details zur Installation der „Open-Source GPU Kernel Module“ hat Nvidia in einem entsprechenden Readme mit dem Titel „Installation and Configuration Instructions“ zusammengefasst.

Update

Version 515.43.04 als Beta erschienen

Der erstmals auch als Open-Source-Grafiktreiber über die Entwicklerplattform GitHub veröffentlichte Treiber für Linux, Solaris und FreeBSD als Beta in der Version 515.43.04 erschienen und liefert jetzt auch Support für die folgenden Grafikkarten:

  • RTX A2000 12 GB
  • RTX A4500 20 GB
  • T1000 8 GB
  • T400 4 GB

Die offiziellen Release Notes listen unter anderem folgende Neuerungen für den freien Grafiktreiber auf:

Linux, Solaris, and FreeBSD driver 515.43.04 [beta] – Release Notes
  • Published the source code to a variant of the NVIDIA Linux kernel modules dual-licensed as MIT/GPLv2. The source is available here: GitHub - NVIDIA/open-gpu-kernel-modules: NVIDIA Linux open GPU kernel module source and will be updated each driver release. Please see the “Open Linux Kernel Modules” chapter in the Readme for details.
  • Added support for the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier Vulkan extensions. To use this functionality, the nvidia-drm kernel module must be loaded with DRM KMS mode setting enabled. See the DRM KMS section of the README for guidance on enabling mode setting.
  • Changed nvidia-suspend.service, nvidia-resume.service, and nvidia-hibernate.service to use WantedBy= rather than RequiredBy= dependencies for systemd-suspend.service and systemd-hibernate.service. This avoids a problem where suspend or hibernate fails if the NVIDIA driver is uninstalled without disabling these services first.
  • Interlaced modes are now disabled when active stereo is enabled.
  • NVIDIA X Server Settings will now display the quit confirmation dialog automatically if only there are pending changes that need to be manually saved. The corresponding configuration option to control the appearance of the quit dialog was thus also removed.
  • Removed the warning message about mismatches between the compiler used to build the Linux kernel and the compiler used to build the NVIDIA kernel modules from nvidia-installer. Modern compilers are less likely to cause problems when this type of mismatch occurs, and it has become common in many distributions to build the Linux kernel with a different compiler than the default system compiler.
  • Updated nvidia-installer to skip test-loading the kernel modules on systems where no supported NVIDIA GPUs are detected.
  • Updated nvidia-installer to avoid a race condition which could cause the kernel module test load to fail due to udev automatically loading kernel modules left over from an existing NVIDIA driver installation. This failure resulted in an installation error message “Kernel module load error: File exists”.
  • Updated the RTD3 Video Memory Utilization Threshold (NVreg_DynamicPowerManagementVideoMemoryThreshold) maximum value from 200 MB to 1024 MB.

Download auf ComputerBase

Der Nvidia Linux Display Driver 515.43.04 Beta für die Plattformen x86 und ARM64 kann wie gewohnt direkt unterhalb dieser Meldung aus dem Download-Bereich von ComputerBase heruntergeladen werden.

Zudem haben auch die Entwicklungszweige 510.x, 470.x und 390.x ein Update erhalten und stehen zum Download bereit.

Downloads

  • Nvidia Linux Display Driver Download

    3,4 Sterne

    Der offizielle Linux-Treiber für Nvidia-Grafikkarten der Serien GeForce, Quadro und Nvidia RTX.

    • Version 550.135, Linux Deutsch
    • Version 565.57.01 Beta, Linux Deutsch
    • Version 560.35.03 NFB, Linux Deutsch