The NVIDIA Driver is a program needed for your NVIDIA Graphics GPU to function with better performance. It communicates between your Linux operating system, in this case Fedora 31, and your hardware, the NVIDIA Graphics GPU. The NVIDIA drivers can be installed by using the bash command after stopping the GUI and disabling the nouveau driver by modifying the GRUB boot menu.

To install Nvidia driver on other Linux distributions, follow our Nvidia Linux Driver guide.

In this NVIDIA Drivers installation guide you will learn:
  • How to install NVIDIA graphic driver automatically using RPM Fusion and Manually using the official NVIDIA driver from nvidia.com.
  • How to identify your NVIDIA graphic card model on your operating system.
  • Where to download the NVIDIA driver package for Fedora 31.
  • How to install prerequisites for a successful Nvidia Driver compilation and installation on Fedora 31.
  • How to disable the nouveau driver.
  • How to successfully install NVIDIA Drivers on your Fedora 31 Linux operating system.
Installed Nvidia drivers on Fedora 31 Linux GNOME Workstation
Installed Nvidia drivers on Fedora 31 Linux GNOME Workstation running graphic card benchmark.

Software Requirements and Conventions Used

Software Requirements and Linux Command Line Conventions
Criteria Requirements
Operating System Fedora 31
Software Existing Desktop installation such as GNOME.
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # - requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ - requires given linux commands to be executed as a regular non-privileged user

How to install the NVIDIA drivers on Fedora 31 Workstation step by step instructions

Install Nvidia Driver using RPMFusion

Installing the Nvidia driver on Fedora Linux using RPM Fusion is the easiest and recommended way since you do not have to deal with driver recopiling every-time there is a new kernel update.

  1. Open up the terminal and identify your Nvidia graphic card model by executing:
    $ lspci -vnn | grep VGA
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1) (prog-if 00 [VGA controller])
    
  2. Fully update your system
    # dnf update
    
  3. Enable RPM fusion:
    # dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm 
    # dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    
  4. Lastly install a relevant Nvidia driver package by selecting one of the following options:
    For recent GeForce/Quadro/Tesla execute:
    # dnf install akmod-nvidia
    For Legacy GeForce 400/500 execute:
    # dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx
    For Legacy GeForce 8/9/200/300 execute:
    # dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
    
  5. All done. Reboot your system:
    # reboot
    

SUBSCRIBE TO NEWSLETTER
Subscribe to Linux Career NEWSLETTER and receive latest Linux news, jobs, career advice and tutorials.


Install Nvidia Driver manually

    In case from some reason the installation of Nvidia Driver using RPM fusion fails or you simply wish to have the latest Nvidia driver version which may not be available via RPM fusion channel you might attempt the Nvidia driver manual install.

  1. Open up the terminal and identify your Nvidia graphic card model by executing:
    $ lspci -vnn | grep VGA
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1) (prog-if 00 [VGA controller])
    
  2. Download the Nvidia driver package from nvidia.com using search criteria based on your Nvidia card model and the Linux operating system.
    Download an appropriate Nvidia driver for your VGA card.
    Download an appropriate Nvidia driver for your VGA card.
    Alternatively, if you know what you are doing you can download the driver directly from the Nvidia Linux driver list. Once ready you should end up with a file similar to the one shown below:
    $ ls NVIDIA-Linux-x86_64-*
    NVIDIA-Linux-x86_64-430.50.run
    
  3. Next, install package prerequisites for a successful Nvidia driver compilation and installation.
    # dnf groupinstall "Development Tools"
    # dnf install libglvnd-devel
    
  4. Permanently disable the nouveau driver by modifying the GRUB boot menu:
    # grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) nouveau.modeset=0"
    
  5. Reboot your Fedora 31 Desktop:
    WARNING
    Depending on your Nvidia VGA model your system might misbehave. At this stage be ready to get your hands dirty. After the reboot you may end up without GUI at all. Be sure that you have the SSH enabled on your system to be able login remotely or use CTRL+ALT+F2 to switch TTY console and continue with the installation.
    # reboot
    
  6. The Nvidia drivers must be installed while the Xorg server is stopped. Switch to the text mode by:
    #  systemctl isolate multi-user.target
    
  7. Install the Nvidia driver by executing the following command via TTY console or remote SSH login:
    NOTE
    ERROR: Unable to find the kernel source tree for the currently running kernel
    In case you receive the above error message during the execution of the below command, follow the kernel source instructions on how to install kernel source on CentOS / RHEL Linux system.
    # bash NVIDIA-Linux-x86_64-*
    
    When prompted answer YES to installation of NVIDIA's 32-bit compatibility libraries, overwrite existing libglvnd files and automatic update of your X configuration file.
  8. Reboot your system one more time.
    # reboot
    All done. The Nvidia driver should now be installed on your Fedora 31 Desktop. Reboot your system now, login and run nvidia-settings to further configure your Nvidia graphic card settings.


Troubleshooting

GDM on Xorg server does not start after user login and user ends up with black screen. The Xorg log contains the following or similar error messages:
[  3515.464] (II) systemd-logind: got pause for 13:68
[  3515.738] (II) systemd-logind: got resume for 13:64
[  3515.757] (II) NVIDIA(0): Setting mode "DFP-1:nvidia-auto-select"
[  3515.793] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[  3515.793] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[  3515.793] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[  3515.793] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[  3515.793] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[  3515.793] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[  3515.793] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[  3515.793] (II) NVIDIA(0):     Config Options in the README.
[  3515.793] [dix] couldn't enable device 8
[  3515.793] (II) systemd-logind: got resume for 13:66
[  3515.793] [dix] couldn't enable device 6
[  3515.794] (II) systemd-logind: got resume for 13:65
[  3515.794] [dix] couldn't enable device 7
[  3515.794] (II) systemd-logind: got resume for 13:72
[  3515.794] [dix] couldn't enable device 14
[  3515.794] [dix] couldn't enable device 17
[  3515.794] (II) systemd-logind: got resume for 13:71
[  3515.794] [dix] couldn't enable device 13
[  3515.794] (II) systemd-logind: got resume for 13:67
[  3515.794] [dix] couldn't enable device 9
[  3515.794] (II) systemd-logind: got resume for 13:73
[  3515.794] [dix] couldn't enable device 15
[  3515.794] (II) systemd-logind: got resume for 13:69
[  3515.794] [dix] couldn't enable device 11
[  3515.794] [dix] couldn't enable device 16
[  3515.794] (II) systemd-logind: got resume for 13:70
[  3515.794] [dix] couldn't enable device 12
[  3515.794] (II) systemd-logind: got resume for 13:68
[  3515.794] [dix] couldn't enable device 10
Try restart the systemd's systemd-logind service:
# systemctl restart systemd-logind
ARE YOU LOOKING FOR A LINUX JOB?
Submit your RESUME, create a JOB ALERT or subscribe to RSS feed on LinuxCareers.com.
LINUX CAREER NEWSLETTER
Subscribe to NEWSLETTER and receive latest news, jobs, career advice and tutorials.
DO YOU NEED ADDITIONAL HELP?
Get extra help by visiting our LINUX FORUM or simply use comments below.