GPU is already bound to Nouveau (after Nvidia worked fine w/ F41 + secureboot)

So about a month ago, I did a fresh install of Fedora 41 (AFTER it was a production release), setup akmods for secureboot with a Nvidia Geforce 3070, and everything worked PERFECTLY (nvidia x server settings detected the GPU and telemetry etc OK, and confirmed secureboot was indeed enabled in user mode).

After a few weeks of running “dnf upgrade” daily, the nvidia driver just stopped loading (literally all I did was dnf upgrade, no tweaks, just using Cinnamon Desktop for daily work tasks etc).

Other important notes…

I enabled a LUKS encrypted installation in anaconda during setup (on a dedicated NVME drive [NO Win11 dual boot, just Fedora 41]).

I enabled rpmfusion repos, and installed nvidia via CLI with:

sudo dnf install -y --skip-broken --skip-unavailable akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-libs xorg-x11-drv-nvidia-libs.i686
     

I DISABLED splash boot screen (to view startup / shutdown verbosely) in:
/etc/default/grub

I installed via my automated script (on github):

FYI, I can file the bugzilla report, IF we can confirm this is a bug?

“sudo dmesg” gives me this output, saying Nouveau is already loaded, so it cannot load the nvidia drivers (it does NOT matter if I DISABLE SECUREBOOT, it’s still the same message):

[  705.011340] NVRM: No NVIDIA devices probed.
[  705.011570] nvidia-nvlink: Unregistered Nvlink Core, major device number 510
[  706.696425] nvidia-nvlink: Nvlink Core is being initialized, major device number 510
[  706.696437] NVRM: GPU 0000:07:00.0 is already bound to nouveau.
[  706.697971] NVRM: The NVIDIA probe routine was not called for 1 device(s).
[  706.697974] NVRM: This can occur when another driver was loaded and 
               NVRM: obtained ownership of the NVIDIA device(s).
[  706.697976] NVRM: Try unloading the conflicting kernel module (and/or
               NVRM: reconfigure your kernel without the conflicting
               NVRM: driver(s)), then try loading the NVIDIA kernel module
               NVRM: again.
[  706.697979] NVRM: No NVIDIA devices probed.
[  706.698257] nvidia-nvlink: Unregistered Nvlink Core, major device number 510

Kinda busy doing office work on the system RN, but am going to try TEMPORARILY make sure “rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1” exists properly in the kernel param in grub at boot…just to initiate some troubleshooting (when I have time). Will report results here after.

Starting to wonder if my automated install script (GRUB function) may have overwritten graphics driver kernel params, IF I ran it AFTER installation (debugging it). :grimacing:

To me it seems possible that the update included the kernel and it may have been that a quick reboot interfered with a proper build of the nvidia drivers.

Please try sudo akmods --rebuild --force and after that completes do a reboot.

Simple to do.
cat /proc/cmdline
cat /etc/kernel/cmdline
cat /etc/default/grub
should all show those values.

If those options do not exist then nouveau will load before the kernel tries to load nvidia.

Yeah, I tried akmods forced rebuild (and waited 15 minutes) a few days ago, and it didn’t help. Will check the files you mentioned in your second response, thank for pointing me in that direction. My auto-installer blanks out the grub config where you have “quiet” etc that shows the Fedora logo at boot (and instead shows verbose startup / shutdown). I was still fleshing out the automation after the system install, and think I wiped the graphics parameters out. Will boot the machine now, and take a look at those files.

Yeah, it’s missing from all those files. I presume I just update /etc/default/grub GRUB_CMDLINE_LINUX param to the below value, and then run: sudo grub2-mkconfig -o /etc/grub2.cfg?

GRUB_CMDLINE_LINUX="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1"

One command will handle all that.
sudo grubby --update-kernel=ALL --args="rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1"

Then reboot for it to take effect

1 Like

Thanks so much for the help, that worked perfectly. :slight_smile:

I’m NOT seeing /etc/default/grub updated though? Will this be ok for when new kernels come out, or should I add it manually to the GRUB_CMDLINE_LINUX param? cat output is:

taoteh1221@taoteh1221-desk-asus-lin:~$ cat /proc/cmdline
BOOT_IMAGE=(hd2,gpt2)/vmlinuz-6.12.6-200.fc41.x86_64 root=UUID=fce6c371-5752-4bd5-bf2f-817aadbe7e4f ro rootflags=subvol=root rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1
taoteh1221@taoteh1221-desk-asus-lin:~$ cat /etc/kernel/cmdline
root=UUID=fce6c371-5752-4bd5-bf2f-817aadbe7e4f ro rootflags=subvol=root rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1
taoteh1221@taoteh1221-desk-asus-lin:~$ cat /etc/default/grub
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_DISABLE_OS_PROBER=true
taoteh1221@taoteh1221-desk-asus-lin:~$

Last time I tested grubby it seemed to update /etc/default/grub as well. If it did not do that for you then I would suggest adding it manually into the GRUB_CMDLINE_LINUX options. Updating grub afterward with grub2-mkconfig is optional since that will happen by default with the next kernel update.

1 Like

Cool, thanks so much for the help. I just switched over to Fedora a few months ago, after 10+ years on Ubuntu…still getting lost easily. Glad it was just a bug in my script, will have to fix that. Do you know if grubby has a command for verbose startup / shutdown, so I can simplify automation? I’ll have to check out the grubby docs.

Certainly.
Grubby can remove the default rhgb quiet options the same as adding options.
sudo grubby --update-kernel=ALL --remove-args="rhgb quiet" should do that for you very easily.

1 Like

Sweet! :+1:

BTW
I just tested with grubby again, and confirmed that it does update the /etc/default/grub file both when adding and when removing args. It makes the changes in all the appropriate files; /etc/kernel/cmdline, /etc/default/grub and /boot/loader/entries/*.conf

1 Like

Yep, /etc/default/grub updated to remove "rhgb quiet" on my setup too. Added to my script with attribution to you, thanks again! :slight_smile:

1 Like