Nvidia Driver 331.20 released, Install it in Ubuntu & Linux Mint

Last updated: November 7, 2013

Nvidia 331.20 ubuntu 13.10

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:
  • 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


    I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Contact me via [email protected] Buy me a coffee: https://ko-fi.com/ubuntuhandbook1

    22 responses to Nvidia Driver 331.20 released, Install it in Ubuntu & Linux Mint

    1. Томица Кораћ November 7, 2013 at 4:06 pm

      nVidia has finally done some good job recently. 325 drivers work very nice with kernel 3.12 and 331 drivers are a further improvement. You’ve finally deserved your doughnut nVidia.

    2. Can’t wait for LinusNvidiaThumbsup.jpg to start existing.

    3. Doesn’t work for me…

      U13.10 has kernel 3.8.0-22 dy default, but doesn’t have header packake for this one (crazy#1).
      After upgrading 3.11.0-11, or 13, I was able to install nvidia, but theese kernels doesn’t work with my USB, so I had no keyboard. I had to work from now on my android phone via SSH! crazy#2

      After reverto to 3.8.0, the nvidia driver (ubuntu’s nvidia-current) did not work again, after login I just saw black screen, and there was no way I could find to mend it.
      Finally I had to remove the NVIDIA card, revert to basic Intel (i5) – which doesn’t support dual monitor config at the moment (did work with 13.04..) crazy #3

      I guess time to leave ubuntu, and find something that works…

    4. Total failure, it left me with Ubuntu is running in low graphics mode. And then could not move forward with the next presented menu.
      Running 12.04 64 bit with 8400Gs pcie card.
      Only way to go back was open a terminal console window.
      uninstall nvidia-current
      delete xorg.conf
      use xswat-ppa and install 3.04
      then it works.

    5. Same here with Quadro 4000. Had to go back to 304.

    6. The blank screen is often because nouveau is still being loaded, this is very awkward indeed. Add blacklist nouveau to a file in /etc/modprobe.d/ to make sure, then run update-grub.

      I have an older Graphics Card, boot with nomodeset added to /etc/default/grub like CMD_GRUB_LINUX_DEFAULT=”quiet splash nomodeset” then running update-grub and rebooting works very well for me.

      Also, just for the sake of an error i found in the logs set GRUB_TERMINA=console in /etc/default/grub. This should make for a blistering fast X display.

      If you want to make some more tweaks make sure /etc/X11/xorg.conf looks like the below, this makes my setup work very well.

      Section “Device”
      Identifier “Device0”
      Driver “nvidia”
      VendorName “NVIDIA Corporation”
      Option “NoLogo” “1”
      Option “RenderAccel” “1”
      Option “MigrationHeuristic” “greedy”
      Option “TripleBuffer” “true”
      Option “DamageEvents” “1”
      Option “RegistryDwords” “EnableBrightnessControl=1”

      You can generate this file by running nvidia-xconfig

      One more hint would be to NOT install gnash and/or browser-plugin-gnash on your system for maximum stability.

    7. Sorry if this post is double, here’s what i found. This works very well for an older card a [Quadro FX 360M]

      in /etc/default/grub make sure nomodeset is part of the boot parameters such as in
      CMD_GRUB_LINUX_DEFAULT=”quiet splash nomodeset”
      also, for the sake of validating this for your set-up set or uncomment ( remove # )
      this is known to hinder the nvidia performance and stability, also remove any vga= boot parameters, when this is done run


      in addition these tweaks seem to work well, generate an /etc/X11/xorg.conf file by running nvidia-xconfig, then make sure it contains values like the below.

      Section “Module”
      Load “glx”

      Section “Device”
      Identifier “Device0”
      Driver “nvidia”
      VendorName “NVIDIA Corporation”
      Option “NoLogo” “1”
      Option “RenderAccel” “1”
      Option “MigrationHeuristic” “greedy”
      Option “TripleBuffer” “true”
      Option “DamageEvents” “1”
      Option “RegistryDwords” “EnableBrightnessControl=1”

      This works very well for me. In addition i remove any package related to gnash such as browser-plugin-gnash for maximum stability.

      • @Jarth

        Marvellous! This worked for my Ubuntu 12.04 with 3.2 Kernel when installing nvidia 311.

        My steps:

        1. Download latest nvidia driver from nvidia website
        2. Ctl+Alt+F1
        3. sudo service lightdm stop
        4. chmod u+x DOWNLOADEDFILE.run
        5. sudo sh ./DOWNLOADEDFILE.run
        6. Follow prompts installing the x86 libs

        At this point it said everything was dandy BUT I got black screen and lightdm wouldn’t start. After following the grub changes recommended by @Jarth, everything ran – and Steam did no longer complain.

    8. I had my Ubuntu 12.04 x64 running like a charm with 331.20 drivers and my gtx560 but kernel got updated and I removed drivers and tried to install them again, everything seemed to be normal but when I rebooted to gnome 3 everything on screen was tearing, I had to go back to 319 … Any ideas why this happened ?

      btw I also installed cinnamon desktop before I found out about screen tearing, could that be the cause ?

    9. How well this works Linuxmint 16 and GeForece GT 650M because my computer is already messed up from some old stuff I would highly appreciate your help.

    10. chmod: cannot access ‘/Downloads/NVIDIA-Linux-331.20.run’: No such file or directory

      i need some help plz i dose not want to aces at all

    11. You forgot the ~

    12. These instructions/directions are so thourough than the other i have read in forums, seen on youtube and others. by doing this i didnt get a black screen. I was so happy i had to copy the instructions and save it as a pdf and save on my tablet if i need to use it again.


    13. Any way to download driver .run file from console? I can’t get to a desktop to do anything

      • To download a package in terminal, jut run:

        wget PACKAGE_URL

        For example:

        wget http://us.download.nvidia.com/XFree86/Linux-x86/331.20/NVIDIA-Linux-x86-331.20.run
        • thnx. I found another way that sorta worked from another forum to add the ppa, then
          update and install from there. My desktop comes up but it’s unpopulated, and the only way to get to the menu bar to restart is to ctrl-alt-del. Unity doesn’t come up at all

    14. I wouldn’t advise using nVidia drivers yet. I attempted to install them on several linux distributions, they didn’t work on any of them. Preconfigured drivers on LiveCD’s of GhostBSD, Sabayon, Mageia recognize the nVidia device but it appears that the driver is broken because it stops at a blank screen, with some random white pixels.

      • The open-source drivers available in universe repository is a good choice if the proprietary driver not working.

        • there should be a warning in the top of this blog stating this fact, i wasted 6 hours trying to get around it

    15. I just get “cannot build kernel module” *nvidia driver [version]* details in the installation log. Problem is, the log contains no such detail just the same messages that appear on screen. What am I missing (just want this becasue it doesn’t even detect monitor resolution right correctly now, 1024×768 only).

    16. I installed the proprietary TESTED driver from the Ubuntu 14.04 Additional Hardware tab. When I restarted, all I get is a blank screen. What do I do?

      • Press Ctrl+Alt+F2 on keyboard to switch to console, log in and run the command in the end of this post to uninstall this driver.