Nvidia prefers open source Linux kernel drivers from now on

For future driver versions, Nvidia prefers its open source kernel driver. The community has problems with this and is working on alternatives.

Save to Pocket listen Print view
Nvidia logo on graphics card

(Image: Konstantin Savusia/Shutterstock.com)

7 min. read
By
  • Thorsten Leemhuis
Contents

Nvidia's next generation of graphics drivers will install the open-source kernel driver by default instead of the proprietary Linux kernel driver, provided it supports the graphics processor in question. Two years after the introduction of an open-source kernel module for Linux, the company is thus setting the course for sending its proprietary kernel driver, which has always been controversial, to the sidelines in the long term.

For many users of Nvidia's drivers, however, little will change for now – certain aspects will even become more complicated. In the medium to long term, however, the situation should improve significantly; it is possible that many users will no longer need Nvidia's drivers at all.

Nvidia is changing tack with its 560 series of drivers, now that the open-source version supports modern graphics chips for notebooks, desktop PCs and workstations just as well as the proprietary version. When a Linux kernel driver was released under GPL/MIT in May 2022, things looked very different, as support for mainstream GPUs was still at the alpha stage and lacked numerous important features.

This was hardly surprising, as Nvidia had developed the open-source driver primarily for its AI accelerator chips, which are related to mainstream GPUs. Apparently, pressure in the enterprise market triggered this paradigm shift: technical, practical and licensing problems with proprietary kernel drivers were increasingly becoming a competitive disadvantage in the high-revenue AI market, which would have given companies such as AMD and Intel, which have long relied on open drivers, more and more of an advantage. The future therefore clearly belongs to the open kernel module: Nvidia has already stopped releasing proprietary kernel drivers for the latest chips in the Grace Hopper and Blackwell series.

However, Nvidia has now eliminated all major functional gaps in support for mainstream GPUs. The documentation for the current 555 driver series only lists a few restrictions associated with the use of the open-source kernel driver.

However, the open-source kernel driver only supports GPUs of the Turing, Ampere, Ada Lovelace and Hopper generations - roughly speaking, the GeForce 20 series and newer. It does not support graphics cores of the Maxwell, Pascal and Volta generations (GeForce 800 to 10xx, as well as individual 700 models) - for these, users must continue to use the proprietary kernel driver, which still supports the above-mentioned chips. Older GPU series supported by legacy driver series will also remain proprietary. Similar to AI accelerators, there will probably only be the open-source kernel driver for future mainstream graphics chips.

The installer already takes this balancing act into account, but will prefer the open-source driver where possible from the 560 version series onwards. In addition, it installs the drivers for 3D (OpenGL and Vulkan), video playback (NVDEC), video encoding (NVENC) and general calculations (CUDA) via the GPU, which communicates with the hardware via the module. These all remain proprietary and must have the same version number as the kernel driver.

During installation, you can choose between the open source and the proprietary driver.

(Image: Nvidia)

However, many users do not install the drivers via Nvidia's installer, but via distribution-specific packages. It remains to be seen how well these will handle the balancing act so that the appropriate kernel module or the one recommended by Nvidia is used depending on the graphics chip found.

This is likely to complicate the already tricky driver installation process until support for older GPUs that are only supported by the proprietary kernel driver is shifted to a legacy driver. In the long term, Nvidia's pivot to the kernel driver may simplify driver installation because distributions can integrate the open-source driver into their standard kernels without fear of reprisal. However, some distributors shy away from this because it significantly complicates the maintenance of the kernel and harbors pitfalls.

However, the situation is unlikely to improve much for users who want to report bugs to the developers of the official Linux kernel. For the most part, they have always been unconcerned about bug reports from systems with proprietary kernel drivers from Nvidia. However, externally developed kernel drivers under an open-source license are only slightly better: due to a lack of compartmentalization, a bug in their code can easily lead to problems in entirely different areas of the kernel without this being obvious. As usual, many developers are therefore likely to ask to reproduce the bug on a system without Nvidia's drivers before investigating it further.

Nvidia's driver will never be included in the official kernel in its current form anyway because it lacks a stable interface to userland drivers for 3D, video & co. Linux inventor and main developer Linus Torvalds attaches great importance to this so that the kernel can be updated without having to update the user land drivers based on one of his drivers at the same time.

However, the open-source community is already working on an alternative solution that should improve things. This includes some Red Hat employees, for example, who have been developing a kernel driver called Nova for Nvidia's latest GPU generations for a while now. To achieve this, they use Nvidia's open-source kernel driver as a source of information, as well as the firmware it uses. This allows the full hardware potential to be exploited, as it can also switch the GPU to its most economical and fastest operating modes. This option is missing from the slimmed-down firmware that Nvidia has released recently for GPU generations since Maxell – which was the main reason why the Nouveau driver contained in the kernel only delivers subterranean performance for many newer GPUs.

The community is also working on suitable userspace drivers. These include the "NVK" driver developed under the leadership of a Collabora employee, which already masters the current Vulkan version and can also be used with Nouveau. Current versions of the Mesa graphics driver library and driver collection included in Linux distributions already include this driver. If Nova takes off at some point and is included in the official kernel, Linux distributions should support Nvidia's latest graphics chips much better out of the box - perhaps so well for many users that they will no longer need Nvidia's own drivers at all.

(anw)

Don't miss any news – follow us on Facebook, LinkedIn or Mastodon.

This article was originally published in German. It was translated with technical assistance and editorially reviewed before publication.