Fedora 39 : Nvidia kernel module missing, Falling back to nouveau (ASUS Laptop, RTX 4060)

I am using Fedora 39 on a TUF A15 laptop with RTX 4060.

I have used the proprietary NVIDIA driver from RPM Fusion for a long time and it worked great. I keep the system updated with sudo dnf upgrade --refresh.

But a few days ago I started getting the message “NVIDIA Kernel module missing, failing back to nouveau” at boot time. I tried reinstalling the driver dnf packages and rebuilding the kernel module using sudo akmods --rebuild --force --kernels $(uname -r) without success. The rebuild process seems successful according to the logs in /var/cache/akmods/. I have also tried to run sudo dracut --force but that didn’t change anything. I tried reinstalling the driver multiple times, too.

The NVIDIA kernel module seems to be present (?), I tried running find /lib/modules/$(uname -r) -type f -name '*.ko*' | grep "nvidia" and it returned this:

/lib/modules/6.6.14-200.fc39.x86_64/kernel/drivers/hid/hid-nvidia-shield.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/kernel/drivers/i2c/busses/i2c-nvidia-gpu.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/kernel/drivers/net/ethernet/nvidia/forcedeth.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/kernel/drivers/platform/x86/nvidia-wmi-ec-backlight.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/kernel/drivers/usb/typec/altmodes/typec_nvidia.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/extra/nvidia/nvidia-drm.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/extra/nvidia/nvidia-modeset.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/extra/nvidia/nvidia-peermem.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/extra/nvidia/nvidia-uvm.ko.xz
/lib/modules/6.6.14-200.fc39.x86_64/extra/nvidia/nvidia.ko.xz

I followed quite a lot of problem solving discussions but none of them helped me sadly.

  • Secure Boot is disabled.
  • Installation partition is encrypted with Cryptsetup (from the Fedora installer)
  • cat /proc/cmdline returned BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.6.14-200.fc39.x86_64 root=UUID=some_uuid ro rootflags=subvol=root rd.luks.uuid=some_other_uuid rhgb quiet nvidia-drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau
  • modinfo -F version nvidia returned 545.29.06
  • Installed DNF NVIDIA packages
  • uname --kernel-release returned 6.6.14-200.fc39.x86_64

Nouveau doesn’t even work, graphic card can’t be used by applications/games and external monitors. (I need the proprietary driver anyways for CUDA/NVENC)

Any help would be welcome, I really miss my graphic card :sweat_smile:

The GPU works fine with my Windows 11 dual-boot, so not a hardware problem.

Ajout de gnome

You seem to have done all the right things to make sure that you have the drivers for your kernel.

Its worth double checking that secure book is disabled:

$ mokutil --sb-state
SecureBoot disabled

Next thing to do is be able to modprobe the nvidia drivers manually so that you can see the error messages.

To do this you need to stop the fallback service running on boot.

systemctl mask nvidia-fallback.service

Now you can reboot and login to the system. What happens when you do this?

modprobe nvidia

One last thought its been a problem on upgrade that depmod would need running.
Does that make the modprobe work?

In my case it says “Platform is in Setup Mode”, IDK what is implies

$ mokutil --sb-state
SecureBoot disabled
Platform is in Setup Mode

I will reboot now

I get the following:

$ modprobe nvidia
modprobe: ERROR: libkmod/libkmod-module.c:895 kmod_module_insert_module() could not find module by name='off'
modprobe: ERROR: could not insert 'off': Unknown symbol in module, or unknown parameter (see dmesg)

Here is my full dmesg:

There have been longstanding problems with alias nvidia off in configuration files. For examples, see this similar issue with a solution.

I noticed alias nvidia off is present in supergfxd.conf in my /etc/modprobe.d folder.

supergfx is developed by ASUS-Linux: asus-linux / supergfxctl · GitLab

I am quite surprised if it cause a problem, since managing the GPU in hybrid laptops is basically its reason to exist.

The config file is autogenerated and contains the following:

# Automatically generated by supergfxd
blacklist nouveau
alias nouveau off
blacklist nvidia_drm
blacklist nvidia_uvm
blacklist nvidia_modeset
blacklist nvidia
alias nvidia off

options nvidia-drm modeset=1

I reinstalled supergfx and the config file updated without alias nvidia off.

Now it works :partying_face:

Still absolutely no idea what caused the problem.

Probably a change in the way that file was created by supergfx in that the file did not get updated when the system was updated but it did get recreated when you did the reinstall of supergfx. Maybe a bug fix?

1 Like

It was the alias nvidia off that caused the problem.

And the error from modproble nvidia provided an error message that could be web searched for. As others have explained this is a known issue with modprobe configuration.