How To Install NVIDIA Drivers on Fedora 43

Fedora 43 ships with the open-source Nouveau driver for NVIDIA graphics cards, which provides basic functionality but falls short when you need optimal performance. Whether you’re gaming, running machine learning workloads, or working with professional graphics applications, installing the proprietary NVIDIA drivers delivers significantly better performance and full GPU feature support.
Unlike some Linux distributions, Fedora doesn’t include proprietary drivers out of the box due to licensing restrictions. This means you’ll need to manually install them from a trusted third-party repository. While this might sound daunting, the process is straightforward when you follow the right steps.
This comprehensive guide walks you through installing NVIDIA drivers on Fedora 43 using the recommended RPM Fusion repository method. You’ll learn how to handle secure boot configurations, verify your installation, and troubleshoot common issues. The entire process typically takes 20-30 minutes, including system updates and driver compilation time.
Understanding NVIDIA Drivers on Fedora
Fedora includes the Nouveau driver by default, an open-source implementation that provides basic display functionality for NVIDIA graphics cards. However, Nouveau lacks support for advanced features like CUDA acceleration, optimal gaming performance, and professional graphics workloads.
The proprietary NVIDIA driver unlocks your GPU’s full potential. It provides better 3D acceleration, support for the latest OpenGL and Vulkan APIs, CUDA toolkit compatibility, and significantly improved gaming frame rates.
When installing NVIDIA drivers on Fedora, you’ll encounter two package types: kmod and akmod. The kmod package contains pre-built kernel modules for specific kernel versions, while akmod automatically rebuilds the driver whenever your kernel updates. The akmod approach is recommended because it ensures your NVIDIA drivers continue working seamlessly after kernel updates without manual intervention.
RPM Fusion serves as the trusted third-party repository for NVIDIA drivers on Fedora. This community-maintained repository provides regularly updated packages that integrate cleanly with Fedora’s package management system. Using RPM Fusion is far superior to manual installation from NVIDIA’s website, which can break system updates and create maintenance headaches.
Your GPU generation determines which driver version you need. Modern GPUs from the GeForce 800 series and newer use the latest driver branch. Legacy cards require specific driver versions: GeForce 600/700 series use the 470xx branch, while GeForce 400/500 series need the 390xx branch.
Prerequisites and System Preparation
Checking Your NVIDIA GPU Model
Before installation, identify your exact GPU model. Open a terminal and run the following command:
lspci -vnn | grep VGA
This displays detailed information about your graphics hardware. Look for lines containing “NVIDIA” to identify your card. For example, you might see “NVIDIA Corporation GP107 [GeForce GTX 1050 Ti]” which indicates a GTX 1050 Ti GPU.
Different GPU generations require different driver versions. GeForce RTX 20/30/40 series, GTX 16/10 series, and GeForce 900/800 series cards use the latest driver branch. If you have a GeForce GTX 750 Ti or older, check NVIDIA’s legacy GPU support documentation to determine the correct driver version.
You can also verify GPU compatibility by checking the PCI ID shown in the lspci output against NVIDIA’s official supported products list. This ensures the drivers you’re about to install will work with your specific hardware.
System Requirements
This guide applies to all Fedora 43 editions, including Workstation with GNOME, KDE Plasma Spin, and other desktop variants. Your system should have at least 4GB of RAM and 2GB of free disk space for the driver installation and compilation process.
You’ll need a stable internet connection to download repository configurations and driver packages. The total download size is approximately 200-400MB depending on your GPU and whether you install optional components like CUDA support.
Administrator privileges are essential throughout this process. Ensure you have sudo access or root credentials before proceeding.
Pre-Installation System Update
Updating your system before installing NVIDIA drivers prevents compatibility issues and ensures you have the latest kernel and system libraries. Run the following command:
sudo dnf update
For a more thorough refresh that checks repository metadata, use:
sudo dnf upgrade --refresh
This process may take several minutes depending on how many packages need updating. If kernel updates are included, reboot your system before proceeding with driver installation. A fresh kernel environment ensures the driver compilation process has access to the correct kernel headers and development files.
Method 1: Installing NVIDIA Drivers via RPM Fusion (Recommended)
Step 1: Enable RPM Fusion Repositories
RPM Fusion maintains two separate repositories: free for open-source software and nonfree for proprietary software like NVIDIA drivers. Both repositories need to be enabled.
For GNOME users, you can enable third-party repositories through the graphical software center. Open GNOME Software, navigate to the menu, select Software Repositories, and enable the Third Party Repositories option.
For a more reliable terminal-based approach, run this single command:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
The $(rpm -E %fedora) portion automatically detects your Fedora version number, ensuring you get the correct repository configuration for Fedora 43. Accept the GPG keys when prompted to authenticate the repository sources.
Verify that RPM Fusion repositories are properly enabled:
dnf repolist
You should see entries for rpmfusion-free, rpmfusion-free-updates, rpmfusion-nonfree, and rpmfusion-nonfree-updates in the output.
Step 2: Install Kernel Development Tools
The NVIDIA driver is a kernel module that must be compiled for your specific kernel version. This requires kernel headers and development packages:
sudo dnf install kernel-devel kernel-headers
These packages provide the necessary framework for building external kernel modules. The akmod system will use these tools to automatically compile the NVIDIA driver whenever you update your kernel, ensuring continuous functionality.
If you’re running a custom or older kernel, make sure the kernel-devel package matches your running kernel version exactly. Check your kernel version with uname -r and install the matching development package if needed.
Step 3: Install NVIDIA Driver Package
For modern NVIDIA GPUs (GeForce 800 series and newer, including all RTX and recent GTX cards), install the akmod-nvidia package:
sudo dnf install akmod-nvidia
This command installs the automatic kernel module build system along with the NVIDIA driver itself. The package manager will automatically pull in dependencies including xorg-x11-drv-nvidia, nvidia-settings, and supporting libraries.
If you have a legacy GPU, use the appropriate driver version:
For GeForce 600/700 series cards:
sudo dnf install xorg-x11-drv-nvidia-470xx akmod-nvidia-470xx
For GeForce 400/500 series cards:
sudo dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx
Very old cards from the GeForce 8/9/200/300 series may have limited or no driver support on current Fedora releases. Check RPM Fusion’s NVIDIA guide for the oldest supported hardware.
Step 4: Install CUDA Support (Optional)
CUDA (Compute Unified Device Architecture) enables GPU-accelerated computing for applications like machine learning frameworks, video encoding, scientific computing, and cryptocurrency mining:
sudo dnf install xorg-x11-drv-nvidia-cuda
Installing CUDA support also provides the nvidia-smi monitoring utility, which displays real-time GPU statistics including temperature, utilization, power consumption, and running processes. This tool is invaluable for monitoring GPU performance and troubleshooting issues even if you don’t use CUDA applications.
For developers working with CUDA applications, you may want to install the full CUDA toolkit:
sudo dnf install cuda
This larger package includes compilers, debuggers, and development libraries for CUDA programming.
Step 5: Wait for Module Compilation
After installation, the akmod system begins compiling the NVIDIA kernel module in the background. This process typically takes 5-10 minutes depending on your system’s CPU performance.
You can monitor the compilation progress by checking if the nvidia module is available:
modinfo -F version nvidia
If this command returns a version number (like 535.129.03), the module has been successfully compiled. If it returns an error stating the module cannot be found, the compilation is still in progress.
Alternatively, watch the akmod service logs in real-time:
journalctl -fu akmods
Press Ctrl+C to exit when you see messages indicating successful module build completion.
Step 6: Reboot Your System
A reboot is mandatory to load the new NVIDIA kernel modules and disable the Nouveau driver. Run:
sudo systemctl reboot
During the first boot with NVIDIA drivers, the system may take slightly longer as it finalizes the configuration and creates initial settings files. Don’t be alarmed if you see a brief black screen or loading indicators—this is normal.
Secure Boot Configuration
Understanding Secure Boot and NVIDIA Drivers
Secure Boot is a UEFI firmware security feature that prevents unauthorized code from running during the boot process. It accomplishes this by requiring all kernel modules to be digitally signed with a trusted key.
The NVIDIA proprietary driver is a third-party kernel module that isn’t signed by Fedora or Microsoft, meaning Secure Boot will block it by default. You’ll need to either disable Secure Boot or sign the modules with your own Machine Owner Key (MOK).
Check if Secure Boot is currently enabled on your system:
mokutil --sb-state
If the output shows “SecureBoot enabled,” you need to configure MOK signing or disable Secure Boot for NVIDIA drivers to function.
Option 1: Disable Secure Boot
The simpler approach is disabling Secure Boot entirely. Restart your computer and enter the BIOS/UEFI firmware settings (usually by pressing F2, F10, Del, or Esc during boot—the exact key varies by manufacturer).
Navigate to the Security or Boot section and find the Secure Boot option. Set it to Disabled, save changes, and exit. Your system will restart normally, and the NVIDIA drivers will load without restriction.
Disabling Secure Boot is perfectly safe for most home users. However, some organizations require Secure Boot for compliance reasons, and certain Windows 11 features depend on it. If you dual-boot Windows 11, keep Secure Boot enabled and use MOK signing instead.
Option 2: Sign NVIDIA Modules for Secure Boot (Recommended)
MOK (Machine Owner Key) signing allows you to keep Secure Boot enabled while running trusted third-party kernel modules. This approach offers the best of both worlds: security and compatibility.
First, ensure the necessary signing tools are installed:
sudo dnf install kmodtool akmods mokutil openssl
Generate a machine owner key pair that will be used to sign the NVIDIA modules:
sudo kmodgenca -a
This creates a private key and certificate in /etc/pki/akmods/certs/. The kmodgenca command generates a unique key specific to your system.
Import the public key into your system’s MOK list:
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
You’ll be prompted to create a password. Choose something memorable but secure—you’ll need to enter this during the next boot. This password is temporary and only used once during MOK enrollment.
Reboot your system:
sudo systemctl reboot
During the boot process, you’ll see the MOK Manager interface (a blue screen with white text). This appears before your operating system loads. Navigate through the following steps:
- Select “Enroll MOK” from the menu
- Choose “Continue” to view the key details
- Select “Yes” to confirm enrollment
- Enter the password you created with the mokutil command
- Select “Reboot” to restart the system
After this final reboot, Secure Boot will trust kernel modules signed with your MOK, including the NVIDIA driver. The modules are automatically signed by the akmod system during compilation.
Troubleshooting MOK Enrollment Issues
If MOK Manager doesn’t appear during boot, verify that Secure Boot is actually enabled in your BIOS settings. MOK enrollment is only necessary when Secure Boot is active.
Some systems require Secure Boot to be in “Custom” or “Setup” mode rather than “Deployed” mode for MOK enrollment to work. Check your BIOS documentation if enrollment fails repeatedly.
If the NVIDIA driver still won’t load after MOK enrollment, manually trigger module signing and rebuilding:
sudo akmods --force
sudo dracut --force
Then reboot again to load the newly signed modules.
Verifying NVIDIA Driver Installation
Check Driver Version
Confirm the NVIDIA kernel module is properly installed and note its version:
modinfo -F version nvidia
This should return a version number like 535.129.03 or 545.29.06. If you see “modinfo: ERROR: Module nvidia not found,” the driver isn’t properly installed or compiled.
Verify Driver is Loaded
Check that NVIDIA kernel modules are actively loaded in memory:
lsmod | grep nvidia
You should see several entries including nvidia, nvidia_drm, nvidia_modeset, and nvidia_uvm. These modules work together to provide full GPU functionality.
Verify that the Nouveau driver is NOT loaded:
lsmod | grep nouveau
This command should return no output. If you see nouveau listed, the proprietary NVIDIA driver isn’t being used, and you need to troubleshoot the installation.
Test with nvidia-smi
The NVIDIA System Management Interface provides detailed GPU information and confirms proper driver operation:
nvidia-smi
This displays a table showing your GPU model, driver version, CUDA version, GPU temperature, power usage, memory utilization, and running processes. If you see this output, your NVIDIA driver is working correctly.
An error message like “NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver” indicates the driver isn’t loaded properly, often due to secure boot issues or compilation problems.
Check X Server Configuration
Verify that your X server is using the NVIDIA driver for rendering:
glxinfo | grep "OpenGL renderer"
The output should show your NVIDIA GPU model, such as “NVIDIA GeForce RTX 3060/PCIe/SSE2”. If you see “llvmpipe” or “NV**” (like NV137), you’re using software rendering or the Nouveau driver instead of the proprietary driver.
If glxinfo isn’t installed, add it with:
sudo dnf install glx-utils
Post-Installation: Additional Multimedia Support
Install Enhanced Multimedia Codecs
RPM Fusion provides multimedia codec packages that leverage GPU hardware acceleration for video playback and encoding. Install the core multimedia group:
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
This adds GStreamer plugins and codecs that enable GPU-accelerated video decoding. The --setop="install_weak_deps=False" flag prevents unnecessary optional dependencies from being installed.
Install additional sound and video packages:
sudo dnf groupupdate sound-and-video
These packages provide comprehensive multimedia format support, including proprietary codecs for H.264, H.265, and other formats.
Configure Video Hardware Acceleration
Modern NVIDIA drivers support both VDPAU (Video Decode and Presentation API for Unix) and VA-API (Video Acceleration API) for hardware-accelerated video playback. These technologies offload video decoding from your CPU to your GPU, reducing power consumption and enabling smooth playback of high-resolution content.
Test hardware acceleration in web browsers by playing 4K video on YouTube. In Firefox, navigate to about:support and check the “Graphics” section to confirm hardware acceleration is active. For Chrome and Chromium, visit chrome://gpu to see GPU acceleration status.
Enable hardware acceleration in Firefox by going to Settings > General > Performance and ensuring “Use hardware acceleration when available” is checked. Most browsers enable this by default when they detect compatible drivers.
Common Troubleshooting Issues
Issue 1: Black Screen After Installation
A black screen after installing NVIDIA drivers typically indicates the driver isn’t loading properly, often due to secure boot restrictions or module compilation failures.
Boot into recovery mode by holding Shift during boot to access the GRUB menu. Select an older kernel version or the recovery mode option. Once booted, check driver status with lsmod | grep nvidia and examine system logs with journalctl -b | grep nvidia.
If secure boot is blocking the driver, either disable secure boot in BIOS or complete the MOK signing process described earlier. Alternatively, temporarily boot with the Nouveau driver by adding nouveau.modeset=1 nvidia-drm.modeset=0 to your kernel parameters in GRUB.
Issue 2: Driver Not Loading After Kernel Update
Fedora frequently updates the kernel, which requires rebuilding the NVIDIA driver. The akmod system handles this automatically, but the rebuild process takes several minutes.
If you reboot immediately after a kernel update before akmod finishes rebuilding, you might boot into a system without working NVIDIA drivers. Check the akmod service status:
systemctl status akmods
Manually trigger a rebuild if necessary:
sudo akmods --force
Wait for the process to complete, then reboot. To avoid this issue in the future, wait 5-10 minutes after kernel updates before rebooting to give akmod time to rebuild modules.
Issue 3: nvidia-smi Shows “Driver Not Loaded”
This error appears when the nvidia-smi utility is installed but can’t communicate with the kernel module. Verify the CUDA package is installed:
sudo dnf install xorg-x11-drv-nvidia-cuda
Check for conflicting drivers or modules:
lsmod | grep nouveau
If Nouveau is loaded alongside NVIDIA modules, you have a conflict. Blacklist Nouveau by creating /etc/modprobe.d/blacklist-nouveau.conf with these contents:
blacklist nouveau
options nouveau modeset=0
Then rebuild the initial ramdisk:
sudo dracut --force
Reboot to apply changes.
Issue 4: Performance Issues or Screen Tearing
Screen tearing occurs when your GPU outputs frames faster than your monitor’s refresh rate, creating horizontal artifacts during motion. Install the NVIDIA Settings tool:
sudo dnf install nvidia-settings
Launch nvidia-settings from your application menu or terminal. Navigate to “X Server Display Configuration,” select your display, and click “Advanced.” Enable “Force Full Composition Pipeline” and click “Apply”.
To make this setting permanent, click “Save to X Configuration File” and save it to /etc/X11/xorg.conf.d/nvidia.conf (you may need to create this directory first).
Wayland users may experience better performance by switching to an X11 session. Log out, click the gear icon on the login screen, and select “GNOME on Xorg” or “Plasma (X11)” depending on your desktop environment.
Issue 5: Secure Boot MOK Enrollment Fails
MOK enrollment failures often stem from BIOS settings. Enter your BIOS setup and verify Secure Boot is set to “Custom” or “Setup” mode rather than “Deployed” mode. Some manufacturers call this “Standard” mode.
If enrollment continues failing, regenerate your MOK keys:
sudo rm -rf /etc/pki/akmods/certs/*
sudo kmodgenca -a
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
Create a new password and try the enrollment process again during the next boot.
Check if your BIOS has pending firmware updates. Some older UEFI implementations have bugs that prevent proper MOK enrollment, fixed in later BIOS versions.
Issue 6: Flatpak Applications Not Using GPU
Flatpak applications run in sandboxed environments with limited hardware access. Update the Flatpak NVIDIA runtime to ensure GPU access:
flatpak update
Specifically update the NVIDIA runtime:
flatpak install flathub org.freedesktop.Platform.GL.nvidia
Verify Flatpak applications have the necessary permissions to access the GPU device. Most well-packaged Flatpaks automatically request GPU access, but you can manually grant it using Flatseal or by running:
flatpak override --user --filesystem=/sys/devices --device=all com.example.Application
Replace com.example.Application with your actual Flatpak application ID.
Method 2: Manual Installation from NVIDIA Website (Alternative)
NVIDIA provides .run installer files directly from their website for manual installation. This method is NOT recommended for most Fedora users because it bypasses package management, preventing automatic updates and potentially breaking system upgrades.
Consider manual installation only if you need bleeding-edge driver versions not yet available in RPM Fusion, or if you’re testing beta drivers. Be aware that manually installed drivers require manual updates and can conflict with system packages.
The manual installation process requires disabling Nouveau, installing build dependencies, downloading the .run file from NVIDIA’s website, and running the installer in a text console environment. You’ll need to manually reinstall the driver after every kernel update, making this approach significantly more maintenance-intensive than RPM Fusion.
If you absolutely must use this method, back up your system first and be prepared to troubleshoot package conflicts and broken dependencies.
Performance Optimization Tips
Monitor your GPU’s real-time performance using nvidia-smi:
watch -n 1 nvidia-smi
This updates the display every second, showing temperature, fan speed, power consumption, and GPU utilization. Understanding these metrics helps identify performance bottlenecks and thermal issues.
The NVIDIA Settings application provides overclocking capabilities through the PowerMizer interface. Access it by running nvidia-settings and navigating to the PowerMizer section. You can adjust power management modes from “Adaptive” (default) to “Prefer Maximum Performance” for consistently high clock speeds, though this increases power consumption and heat.
For laptops with hybrid graphics (integrated Intel/AMD GPU plus discrete NVIDIA GPU), configure PRIME render offload for better battery life. This technology allows the system to use the integrated GPU for basic tasks while only activating the NVIDIA GPU for demanding applications.
Set up render offload by adding these environment variables to launch GPU-intensive applications:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia application-name
For example, to launch a game with the NVIDIA GPU:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia steam
Maintaining NVIDIA Drivers on Fedora 43
One of the key advantages of the RPM Fusion installation method is automatic maintenance through Fedora’s package management system. When NVIDIA releases new drivers or security updates, they appear in your regular system updates.
Update all packages, including NVIDIA drivers:
sudo dnf upgrade
The akmod system automatically rebuilds the driver whenever you install a kernel update, ensuring seamless compatibility without manual intervention. This happens in the background after updates are applied.
When upgrading between Fedora versions (for example, from Fedora 43 to Fedora 44), the NVIDIA drivers may need special attention. Before upgrading, ensure you’re running the latest driver version available for your current Fedora release. After the distribution upgrade completes, update the RPM Fusion repositories for the new Fedora version and run sudo dnf upgrade to get compatible driver packages.
Back up your MOK signing keys if you configured secure boot signing. The keys are stored in /etc/pki/akmods/certs/ and should be preserved during system maintenance. If you reinstall Fedora or migrate to new hardware, having these keys backed up allows you to quickly restore your secure boot configuration.
Congratulations! You have successfully installed NVIDIA Driver. Thanks for using this tutorial for installing the NVIDIA Drivers on your Fedora 43 Linux system. For additional help or useful information, we recommend you check the official NVIDIA website.