In this guide, I am going to show how to install NVIDIA drivers in Fedora Silverblue 35. This guide works with any version of Fedora Silverblue released after January 2020.
A few days ago, I decided to switch from Fedora Workstation to Fedora Silverblue and see what is with all the buzz around it and if it will add any benefits to my current workflow.
Fedora Silverblue is designed to be an immutable, extremely stable, and reliable desktop operating system by restricting access to the root system making it harder for the user to break the OS.
Since Fedora Silverblue utilizes the OSTree (a git-like model that combines a shared library and suite of command-line tools for downloading and committing bootable filesystem trees), I thought installing NVIDIA drivers on such a system would be a daunting, difficult task.
Well, I was pleasantly surprised to find out that installing the NVIDIA drivers in Fedora Silverblue took less than a couple of minutes and was arguably easier to install than on Fedora Workstation – I kid you not!
NOTE: a reboot is required every time you make a change at the file system level on Silverblue.
Without further ado, let’s get NVIDIA in Fedora Silverblue up and running.
Step 1: Switch to root user
su -
FIX: If the above command returns a “user is not in the sudoers file” error, you most likely did not check the box to enable your user’s administrative privileges during the OS installation. Here is how to fix user is not in the sudoers file error in Linux.
Step 2: Update The System
Check if your system is up to date by running the following command in the terminal:
rpm-ostree upgrade --check
If there are any updates available, go ahead and install them with the command:
rpm-ostree upgrade
Once the updates are installed, reboot your machine to activate the changes in your system.
systemctl reboot
Step 3: Enable RPM Fusion
To enable the Fedora Silverblue RPM fusion on your system, execute the following command in your terminal [it is one command]:
rpm-ostree 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
Since we made changes at the file system level, we need to reboot the system again.
systemctl reboot
Step 3: Install NVIDIA Drivers in Fedora Silverblue
Finally, it is time to install the latest NVIDIA drivers in Fedora Silverblue. To do so, execute the following command in the terminal:
rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia
If you need CUDA support in Fedora Silverblue for your NVIDIA driver, run the following command:
rpm-ostree install xorg-x11-drv-nvidia-cuda
Once more, reboot the system to activate the changes.
systemctl reboot
Step 4: Blacklist nouveau driver [optional]
On my system [2x NVIDIA GTX 1070 GPUs] this step is not required. But since 99% of the NVIDIA issues on Linux are caused by the nouveau driver, here is how to blacklist it:
rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=1
As you probably know already, you must reboot your system for the changes to take effect:
systemctl reboot
Wrapping up
NVIDIA has been always a pain to install in Linux, aside from the Linux distributions that come with NVIDIA support out of the box. However, using the steps above, it literally takes five minutes or less to install NVIDIA in Fedora Silverblue.
Besides having to reboot your system every time you make a change at the OS level (not necessarily a bad thing), Fedora Silverblue is definitively one of the most stable, reliant, and secure Linux distributions I’ve tried in a long time.
And with NVIDIA working great in Silverblue, there is really nothing to complain about. As usual, the Fedora team did an amazing job!
Hope you found this guide useful and would appreciate it if you could share it around. But most importantly, stay safe out there!
