Remove rpmfusion nvidia driver package

How in the heck can I remove the rpmfusion nvidia drivers completely from Fedora 42, and resort back to default display drivers? I have tried all dnf remove statements that I found.

Hi @bg3075 welcome on Fedora
rpm -qa | grep firmware | sort
you can search the firmware in your system and very carefully remove the nvidia drivers.

This shows the firmware (which would be needed even when using nouveau and should not be removed on any system with Nvidia hardware), not the RPMFusion drivers.

This post (specifically the linked answer from @computersavvy) shows a way to do it:

One thing that has changed since that post was written in 2023 is that the kernel now contains a stub of the “nova_core” open source driver which in future will replace nouveau, but is not fully functional yet.

If I understand correctly, nova_core should remain blacklisted in order for nouveau to work correctly.

So the procedure you could follow is:

  1. As per the linked post, remove all the relevant RPMFusion packages with:
sudo dnf remove '*nvidia*' --exclude nvidia-gpu-firmware
  1. Instead of directly editing /etc/default/grub, run this command to enable nouveau while keeping nova_core disabled:
sudo grubby --update-kernel=ALL --args='rd.driver.blacklist=nova_core modprobe.blacklist=nova_core'
  1. Reboot.
1 Like

You missed one thing for removing the old command line entries before adding the new ones

  1. cat /proc/cmdline to see exactly what options are in that command line
  2. sudo grubby --update-kernel=ALL --remove-args=' <kernel args shown in step 1 that should be removed here> '
    Those args may include rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core and possibly more.

Follow that with the new args to be inserted using your command in step 2 above.

  1. sudo grubby --update-kernel=ALL --args=' rd.driver.blacklist=nova_core modprobe.blacklist=nova_core '
  2. reboot

In my testing since the post you linked I have determined that grubby does several things that were manually done by my instructions in that link related to f37.

  1. It updates /etc/kernel/cmdline
  2. it updates /etc/grub/default
  3. it updates the command line in the files located in /boot/loader/entries

(1 & 3 make the changes effective immediately. 2 makes the changes effective for future kernel/grub updates)
The reboot then uses the changes made for the kernel config during boot.

1 Like

I think grubby will take care of this for rd.driver.blacklist and modprobe.blacklist - the man page says:

If an argument already exists the new value replaces the old values.

But of course there’s no problem doing it the way you suggest with the explicit removal first. That would also give an opportunity to check if there is any other nvidia-related arg in the command line for some reason.

1 Like

I missed that in the text of the man page. Thanks for pointing it out.