How to inspect the currently used Nvidia driver version and switch it to another alternative?

I'm trying to find out which Nvidia driver is being used currently in the system (and how to perhaps switch it to another version or the open-source nouveau driver).

modinfo knows about several nvidia drivers installed in the system (nvidia_173 and nvidia_331), but lsmod just calls it nvidia (and modinfo nvidia fails):

$ modinfo nv
nvidia_173  nvidia_331  nvidiafb    nvme        nvram       nv_tco      
marsmorgana@marsmorgana:~$ modinfo nvidia_331 
filename:       /lib/modules/3.11.0-26-generic/updates/dkms/nvidia_331.ko
alias:          char-major-195-*
version:        331.113
supported:      external
license:        NVIDIA
alias:          pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias:          pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        drm
vermagic:       3.11.0-26-generic SMP mod_unload modversions 686 
parm:           NVreg_Mobile:int
parm:           NVreg_ResmanDebugLevel:int
parm:           NVreg_RmLogonRC:int
parm:           NVreg_ModifyDeviceFiles:int
parm:           NVreg_DeviceFileUID:int
parm:           NVreg_DeviceFileGID:int
parm:           NVreg_DeviceFileMode:int
parm:           NVreg_RemapLimit:int
parm:           NVreg_UpdateMemoryTypes:int
parm:           NVreg_InitializeSystemMemoryAllocations:int
parm:           NVreg_UsePageAttributeTable:int
parm:           NVreg_MapRegistersEarly:int
parm:           NVreg_RegisterForACPIEvents:int
parm:           NVreg_CheckPCIConfigSpace:int
parm:           NVreg_EnablePCIeGen3:int
parm:           NVreg_EnableMSI:int
parm:           NVreg_MemoryPoolSize:int
parm:           NVreg_RegistryDwords:charp
parm:           NVreg_RmMsg:charp
parm:           NVreg_AssignGpus:charp
marsmorgana@marsmorgana:~$ lsmod | fgrep nv
nvidia               9704581  42 
drm                   247722  2 nvidia
marsmorgana@marsmorgana:~$ modinfo nvidia
ERROR: modinfo: could not find module nvidia
marsmorgana@marsmorgana:~$

How to find out which one is being used?

How to switch the one being used?

Re: additional-drivers

In 12.04, I have neither an additional-drivers tab in update-manager:

the update-manager in 12.04

nor an additional-drivers app in the menu, nor such a program (checked by locate), nor such an installable package (checked by apt-cache search).

(Off-topic explanation of my reason to want to inspect and switch the nvidia driver)

Because I might be experiencing problems with running SketchUp under wine because of the nvidia driver, as reported there.

An off-topic UPDATE: actually, it turned out later that this is another known nvidia-unrelated problem (see under "Tips") (found via "Sketchup not responding"), which must be fixed in wine-1.7.31; this version or later is available in the Ubuntu Wine repository for Trusty or later, so I'd need to upgrade from my 12.04 (Precise) to Trusty to use those packages. Nevertheless, my question here makes sense independently of the real solution in my situation.


Solution 1:

List available drivers via

% apt-cache search nvidia | grep -P '^nvidia-(driver-)?[0-9]+\s'
nvidia-304 - NVIDIA legacy binary driver - version 304.125
nvidia-310 - Transitional package for nvidia-310
nvidia-319 - Transitional package for nvidia-319
nvidia-346 - NVIDIA binary driver - version 346.59
nvidia-driver-390 - NVIDIA driver metapackage
nvidia-340 - NVIDIA binary driver - version 340.107
nvidia-driver-418 - Transitional package for nvidia-driver-430
nvidia-driver-430 - NVIDIA driver metapackage
nvidia-driver-435 - NVIDIA driver metapackage

and install with, eg

sudo apt-get install nvidia-driver-435

Show driver in use

  • nvidia-smi

    Sat Sep  5 11:57:22 2015       
    +------------------------------------------------------+                       
    | NVIDIA-SMI 340.76     Driver Version: 340.76         |                       
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce 9800 GT...  Off  | 0000:01:00.0     N/A |                  N/A |
    | 65%   52C    P0    N/A /  N/A |    271MiB /  1023MiB |     N/A      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Compute processes:                                               GPU Memory |
    |  GPU       PID  Process name                                     Usage      |
    |=============================================================================|
    |    0            Not Supported                                               |
    +-----------------------------------------------------------------------------+
    
  • nvidia-settings

    enter image description here

  • nvidia-settings -q NvidiaDriverVersion

      Attribute 'NvidiaDriverVersion' (sturm:1.0): 340.76
      Attribute 'NvidiaDriverVersion' (sturm:1[gpu:0]): 340.76
    
  • cat /proc/driver/nvidia/version

    NVRM version: NVIDIA UNIX x86_64 Kernel Module  340.76  Thu Jan 22 12:11:08 PST 2015
    GCC version:  gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
    

Solution 2:

Just open the additional-drivers app, search for it in the dash, or in software and updates

enter image description here

In 12.04 you can download an additional drivers app HERE.

Solution 3:

nvidia-smi -L

Sample output: GPU 0: GeForce GTX 1660 Ti with Max-Q Design (UUID: GPU-64ff7c28-7905-a240-e063-91caf97ab792)