The latest Nvidia Driver for Linux 331.20 has been released today with lots of changes. Here are new features and how to install it in Ubuntu 13.10, Ubuntu 13.04, Ubuntu 12.04 and Linux Mint.

What’s New in Nvidia Linux 331.20:

This Long Lived Branch version 331.20 brings following changes:

Added support for NVIDIA OpenGL-based Framebuffer Capture (NvFBCOpenGL). This library provides a high performance, low latency interface to capture and optionally encode the composited framebuffer of an X screen. NvFBC and NvIFR are private APIs that are only available to approved partners for use in remote graphics scenarios. Please contact NVIDIA at [email protected] for more information.

Fixed a bug that prevented configuration files containing application profiles from being loaded when directories were present in the application profile configuration search path.

Deferred initialization of libselinux in the NVIDIA OpenGL driver, in order to avoid a problem where libselinux might not be ready when the NVIDIA libGL shared library is first loaded.

Fixed a bug that could lead to memory exhaustion in OpenGL applications running on 32-bit systems.

Added nvidia-uvm.ko, the NVIDIA Unified Memory kernel module, to the NVIDIA Linux driver package. This kernel module provides support for the new Unified Memory feature in an upcoming CUDA release.

Fixed a bug that caused the X server to fail to initialize when DisplayPort 1.2 monitors were assigned to separate X screens on the same GPU.

Fixed a bug that could cause a deadlock when forking from OpenGL programs which use some malloc implementations, such as TCMalloc.

Fixed a bug that prevented Warp & Blend settings from being retained across display configuration changes.

Fixed a bug that prevented some settings changes made via the nvidia-settings command line interface from being reflected in the nvidia-settings graphical user interface.

Changed the clipping behavior of the NVIDIA X driver on Trapezoids and Triangles for some RENDER operations to match the behavior in newer versions of Pixman:

http://lists.freedesktop.org/archives/pixman/2013-April/002755.html

Fixed a bug in MetaMode tracking that could cause spurious error messages to be printed when attempting to add or delete Metamodes via NV-CONTROL.

Fixed a bug that caused the NVIDIA X driver to attempt to load the X11 “shadow” module unconditionally, even in situations where the driver had no need to use the module. This could result in the printing of spurious error messages, on X servers where the module was not present.

Fixed a bug that prevented display configuration changes made with xvidtune(1) from working correctly.

Fixed a bug that occasionally caused display corruption in GLX applications while changing the display configuration.

Fixed a bug that prevented glReadPixels from working correctly when reading from Pixel Buffer Objects over indirect rendering, when the image width is not a multiple of 4.

Added a new NV-CONTROL attribute, NV_CTRL_BACKLIGHT_BRIGHTNESS, for controlling backlight brightness.

Fixed a bug that prevented nvidia-settings from creating display device configuration pages for newly connected DisplayPort 1.2 Multi Stream Transport downstream devices.

Added GPU utilization reporting to the nvidia-settings control panel.

Fixed a bug in the nvidia-settings control panel that prevented users from configuring stereo, when stereo was not already configured.

Added support for reporting the tachometer-measured fan speed on capable graphics boards via nvidia-settings and the NV-CONTROL API. The preexisting mechanism for reporting fan speed reports the speed of the fan as programmed by the driver.

For example, `nvidia-settings –query=[fan:0]/GPUCurrentFanSpeedRPM`.

Fixed a regression that caused GPUs that do not support graphics to not appear in nvidia-settings.

Fixed a bug that caused DisplayPort 1.2 multi-stream devices to stop working if they were unplugged and plugged back in while they were active in the current MetaMode.

Added support for multiple NVIDIA kernel modules. This feature allows users to assign different GPUs in the system to different NVIDIA kernel modules, potentially reducing the software overhead of coordinating access to multiple GPUs.

Added support for the EGL API on 32-bit platforms. Currently, the supported client APIs are OpenGL ES 1.1, 2.0 and 3.0, and the only supported window system backend is X11.

Add a new option, AllowEmptyInitialConfiguration, which allows the X server to start even if no connected display devices are detected at startup. This option can be enabled by running “sudo nvidia-xconfig –allow-empty-initial-configuration”

This option is useful in RandR 1.4 display offload configurations where no display devices are connected to the NVIDIA GPU when the X server is started, but might be connected later.

Updated nvidia-installer to provide a scrollable text area for displaying messages from the /usr/lib/nvidia/alternate-install-present and /usr/lib/nvidia/alternate-install-available distro hook files. This allows for longer messages to be provided in these files.

Updated nvidia-installer to avoid recursing into the per-kernel “build” and “source” directories when searching for conflicting kernel modules in /lib/modules.

Added a system memory cache to improve the performance of certain X rendering operations that use software rendering fallbacks. The X configuration option “SoftwareRenderCacheSize” may be used to configure the size of the cache.

Removed the “DynamicTwinView” X configuration option: dynamic reconfiguration of displays is always possible, and can no longer be disabled.

Fixed a bug that caused nvidia-settings to display incorrect information in its display configuration page when all displays on an X screen were turned off.

Updated nvidia-installer to only install the libraries libvdpau and libvdpau_trace if an existing installation of libvdpau is not detected on the system. This behavior can be overridden with the –install-vdpau-wrapper and –no-install-vdpau-wrapper options.

Future NVIDIA Linux installer packages will no longer include copies of libvdpau or libvdpau_trace: VDPAU users are recommended to install these libraries via other means, e.g. from packages provided by their distributors, or by building them from the sources available at: http://people.freedesktop.org/~aplattner/vdpau/

Download & Install Nvidia 331.20:

First download the drivers from the official links below:

Nvidia 331.20 for 32 bit Linux

Nvidia 331.20 for 64 bit Linux

Nvidia 331.20 for 32 bit ARM Linux

For FreeBSD, Solaris, go to Unix Drivers download page

Once downloaded, press Ctrl+Alt+F1 on your keyboard to switch to command console and login with your username and password. Remove previous Nvidia’s proprietary drivers if any:

sudo apt-get purge nvidia-current

You required to run command below to stop / close graphic session before installing process:

For Ubuntu LightDM (default): sudo service lightdm stop

For Gnome GDM: sudo service gdm stop

For Linux Mint MDM: sudo service mdm stop

Give permission to execute the downloaded installer:

chmod +x ~/Downloads/NVIDIA-Linux-*-331.20.run

Finally start the installer and follow on screen prompts:

sudo sh ~/Downloads/NVIDIA-Linux-*-331.20.run

Don’t remove the installer after installation, because if for some reason this driver does not work properly, you can remove Nvidia 331.20 via command below in TTY console:

sudo sh ~/Downloads/NVIDIA-Linux-*-331.20.run --uninstall