After two decades of problems, pleas i ironic statements it eventually happened: Nvidia released the source code of its kernel driver and posted them on GitHub. The company has been offering drivers for graphics cards to Linux users for two decades, but so far it has always been just closed binary bloby.
Users inspired success of a competitor AMD they asked Nvidia to open the drivers as well. Starting with version R515, the driver is now finally available, including source code, specifically under a dual license GNU GPL a MIT. Let’s answer the questions that revolve around opening the driver.
Who is it for?
Nvidia says the driver is so far primarily for data center graphics processors Turing and Ampere – available to them in “production quality”. The driver aims to use with CUDA and although it contains a display support code, it is not sufficiently tested and may not be complete.
The support status of GeForce and desktop graphics is therefore now marked as “alpha”. Users who still want to try the new driver can use the kernel parameter
NVreg_EnableUnsupportedGpuswhich is mentioned in the documentation. The code includes support for features such as G-SYNC, NVIDIA RTX ray tracing in Vulcan and NVIDIA OptiX.
The installation package supplied by Nvidia will contain both variants: binary and open. The user will be able to choose which one to install on the system.
However, the new open driver will only support Turing chips and newer, ie graphics cards released in 2018 and later. Users of older cards will continue to use the original binary drivers.
What exactly is open?
The source code for the Linux kernel module has been opened. However, a large part of the functionality is part of the firmware and also components designed for user space. These parts are intact and will remain as well still closed. These are mainly libraries and drivers for OpenGL, Vulkan, OpenCL and CUDA.
Christian Schallerdirector of Red Hat, but in blog post says it is still very good news.
We now have an Nvidia kernel driver that will only be able to use the GPL API in the Linux kernel, although this initial release does not use any APIs that the old driver no longer used. The original driver could not use the GPL only API due to a license. Now this limitation is disappearing, but the first released version does not change anything yet.
The core module includes the driver itself, NVIDIA-DRM integration, the NVIDIA-Modeset driver and NVIDIA-UVM for Unified Video Memory management.
What does this mean for users?
Schaller also explains that the Nvidia and Nouveau drivers will be with us for a long time. In the long run, however, opening the driver is very good step.
This will not have a major impact in the near future. Over time, however, it will provide a way to radically simplify Nvidia hardware support.
In the end, users should have fewer problems and the use of Nvidia graphics cards should be even easier.
In the long run, we hope to be able to gain a similar experience with Nvidia hardware that we can offer today for Intel and AMD hardware in terms of functionality right out of the box.
Specifically, it means immediate functionality new generations of chips, high performance Mesa drivers and the ability to sign the driver in the kernel for seamless secure boot use.
Will it get to the core?
The company currently claims that the driver code is not ready for acceptance into the main tree of the Linux kernel. But he also promises to work with Canonical, Red Hat and Suse. So for the average Linux desktop user, this is not a revolutionary thing to start using right now. But it is a promise for the future.
In the meantime, the published source code can be used by developers Nouveau driverswho can significantly improve their code. Nouveau allows you to use the same card firmware as the original drivers. It will take some time again, but Nouveau could overcome its GPU clocking limitations and get the same performance as the original drivers.
The aforementioned partner companies Canonical and Suse have already promised when the new drivers will be distributed. In the coming months, users of the newly released Ubuntu 22.04 LTS and SUSE Linux Enterprise 15 SP4 should see the new packages.