The relationship of NVIDIA with Linux has never been good. The company, a leader in graphics processing and in sectors such as artificial intelligence, has tended to clash with just about everyone for its consistent refusal to adopt standards. However, the situation could start to turn 180 degrees, as NVIDIA has published a Official Open Source driver for Linux. Yes, as you are reading it, but it would still be better to contain the euphoria.
NVIDIA has provided support for Linux for two decades through a proprietary driver that it has developed to share as much code as possible across all supported operating systems, including Windows, Solaris, and the BSD spectrum. This driver has always been closely tied to X11 and in recent years it has been a victim of the company’s bad decisions, some bad decisions that within the Linux desktop have placed it as the last in terms of quality of support, especially when we talk about of Wayland.
Going deeper into the event that concerns us, what NVIDIA has done has been publish your kernel modules, starting with a driver called R515as open source under a dual license. Initially MIT is used, but “when linked to form a Linux kernel module” this is converted into a dual under standard GPLv2 and MIT. In this way it is possible to avoid any type of conflict with the official line of the kernel.
NVIDIA has been taking small steps towards a model more akin to Open Source and compatible with the official Linux line, but its efforts so far have focused mainly on its ARM-based solutions. With this recent move, users of x86 computers with the typical NVIDIA graphics used for gaming and workstations should have a working (and in this case only bootable) out of the box like the one offered by Intel and AMD.
But after mentioning the graphics for desktop, we find the first stone on the road to be the new driver limited, at least for now, to the Turing and Ampere generations (GTX 16, RTX 20 and RTX 30). As a consequence, for Pascal, Maxwell and other previous generations it will be necessary to continue using the traditional official blob or Nouveau, so the majority of Linux users who use an NVIDIA graphics card will not be able to use the new Open Source driver, or at least that is what can be deduced by looking at the results of the Steam survey.
A model similar to AMD?
It seems that the model adopted by NVIDIA is closer to what AMD does with AMDGPU that of Intel with its integrated ones (with the future dedicated ones we will see what ends up happening when everything is deployed).
AMDGPU is an Open Source driver, yes, but it is supported by proprietary firmware. NVIDIA aims to go in a similar direction with the GPU System Processor (GSP), a firmware only available in binary format that is loaded at runtime. Consequently, distributions that use Linux-libre might run into limitations.
OpenGL, Vulkan, OpenCL and CUDA support will remain proprietary
Unfortunately, we can only talk about the opening of the Linux kernel modules that allow an NVIDIA graphics card to work, since the user space drivers, OpenGL, Vulkan, OpenCL and CUDA supports to be understood, will remain proprietary.
This is a very important point even for desktop users because hardware acceleration has been common in Linux for a little over a decade. The use of OpenGL and Vulkan has become so common that everyone takes it for granted and expects to have it easily.
no support of OpenGL and Vulkan is impossible to run the vast majority of current video gamesincluding many that are released as free software. The lack of OpenGL support is also a limitation when it comes to having a full experience with desktops like GNOME and KDE Plasma., so one can already get an idea of how normalized its use has been on the Linux desktop for a long time. OpenCL and CUDA, on the other hand, are more oriented to professional sectors that work with solutions like Blender and not so much to the common user.
In case it had not been clear, what NVIDIA released covers only the part that concerns the Linux kernel and that allows it to run (some of) its GPUs. It is undoubtedly an important advance, but insufficient as the company keeps too many cards considering the current situation of the graphics processing industry (even within free software).
It will be necessary to see if what is published as Open Source paves the way for the creation of alternative OpenGL drivers (or reimplement the one used by Nouveau) and Vulkan that are also open source and offer good performance. Taking into account that RADV is officially a community project and not an AMD product and that it is one of the engines of the Steam Deck, maybe in the future we are in for a surprise.
What is the status around Linux and distributions?
Thanks to the use of compatible licences, open source modules released by NVIDIA can be repackaged and redistributed by distributions without any restrictions. The green giant has said that he has worked alongside Red Hat, Canonical and SUSE “to improve packaging, deployment and support models for our mutual customers”.
On the part of Canonical and SUSE they are moving the threads to incorporate the modules as soon as possible to the repositories of Ubuntu 22.04 LTS and SUSE Linux Enterprise 15 SP4, while from Red Hat they have limited themselves to saying that they wait “bring these capabilities to our customers and improve interoperability with NVIDIA hardware”. Obviously, there should be no problem for all other distributions except possibly those that work with Linux-libre.
Because NVIDIA has developed its drivers with the intention of sharing as much code as possible across all supported operating systems, the R515 driver does not conform to Linux design conventions, so it will not be a candidate for Linux. upstream of the kernel. In other words, that For now, the Open Source driver will not be included in the Linux kernel because it does not comply with the design conventions of the latter.. Despite this, the company intends to collaborate with the Linux kernel community, Canonical, Red Hat and SUSE to correct this.
On the other hand we have Nouveau, the ugly duckling of open source graphics drivers if we only take into account the big three of the x86 spectrum (realistically, today it is a joke next to what Intel and AMD offer) . In theory Nouveau should be able to take advantage of both the released code and the GSP firmware, but the process could take time.
As for the current status of the modules, NVIDIA has said that they are optional and production-ready for GPUs used in data centers, while the considered in alpha phase for GeForce graphics models and those oriented to workstations. Its installation can be done through the repositories of the distributions that include it or the company’s official installer by adding an additional parameter when executing it.
An important detail is that, compared to the proprietary driver, R515 already has DMA-BUF support, so it has the foundation to have good support for sharing and capturing the screen from a Wayland session in the future. .
NVIDIA takes an important step forward, but not enough
There’s no denying that NVIDIA’s release of the R515 driver is an important step for Linux, but the fact that the user space part (OpenGL, Vulkan, OpenCL and CUDA) has been reserved is a bit disappointing.
We will see if in the future the green giant is encouraged to release OpenGL and Vulkan drivers to at least offer good support for end users who use their computers for office tasks, gaming and others that do not require powerful graphics (such as web development).