Table of Contents
In this post we will be looking at how to install Nvidia drivers on Ubuntu OS. This tutorial is meant for those that have an Nvidia graphics cards on their Linux machine and you want to install the latest Nvidia driver for your graphics card to maximize the return on your investment on a Nvidia card. In order for the performance of video on your system to be ultimate, you want to choose the best driver to run it.
Nvidia Driver Versions
There are two families of Nvidia drivers. Nouveau, which is a free and open source driver for Nvidia that is written by independent software engineers outside of Nvidia by reverse engineering how the card works. It comes standard in Ubuntu and other linux distributions. The second family is the proprietary linux drivers for Nvidia built by Nvidia that are not open source. The Proprietary Nvidia drivers are packaged for Ubuntu as a PPA (Personal Package Archive) called Proprietary GPU Drivers by contributors such as Alberto Milone, Rico Tzschichholz, and Michael Marley.
Within the Proprietary GPU Drivers category there are also 3 sub-categories of drivers: Long Lived Branch Version, Short Lived Branch Version, and Legacy Drivers. The difference between Long Lived and Short Lived branches is similar to the model in Ubuntu with LTS releases. The Long Lived branches are more conservative with less new development and mainly maintenance patches for support and bug fixes, whereas the Short Lived branch is where the experimental and exciting new developments get put. Legacy drivers are like they sound, old drivers that are in life support. Here is some more information about an article when the Long Lived and Short Lived branches got created.
Ubuntu Personal Package Archive (PPA)
If you are not familiar with Ubuntu’s PPA system consult the help file first. In short the PPA are like decentralized repositories that allow contributors to host and provide to the community their software in a natural Ubuntu form factor and installation process. The Proprietary GPU Drivers PPA is just such a archive specifically for packaging the proprietary Nvidia drivers for Ubuntu. The PPA currently provides the latest updates for the following Nvidia Graphics Drivers versions as of 2017 for long lived: nvidia-384. And for short lived: nvidia-381. Before we proceed with the installation, lets take a summary look at each of the latest Linux Display Drivers changelogs for the .
Driver Change Logs
Nvidia Graphics Drivers Long Lived Branch 384.90
- Added support for the following GPU:Quadro P5200
- Fixed a regression that caused display flickering at lower PowerMizer performance levels on some GPUs.
- Fixed a regression that prevented console restoration after a VT switch on some GPUs.
- Fixed a bug that could cause a system hang when resuming from suspend with some GPUs.
- Fixed a bug that caused slow or stuttering frame rates in applications that use GLX_EXT_swap_control_tear while G-SYNC is active.
- Fixed a bug in the NVIDIA VDPAU driver that caused VdpVideoSurfaceGetBitsYCbCr() of H.265/HEVC content to have interlaced artifacts.
- Fixed a bug that caused the X driver to not correctly report the “BlendOrder” MetaMode token when querying the MetaMode through, e.g., `nvidia-settings –query CurrentMetaMode`.
- Fixed a bug that prevented nvidia-installer from displaying a targeted error message when optional kernel modules fail to load.
- Updated nvidia-installer to label kernel modules with SELinux file type ‘modules_object_t’. Some system SELinux policies only permit loading of kernel modules with this SELinux file type.
- Removed support for checking for and downloading updated driver packages and precompiled kernel interfaces from nvidia-installer. This functionality was limited to unencrypted ftp and http, and was implemented using code that is no longer actively maintained.
Nvidia Graphics Drivers Short Lived Branch 381.22
- Added support for GeForce GT 1030
- Fixed a bug that caused the GLX_EXT_buffer_age buffer age extension to return incorrect values for stereo drawables when using passive stereo modes 5 through 9.
- Fixed a bug in Vulkan direct to display where DP1.2 monitors were not being enumerated.
- Improved compatibility with recent kernels.
- Fixed a bug that caused “nvidia-settings –query all” to print many duplicate entries.
- Fixed a bug that caused applications to crash in some situations when calling glXMakeCurrent while OpenGL threaded optimizations were enabled. This frequently occurred when Steam was attempting to make a video appear full-screen.
- Fixed a bug that caused VDPAU applications to use the blit presentation queue when a previous VDPAU application didn’t shut down cleanly.
- Fixed hangs and crashes that could occur when an OpenGL context is created while the system is out of available memory.
- Fixed a bug that caused corruption when OpenGL windows were moved or resized.
- Fixed a bug that caused X screens that use Option “UseDisplayDevice” “none” to be resized to 640×480 when using “xrandr -s” to change the screen configuration.
Fixed a kernel crash that occurred when attempting to map large user memory allocations into CUDA.
- Disabled OpenGL threaded optimizations by default, initially enabled in 378.09, due to various reports of instability.
- Added support for Vulkan extensions
- Removed the X driver’s logo splash screen and the corresponding NoLogoand LogoPath xorg.conf options.
- Added the “ResamplingMethod” MetaMode option, adding support for bicubic resampling methods when scaling screen transformations are in use. See the README for more details.
Ubuntu Installation Instructions
These steps apply for installing Nvidia Drivers on Ubuntu. Before we install nvidia drivers per each driver version, we need to remove any existing version with the following commands:
sudo apt-get purge nvidia*
And then we need to add the Proprietary GPU Drivers PPA:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update
Next install the relevant driver version number you want to use:
sudo apt-get install nvidia-384 nvidia-settings
sudo apt-get install nvidia-381 nvidia-settings
or another version if you need that for some reason:
sudo apt-get install nvidia-304 nvidia-settings
After installation, reboot your machine. Run lsmod to ensure the nvidia driver is installed and not the nouveau driver. Only the nvidia module should be installed if this process was successful:
lsmod | grep nvidia lsmod | grep nouveau