Edit Info Other
Login

NVIDIA"

Differences between revisions 108 and 142 (spanning 34 versions)
Revision 108 as of 2018-11-05 10:14:07
Size: 10489
Comment:
Revision 142 as of 2021-10-26 20:35:41
Size: 14482
Comment:
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
You can also check the [[http://us.download.nvidia.com/XFree86/Linux-x86/367.57/README/supportedchips.html|supported chips]] section and see which series is recommended for you card, then install the appropriate driver series. You can also check the [[https://download.nvidia.com/XFree86/Linux-x86_64/495.44/README/supportedchips.html|supported chips]] section and see which series is recommended for you card, then install the appropriate driver series.
Line 21: Line 21:
You are probably in the Optimus case if your NVIDIA card is found with the next command: You are probably in the [[Howto/Optimus|Optimus]] case if your NVIDIA card is found with the next command:
Line 30: Line 30:
/!\ The '''''Secure Boot''''' will have to be disabled unless you managed to sign the nvidia kmod. You will have to enter the BIOS/EFI to disable it.
Line 33: Line 35:
This driver is suitable for any GPU found in 2010 and later.
{{{
dnf install xorg-x11-drv-nvidia akmod-nvidia
dnf install xorg-x11-drv-nvidia-cuda #optional for cuda/nvdec/nvenc support
dnf update -y
}}}
/!\ Please remember to wait until the kmod get built earch time a new kernel rise up. This can take up to 5 minutes on some systems.
This driver is suitable for any GPU found in 2014 and later.

/!\ The 495 driver is available by default on Fedora 35+ and later and has dropped support for some older Kepler GPU.

{{{
sudo dnf update -y # and reboot if you are not on the latest kernel
sudo dnf install akmod-nvidia # rhel/centos users can use kmod-nvidia instead
sudo dnf install xorg-x11-drv-nvidia-cuda #optional for cuda/nvdec/nvenc support

}}}
/!\ Please remember to wait after the RPM transaction ends, until the kmod get built. This can take up to 5 minutes on some systems.

Once the module is built, "modinfo -F version nvidia" should outputs the version of the driver such as 440.64 and not modinfo: ERROR: Module nvidia not found.

=== Legacy GeForce 600/700 ===
Supported on current stable Xorg server release.

/!\ This serie is the current default for fedora releases up to Fedora 34. Maintainer is awaited to maintain a 470xx dedicated series for Fedora 35 and later.

This driver is suitable for any NVIDIA Kepler GPU found between 2012 and 2014
{{{
# Placeholder for 470xx serie
}}}
/!\ Please remember to wait after the RPM transaction ends, until the kmod get built. This can take up to 5 minutes on some systems.
Line 46: Line 65:
dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx
dnf install xorg-x11-drv-nvidia-390xx-cuda #optional for cuda up to 9.2 support
Line 49: Line 66:
}}}
/!\ Please remember to wait until the kmod get built earch time a new kernel rise up. This can take up to 5 minutes on some systems.
sudo dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx
sudo dnf install xorg-x11-drv-nvidia-390xx-cuda #optional for cuda up to 9.2 support
}}}
/!\ Please remember to wait after the RPM transaction ends, until the kmod get built. This can take up to 5 minutes on some systems.
Line 53: Line 72:
Supported on current stable Xorg server release.
{{{
dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
dnf install xorg-x11-drv-nvidia-340xx-cuda #optional for cuda up to 6.5 support
dnf update -y
}}}
/!\ Please remember to wait until the kmod get built earch time a new kernel rise up. This can take up to 5 minutes on some systems.
Supported on current stable Xorg server release. EOL by NVIDIA at the end of 2019. Still available on "best effort basis" (newer kernel may break, will be discontinued at anytime if not actively maintained)
{{{
sudo dnf update -y
sudo
dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
sudo dnf install xorg-x11-drv-nvidia-340xx-cuda #optional for cuda up to 6.5 support
}}}
/!\ Please remember to wait until the kmod get built each time a new kernel rise up. This can take up to 5 minutes on some systems.

/!\ Workaround for keeping 340xx driver on newer f31+.

/!\ This driver doesn't support "pre-optimus" devices so if you have a mean to only use the NVIDIA device in bios, please turn it on (or rely on Intel/Nouveau if you want to keep both).
{{{
sudo dnf copr enable kwizart/kernel-longterm-5.10
sudo dnf install akmods gcc kernel-longterm kernel-longterm-devel
sudo dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
}}}
Line 63: Line 91:
{{{
dnf install xorg-x11-drv-nvidia-304xx akmod-nvidia-304xx
dnf update -y
}}}
/!\ Please remember to wait until the kmod get built each time a new kernel rise up. This can take up to 5 minutes on some systems.
Line 71: Line 94:
{{{
yum install akmod-nvidia-173xx
yum update -y
}}}
Line 77: Line 97:
{{{
yum install akmod-nvidia-96xx
yum update -y
}}}
Line 85: Line 102:
With Fedora 25 and later, Optimus devices are supported automatically by default. Please see the dedicated [[Howto/Optimus|Optimus Howto]]. With Fedora 25 and later, Optimus devices are supported automatically by default. Please see the dedicated [[Howto/Optimus|Optimus Howto]].


=== Silverblue ===
Silverblue is supported with the NVIDIA driver using akmod-nvidia starting with f30. (only the current NVIDIA driver is tested). Please follow the [[Configuration|Configuration]] page first.
{{{
sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia
sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-cuda #optional if using nvidia-smi or cuda
sudo rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=1 # this might not be needed at some point when silverblue will support the standard way to specify this.
}}}
Line 90: Line 116:
When you are about to select the kernel at the grub menu step. You can edit the kernel entry, find the linux boot command line and manually remove the following options "rd.driver.blacklist=nouveau modprobe.blacklist=nouveau". When you are about to select the kernel at the grub menu step. You can edit the kernel entry, find the linux boot command line and manually remove the following options "rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1".
Line 98: Line 124:
dnf install xorg-x11-drv-nvidia-cuda sudo dnf install xorg-x11-drv-nvidia-cuda
Line 106: Line 132:
grubby --update-kernel=ALL --args='nvidia-drm.modeset=1' sudo grubby --update-kernel=ALL --args='nvidia-drm.modeset=1'
Line 109: Line 135:

=== Graphic console ===
For long time, NVIDIA driver team have advertised "against" using a graphical console (vga parameters or else) over the default text console on non-EFI mode (bios). That's because some drivers bad interaction with the vesafb driver. This problem is now solved as it seems. (See also https://forums.developer.nvidia.com/t/unusable-linux-text-console-with-nvidia-drm-modeset-1-or-if-nvidia-persistenced-is-loaded).

If using a legacy bios, you can improve the vesafb driver using this parameter: (along the appropriate vga=id, use vga=ask for the first time).
{{{
sudo grubby --update-kernel=ALL --args='video=vesafb:mtrr:3'
}}}


=== Suspend ===
NVIDIA has provided some experimental scripts to enable clean resume on suspend to RAM or suspend to disk (hibernate) that might be specially needed in some environment. Theses scripts will prevent artefacts on resume by moving the full content of the graphic memory into either host RAM (or disk). Packaging is currently (as of 2021-08-23) in in-between state and will be improved as discussed in https://bugzilla.rpmfusion.org/show_bug.cgi?id=6066

{{{
sudo dnf install xorg-x11-drv-nvidia-power
sudo systemctl enable nvidia-{suspend,resume,hibernate}
# Optional: tweak "nvidia options NVreg_TemporaryFilePath=/var/tmp" from /etc/modprobe.d/nvidia.conf as needed if you have issue with /tmp as tmpfs with nvidia suspend )
}}}

Line 114: Line 160:
dnf install vulkan sudo dnf install vulkan
Line 120: Line 166:
With Fedora 29, mutter has support for NVIDIA eglstream but it's disabled at runtime by a udev rules. You need to comment the DRIVER==nvidia line in /usr/lib/udev/rules.d/64-gdm.rules. You will also have to comment WaylandEnable in /etc/gdm/custom.conf With Fedora 29, mutter has support for NVIDIA eglstream but it's disabled at runtime by a udev rules. You need to comment the "DRIVER==nvidia" line in /usr/lib/udev/rules.d/61-gdm.rules. You will also have to comment "WaylandEnable=false" in /etc/gdm/custom.conf
Line 126: Line 172:
dnf install xorg-x11-drv-nvidia-cuda-libs sudo dnf install xorg-x11-drv-nvidia-cuda-libs
Line 134: Line 180:
dnf install "kernel-devel == $(uname -r)"
dnf update -y
dnf --enablerepo=rpmfusion-nonfree-rawhide install akmod-nvidia xorg-x11-drv-nvidia --nogpgcheck
sudo dnf install "kernel-devel-uname-r >= $(uname -r)"
sudo dnf update -y
sudo dnf copr enable kwizart/nvidia-driver-rawhide -y
sudo dnf install rpmfusion-nonfree-release-rawhide -y
sudo
dnf --enablerepo=rpmfusion-nonfree-rawhide install akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda --nogpgcheck
Line 141: Line 189:
dnf install "kernel-devel-uname-r == $(uname -r)"
dnf update -y
dnf --releasever=28 install akmod-nvidia xorg-x11-drv-nvidia --nogpgcheck
sudo dnf install "kernel-devel-uname-r == $(uname -r)"
sudo dnf update -y
sudo dnf --releasever=30 install akmod-nvidia xorg-x11-drv-nvidia --nogpgcheck
}}}

=== nvidia-xconfig ===
This tool is only meant to be used as a sample to create a xorg.conf files. But don't use this directly as the generated xorg.conf is known to broke with many default Fedora/RHEL Xorg server options.
Instead, you should probably start with :
{{{
sudo cp /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf
Line 155: Line 210:
# dnf install vdpauinfo libva-vdpau-driver libva-utils # sudo dnf install vdpauinfo libva-vdpau-driver libva-utils
Line 199: Line 254:
dnf config-manager --add-repo=http://dl.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
dnf update
sudo dnf config-manager --add-repo=http://dl.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf update
Line 205: Line 260:
dnf downgrade xorg-x11-server\* --releasever=22 --allowerasing
echo "exclude=xorg-x11*" >> /etc/dnf/dnf.conf
sudo dnf downgrade xorg-x11-server\* --releasever=29 --allowerasing
sudo echo "exclude=xorg-x11*" >> /etc/dnf/dnf.conf

About this Howto

This howto will help you install the correct NVIDIA driver on Fedora for your graphics card as well as troubleshoot common driver problems.

The prerequisite is to have followed the Configuration page to have at least the RPM Fusion nonfree section available.

Determining your card model

NVIDIA has several driver series, each of which has different hardware support. To determine which driver you need to install, you'll first need to find your graphics card model.

If you don't know it, open a Terminal (Applications > System Tools > Terminal) and type:

/sbin/lspci | grep -e VGA

You can also check the supported chips section and see which series is recommended for you card, then install the appropriate driver series. Please remember that you need additional steps for optimus.

You are probably in the Optimus case if your NVIDIA card is found with the next command:

/sbin/lspci | grep -e 3D

Installing the drivers

Please remember that once the driver is installed, there is no need to configure xorg.conf by default unless you are using an Optimus device. Changes will take effect after a full reboot on the newest kernel.

/!\ The Secure Boot will have to be disabled unless you managed to sign the nvidia kmod. You will have to enter the BIOS/EFI to disable it.

Current GeForce/Quadro/Tesla

Supported on current stable Xorg server release.

This driver is suitable for any GPU found in 2014 and later.

/!\ The 495 driver is available by default on Fedora 35+ and later and has dropped support for some older Kepler GPU.

sudo dnf update -y # and reboot if you are not on the latest kernel
sudo dnf install akmod-nvidia # rhel/centos users can use kmod-nvidia instead
sudo dnf install xorg-x11-drv-nvidia-cuda #optional for cuda/nvdec/nvenc support

/!\ Please remember to wait after the RPM transaction ends, until the kmod get built. This can take up to 5 minutes on some systems.

Once the module is built, "modinfo -F version nvidia" should outputs the version of the driver such as 440.64 and not modinfo: ERROR: Module nvidia not found.

Legacy GeForce 600/700

Supported on current stable Xorg server release.

/!\ This serie is the current default for fedora releases up to Fedora 34. Maintainer is awaited to maintain a 470xx dedicated series for Fedora 35 and later.

This driver is suitable for any NVIDIA Kepler GPU found between 2012 and 2014

# Placeholder for 470xx serie

/!\ Please remember to wait after the RPM transaction ends, until the kmod get built. This can take up to 5 minutes on some systems.

Legacy GeForce 400/500

Supported on current stable Xorg server release.

This driver is suitable for any NVIDIA Fermi GPU found between 2010 and 2012

dnf update -y
sudo dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx
sudo dnf install xorg-x11-drv-nvidia-390xx-cuda #optional for cuda up to 9.2 support

/!\ Please remember to wait after the RPM transaction ends, until the kmod get built. This can take up to 5 minutes on some systems.

Legacy GeForce 8/9/200/300

Supported on current stable Xorg server release. EOL by NVIDIA at the end of 2019. Still available on "best effort basis" (newer kernel may break, will be discontinued at anytime if not actively maintained)

sudo dnf update -y
sudo dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
sudo dnf install xorg-x11-drv-nvidia-340xx-cuda #optional for cuda up to 6.5 support

/!\ Please remember to wait until the kmod get built each time a new kernel rise up. This can take up to 5 minutes on some systems.

/!\ Workaround for keeping 340xx driver on newer f31+.

/!\ This driver doesn't support "pre-optimus" devices so if you have a mean to only use the NVIDIA device in bios, please turn it on (or rely on Intel/Nouveau if you want to keep both).

sudo dnf copr enable kwizart/kernel-longterm-5.10
sudo dnf install akmods gcc kernel-longterm kernel-longterm-devel
sudo dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx

Legacy GeForce 6/7

Supported up to Fedora 27 - EOL, no more nvidia updates

Legacy GeForce 5 (FX series)

Supported up to Fedora 20 - EOL, no more nvidia updates

Legacy GeForce 2 through GeForce 4

Supported up to Fedora 14 - EOL, no more nvidia updates

Special notes

Optimus

With Fedora 25 and later, Optimus devices are supported automatically by default. Please see the dedicated Optimus Howto.

Silverblue

Silverblue is supported with the NVIDIA driver using akmod-nvidia starting with f30. (only the current NVIDIA driver is tested). Please follow the Configuration page first.

sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia
sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-cuda #optional if using nvidia-smi or cuda
sudo rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=1 # this might not be needed at some point when silverblue will support the standard way to specify this.

Switching between nouveau/nvidia

With recent drivers as packaged with RPM Fusion, it is possible to switch easily between nouveau and nvidia while keeping the nvidia driver installed. When you are about to select the kernel at the grub menu step. You can edit the kernel entry, find the linux boot command line and manually remove the following options "rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1". This will allow you to boot using the nouveau driver instead of the nvidia binary driver. At this time, there is no way to make the switch at runtime.

CUDA

The driver support CUDA when installing the xorg-x11-drv-nvidia-cuda subpackage. Please have a look on the dedicated CUDA Howto

sudo dnf install xorg-x11-drv-nvidia-cuda

KMS

KMS stands for "Kernel Mode Setting" which is the opposite of "Userland Mode Setting". This feature allows to set the screen resolution on the kernel side once (at boot), instead of after login from the display manager. This feature has early support in the main NVIDIA driver, but is not enabled by default yet as it may crash. To enable, use:

sudo grubby --update-kernel=ALL --args='nvidia-drm.modeset=1'

Please have a look at the Wayland section if using it (specially for gnome users).

Graphic console

For long time, NVIDIA driver team have advertised "against" using a graphical console (vga parameters or else) over the default text console on non-EFI mode (bios). That's because some drivers bad interaction with the vesafb driver. This problem is now solved as it seems. (See also https://forums.developer.nvidia.com/t/unusable-linux-text-console-with-nvidia-drm-modeset-1-or-if-nvidia-persistenced-is-loaded).

If using a legacy bios, you can improve the vesafb driver using this parameter: (along the appropriate vga=id, use vga=ask for the first time).

sudo grubby --update-kernel=ALL --args='video=vesafb:mtrr:3'

Suspend

NVIDIA has provided some experimental scripts to enable clean resume on suspend to RAM or suspend to disk (hibernate) that might be specially needed in some environment. Theses scripts will prevent artefacts on resume by moving the full content of the graphic memory into either host RAM (or disk). Packaging is currently (as of 2021-08-23) in in-between state and will be improved as discussed in https://bugzilla.rpmfusion.org/show_bug.cgi?id=6066

sudo dnf install xorg-x11-drv-nvidia-power
sudo systemctl enable nvidia-{suspend,resume,hibernate}
# Optional: tweak "nvidia options NVreg_TemporaryFilePath=/var/tmp" from /etc/modprobe.d/nvidia.conf as needed if you have issue with /tmp as tmpfs with nvidia suspend )

Vulkan

The main package support Vulkan, but you need to install the vulkan libraries if requested.

sudo dnf install vulkan

Wayland

Gnome with Wayland and NVIDIA doesn't work by default at this point.

With Fedora 29, mutter has support for NVIDIA eglstream but it's disabled at runtime by a udev rules. You need to comment the "DRIVER==nvidia" line in /usr/lib/udev/rules.d/61-gdm.rules. You will also have to comment "WaylandEnable=false" in /etc/gdm/custom.conf

NVENC/NVDEC

RPM Fusion support ffmpeg compiled with NVENC/NVDEC with Fedora 25 and later. You need to have a recent NVIDIA card (see the support matrix), and install the cuda sub-package.

sudo dnf install xorg-x11-drv-nvidia-cuda-libs

Please have a look on the ffmpeg HWAccel introduction to the feature

Latest/Beta driver

You can install the latest drivers from Rawhide using the following command:

sudo dnf install "kernel-devel-uname-r >= $(uname -r)"
sudo dnf update -y
sudo dnf copr enable kwizart/nvidia-driver-rawhide -y
sudo dnf install rpmfusion-nonfree-release-rawhide -y
sudo dnf --enablerepo=rpmfusion-nonfree-rawhide install akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda --nogpgcheck

Or if you want to grab it from the latest fedora stable release:

sudo dnf install "kernel-devel-uname-r == $(uname -r)"
sudo dnf update -y
sudo dnf --releasever=30 install akmod-nvidia xorg-x11-drv-nvidia --nogpgcheck

nvidia-xconfig

This tool is only meant to be used as a sample to create a xorg.conf files. But don't use this directly as the generated xorg.conf is known to broke with many default Fedora/RHEL Xorg server options. Instead, you should probably start with :

sudo cp /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf

x86_64 (64bit) users

If you wish to have 3D acceleration in 32bit packages such as Wine, be sure to install the appropriate 32bit version of the xorg-x11-drv-nvidia-libs package for your driver variant. For example, if you installed kmod-nvidia then you will require xorg-x11-drv-nvidia-libs.i686. With Current Fedora (not EL), this is handled automatically by RPM (Boolean dependencies).

PAE (Physical Address Extension) kernel users

If you are on a 32bit (i686) system and have the kernel-PAE installed to access more RAM, please install kernel-PAE-devel. Please note that this step is not required for any 64bit (x64_64) users.

VDPAU/VAAPI

In order to enable video acceleration support for your player and if your NVIDIA card is recent enough (Geforce 8 and later is needed). You can install theses packages:

# sudo dnf install vdpauinfo libva-vdpau-driver libva-utils

With the native vdpau backend from a NVIDIA card, the output is similar to this:

$ vdpauinfo 
display: :0.0   screen: 0
API version: 1
Information string: NVIDIA VDPAU Driver Shared Library  375.66  Mon May  1 14:32:38 PDT 2017
...

Here is an example of an accurate output of vainfo, when the bridge to the VAAPI is correctly installed.

$ vainfo 
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
...

Akmods

An akmod is a type of package similar to dkms. As you start your computer, the akmod system will check if there are any missing kmods and if so, rebuild a new kmod for you. Akmods have more overhead than regular kmod packages as they require a few development tools such as gcc and automake in order to be able to build new kmods locally.

Nouveau compatibility

As nouveau is enabled by default starting with Fedora 11, you may experience problem which is caused by the nouveau kernel module being present in the initrd image. Once the driver is installed and after the reboot, this command should not output anything:

lsmod |grep nouveau

Secure Boot

Secure Boot currently blocks the kernel from loading the NVIDIA driver. It must be disabled before booting the OS.

Rawhide

Rawhide kernels are built with debug enabled GPL-only symbols which kernel is incompatible with the NVIDIA binary-only driver. You need to use the Rawhide nodebug repository.

sudo dnf config-manager --add-repo=http://dl.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf update

Please remind that Xorg server version is also to take into consideration. In the case of incompatibilities with the xorg-server, you might need to downgrade to the previous fedora release:

sudo dnf downgrade xorg-x11-server\* --releasever=29 --allowerasing
sudo echo "exclude=xorg-x11*" >> /etc/dnf/dnf.conf

Uninstall the NVIDIA driver

dnf remove xorg-x11-drv-nvidia\*

Recover from NVIDIA installer

The NVIDIA binary driver installer overwrite some configuration and libraries. If you want to recover to a clean state, either to use nouveau or the packaged driver, use:

rm -f /usr/lib{,64}/libGL.so.* /usr/lib{,64}/libEGL.so.*
rm -f /usr/lib{,64}/xorg/modules/extensions/libglx.so
dnf reinstall xorg-x11-server-Xorg mesa-libGL mesa-libEGL libglvnd\*
mv /etc/X11/xorg.conf /etc/X11/xorg.conf.saved

Bug Report

If you still cannot make the driver to work, you can either report a problem to NVIDIA or to RPM Fusion packager team. Please read: If you have a problem, PLEASE read this first

Basically, you need to generate an archive and attach it to bugzilla or any paste service.

sudo nvidia-bug-report.sh
zcat nvidia-bug-report.log.gz | fpaste


CategoryHowto

Howto/NVIDIA (last edited 2024-08-30 16:31:12 by NicolasChauvet)