How to switch nvidia driver from "nouveau" to nvidia proprietary

22,882

After trying different things, this is what worked for me. I'd appreciate any suggestion or explanation if anything seems useless.

  1. download the proprietary driver you want to use, from the nvidia website in my case:

NVIDIA-Linux-x86_64-375.39.run

  1. go to your non-graphic mode (ctrl-alt-f1)
  2. Kill your graphic process (sudo service mdm stop). If the screen turns black, you can use a remote connection (ssh) from a other computer for the next steps, or do the step 1 again.
  3. edit your grub file /etc/default/grub and change the GRUB_CMD_LINE_DEFAULT to this one

GRUB_CMDLINE_LINUX_DEFAULT="nouveau.blacklist=1 quiet splash"

  1. purge every driver you can have, nouveau or nvidia (sudo apt-get purge xserver-xorg-video-nouveau libdrm-nouveau1a nvidia*)
  2. update your initramfs sudo update-initramfs -u -k all . This step is really important, but i don't understand it correctly, so, your comments are welcome
  3. reboot
  4. go back in non-graphic mode (ctrl-alt-f1)
  5. kill your graphic process (sudo service mdm stop). If the screen turns black, you can use a remote connection (ssh) for the next steps or do the step 1 again.
  6. run your downloaded proprietary driver files in root mode (sudo ./NVIDIA-Linux-x86_64-375.39.run) and clic "yes", or "accept" to whatever it needs.
  7. reboot and enjoy

the lspci -vnnn should be like that now

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF104 [GeForce GTX 460] [10de:0e22] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Gigabyte Technology Co., Ltd GF104 [GeForce GTX 460] [1458:34fc]
    Flags: bus master, fast devsel, latency 0, IRQ 126
    Memory at dc000000 (32-bit, non-prefetchable) [size=32M]
    Memory at d0000000 (64-bit, prefetchable) [size=128M]
    Memory at d8000000 (64-bit, prefetchable) [size=64M]
    I/O ports at e000 [size=128]
    [virtual] Expansion ROM at de000000 [disabled] [size=512K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Endpoint, MSI 00
    Capabilities: [b4] Vendor Specific Information: Len=14 <?>
    Capabilities: [100] Virtual Channel
    Capabilities: [128] Power Budgeting <?>
    Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
    Kernel driver in use: nvidia
    Kernel modules: nvidiafb, nouveau, nvidia_375_drm, nvidia_drm, nvidia_375, nvidia

You can see that the kernel driver in use is now referencing nvidia instead of nouveau

Share:
22,882

Related videos on Youtube

Carpette
Author by

Carpette

Updated on September 18, 2022

Comments

  • Carpette
    Carpette over 1 year

    i'm using Linux Mint.

    I recently updated my workstation, and from this moment, my drivers went nuts. I was working fine before, with the nvidia-361 drivers, and, when i finished my updates, and after rebooting the PC, il was running in "software rendering mode".

    I finally get to have a correct desktop, but now, i'm quite sure the card isn't fonctionning properly, because i can't launch any simple game with 3D (like blazeRush for example, wich was running fine before).

    This is the result of a lspci -vnnn

    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF104 [GeForce GTX 460] [10de:0e22] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Gigabyte Technology Co., Ltd GF104 [GeForce GTX 460] [1458:34fc]
    Flags: bus master, fast devsel, latency 0, IRQ 124
    Memory at dc000000 (32-bit, non-prefetchable) [size=32M]
    Memory at d0000000 (64-bit, prefetchable) [size=128M]
    Memory at d8000000 (64-bit, prefetchable) [size=64M]
    I/O ports at e000 [size=128]
    Expansion ROM at de000000 [disabled] [size=512K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Endpoint, MSI 00
    Capabilities: [b4] Vendor Specific Information: Len=14 <?>
    Capabilities: [100] Virtual Channel
    Capabilities: [128] Power Budgeting <?>
    Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
    Kernel driver in use: nouveau
    Kernel modules: nvidiafb, nouveau, nvidia_375_drm, nvidia_375
    

    As you can see, the kernel driver in use is "nouveau", but i would like to use nvidia_375 instead. I already tried to purge with apt like this

    sudo apt purge *nvidia* xserver-xorg*nouveau* bbswitch*
    

    but when i do that, after a reboot, "nouveau" is still here ... i can try to install again the proprietary drivers, but i will be back in the same situation as before the purge.

    I'm running out of options.

  • quiet-ranger
    quiet-ranger over 4 years
    You need to change initramfs because Ubuntu and Mint load Nouveau drivers very early in the boot process. See the following for more details: us.download.nvidia.com/XFree86/Linux-x86_64/440.59/README/…
  • Carpette
    Carpette over 4 years
    Thanks for this update !