NVIDIA graphics cards are renowned for their performance. In the Linux world, they’re also known for something else: frustration with drivers. So much frustration that you may have come across a video or GIF of Linux founder Linus Torvalds referencing NVIDIA with a middle finger. That’s why it’s great news that NVIDIA has finally released an open-source kernel driver for its GPUs.
Does this mean that installing Linux on an NVIDIA-powered machine will be less of a pain? Well, not yet. But eventually, hopefully, that answer will become yes.
NVIDIA’s Open Source Driver for New GPUs
NVIDIA has decided to release Linux GPU kernel modules as open source software for the first time, from driver version R515. This source code is available on GitHub.
The driver only supports NVIDIA Turing Chip and newer GPUs. These were first released in 2018. So if you are using older hardware than this, and most Linux users are, then this source code is of no use to you at the moment .
Who is this pilot for?
At launch, this driver was tested to support CUDA on data center GPUs.
People using GPUs for working in the cloud, or for work such as artificial intelligence development and machine learning, can immediately benefit from better integration between NVIDIA GPUs and the rest of their Linux system.
What are the limitations of the NVIDIA driver?
As Christian Schaller of the Fedora Project details on his blog, the code for displays is neither complete nor fully tested. This is relevant code for those of us who use NVIDIA graphics cards on our personal computers.
This is also just kernel-related code. Much of a modern graphics driver is found at the firmware and userspace level. These aspects of NVIDIA’s driver remain closed. If you’re a gamer hoping to disable the proprietary driver and experience similar performance and similar support software, this isn’t the case yet. And it won’t be for a while.
What can you expect in the near future?
Don’t have high expectations for a lot in the short term. But it’s a sign of NVIDIA’s increased cooperation with the community and gives reason to believe that cooperation may even grow.
A specific example of progress could be the development of the Nouveau driver, the open-source driver that the community developed for NVIDIA graphics cards. This project started as a reverse engineering effort, but in recent years there has been active support from NVIDIA.
The driver is fully functional, but it cannot re-sync the NVIDIA card, which is one way it cannot deliver full performance compared to the binary driver. This new code provides a path to fill in some of the gaps.
For newer cards, for technical reasons, the community may need to work with NVIDIA to create a new open driver that could communicate with both NVIDIA proprietary userspace and MESA open userspace. But for older cards, the Nouveau driver will continue to be the only open source option in town. New improvements are especially important for hardware old enough that the proprietary driver no longer receives updates.
Did this come out of nowhere?
On the surface, yes. There hasn’t been a lot of major news about NVIDIA’s open source for its products. But behind the scenes there has been good collaboration with various open source partners, such as Canonical, Red Hat and SUSE. You might think NVIDIA is taking the next step.
Eventually, open drivers may become less of a reason for Linux users to turn to AMD cards instead.
AMD vs. NVIDIA GPUs on Linux: Which to Use?