- Package:
- nvidia-open-kernel-dkms
- Source:
- nvidia-open-kernel-dkms
- Submitter:
- Marc Glisse
- Date:
- 2025-07-19 22:57:03 UTC
- Severity:
- normal
Dear Maintainer, I have 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106GLM [Quadro RTX 3000 Mobile / Max-Q] [10de:1f36] (rev a1) and read that nvidia recommends using the "open" driver for this GPU, even if the traditional one is working fine (I have been using it on this laptop for years). I wanted to try, so apt install nvidia-open-kernel-dkms and it compiles the modules just fine. One reboot later, I notice that linux is still using the old module. It seems redundant, so apt purge nvidia-kernel-dkms happily removes the old module. (note that I did not find any instructions on https://wiki.debian.org/NvidiaGraphicsDrivers or elsewhere, so I am guessing at the expected steps) I reboot again... and X fails to start, and the computer goes into an infinite loop trying again and again to start gdm or Xorg. That's not completely unexpected, I should be able to reboot in rescue mode, reinstall nvidia-kernel-dkms (which I downloaded beforehand just in case), and be safe. Except that... I cannot shut down the computer. Even pressing the power button for 1 minute has no effect. This is a Dell Precision 7550, and apparently in that case the only option is to unscrew and remove the battery. By the time I find the right screwdriver (1 hour), the battery has become empty, the computer has shut down, and I can proceed to fix the problem, so I am happily using my computer again. Ok, more information about the boot that failed. Apparently something really wanted to load the nvidia modules and not the nvidia-open ones (unless there is a missing redirection?). Aug 24 15:02:40 hippo (udev-worker)[869]: Error running install command 'modprobe -i nvidia-current ' for module nvidia: retcode 1 Aug 24 15:02:50 hippo systemd-modules-load[767]: Inserted module 'msr' Aug 24 15:02:50 hippo systemd-modules-load[1045]: modprobe: FATAL: Module nvidia-current not found in directory /lib/modules/6.10.4-amd64 Aug 24 15:02:50 hippo systemd-modules-load[1043]: modprobe: ERROR: ../libkmod/libkmod-module.c:1086 command_do() Error running install command 'modprobe -i nvidia-current ' for module nvidia: re> Aug 24 15:02:50 hippo systemd-modules-load[1043]: modprobe: ERROR: could not insert 'nvidia': Invalid argument Aug 24 15:02:50 hippo systemd-modules-load[1046]: modprobe: FATAL: Module nvidia-current-modeset not found in directory /lib/modules/6.10.4-amd64 Aug 24 15:02:50 hippo systemd-modules-load[1041]: modprobe: ERROR: ../libkmod/libkmod-module.c:1086 command_do() Error running install command 'modprobe nvidia ; modprobe -i nvidia-current-modes> Aug 24 15:02:50 hippo systemd-modules-load[1041]: modprobe: ERROR: could not insert 'nvidia_modeset': Invalid argument Aug 24 15:02:50 hippo systemd-modules-load[1047]: modprobe: FATAL: Module nvidia-current-drm not found in directory /lib/modules/6.10.4-amd64 Aug 24 15:02:50 hippo systemd-modules-load[767]: Error running install command 'modprobe nvidia-modeset ; modprobe -i nvidia-current-drm ' for module nvidia_drm: retcode 1 Aug 24 15:02:50 hippo systemd-modules-load[767]: Failed to insert module 'nvidia_drm': Invalid argument Aug 24 15:02:50 hippo systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE Aug 24 15:02:50 hippo systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'. Aug 24 15:02:50 hippo systemd[1]: Failed to start systemd-modules-load.service - Load Kernel Modules. After a grep in /etc, one suspect is the package nvidia-kernel-support which comes with /etc/nvidia/current/nvidia-options.conf, I probably should have purged that package at the same time as nvidia-kernel-dkms. I am not very eager to try it again though. Trying to sum up things that could have been better: 1) Instructions on using the open driver in Debian: when (nvidia-detect?), how. 2) Dependencies/conflicts or scripts that don't let me get into an unbootable situation so easily. 3) (this one is clearly on Dell) a working power button that allows to force a shutdown without a screwdriver.
Andreas, Marc, I had the same problem when I've moved to the Nvidia open driver and spend some time to understand the problem. More exactly the problem come from the -support packages nvidia-kernel-support and nvidia-open-kernel-support Both try to modprobe is own kernel module and this freeze the computer. To fix this issue nvidia-open-kernel-support should Conflicts with nvidia-open-kernel-support Christian
Does it really try to load both? (Which shouldn't be possible for 6.15
anyway, since you cannot built that currently.) Or just the wrong?
If both nvidia-kernel-dkms and nvidia-open-kernel-dkms are installed,
nvidia-kernel-dkms takes precedence (this will likely change in the
future in favor of the open module). You can switch between them at
runtime (and without uninstalling any package) by running
update-glx --config nvidia
and (not) selecting the alternative with -open in its name.
This e.g. updates the alternatives to the config files which select the
actual module file names that get loaded when someone does
'modprobe nvidia' etc.
Ideally reboot after update-glx.
At least that's the theory how this was designed to work. I don't (want
to) have the hardware to actually test it ;-) But I'd like to get
confirmation whether the two dkms packages can co-exist and switched at
runtime as planned.
Where would you have expected documentation about this additional step
needed?
(The idea behind co-installability is to support live-systems to come
with as many drivers as possible installed and have some hardware
detection script to select the driver to actually use during boot.
I don't know if anyone ever implemented such a script.)
Andreas
The instructions at https://wiki.debian.org/NvidiaGraphicsDrivers may have improved since last year, but they do not seem to mention update-glx at all (there is just one mention of glx-alternative-nvidia in the context of nouveau). Maybe they could also warn about the danger of having a -support package installed without the corresponding driver (especially if the dpkg alternative happens to point to that one), which can easily happen when removing one flavor of the driver. (I had also looked in /usr/share/doc/nvidia-open-kernel-dkms and /usr/share/doc/nvidia-open-kernel-support but there was no README.Debian) Maybe installing one flavor of the driver could print a very visible message advertising update-glx if the new flavor is not the selected alternative? I don't know if the boot scripts could fail more gracefully if they think they should load one flavor of the driver but that is not present on the system. It would have been nice if removing the driver had automatically switched the alternative choice somehow, possibly by automatically removing the -support package, but the current behavior seems to be by design so people can install the driver manually and still use the -support package. (those are random suggestions to see if one makes sense to you...)
* I already have nvidia installed * I install nvidia-open -> things still work * I use update-glx to select the open version -> things still work It is surprisingly difficult to find out which version is currently loaded, but I'll interpret "loading NVIDIA UNIX Open Kernel Module" from dmesg as a sign that I am indeed using the open version now. So I can (weakly) confirm what you said. (I didn't try the last step which would be removing nvidia-kernel-support)
So when I installed the nvidia-driver package with nvidia-kernel-dkms, everything worked fine but when I switched to nvidia-open-kernel-dkms, Debian 12 wouldn't boot and it would stay on the screen with all the "[ok]"s on it without doing anything, I pressed ctrl+alt+del on that screen to open the terminal and looked at the logs with dmesg with grep "nvidia" and compared that to the logs of a working system with nvidia-kernel-dkms and I noticed these lines weren't there on the working system logs: [ 17.039871] NVRM: Open nvidia.ko is only ready for use on Data Center GPUs. [ 17.039874] NVRM: To force use of Open nvidia.ko on other GPUs, see the [ 17.039874] NVRM: ‘OpenRmEnableUnsupportedGpus’ kernel module parameter described [ 17.039875] NVRM: in the README. I then typed this command I found online: echo "options nvidia NVreg_OpenRmEnableUnsupportedGpus=1" | sudo tee /etc/modprobe.d/nvidia-openpm.conf to force the use of open nvidia.ko on other GPUs than Data Center ones and rebooted the system and everything worked flawlessly. If I believe this line of log: [ 17.039871] NVRM: Open nvidia.ko is only ready for use on Data Center GPUs. The nvidia-open-kernel-dkms package present in debian 12 is still in alpha and is not to be used for now. Maybe this page still holds true: https://us.download.nvidia.com/XFree86/Linux-x86_64/515.43.04/README/kernel_open.html If the nvidia-open-kernel-dkms package is effectively not ready to be used on debian 12, I believe we should modify what this page https://wiki.debian.org/NvidiaGraphicsDrivers says about the "open flavour" of nvidia-kernel-dkms. If you find there is a bit too much pride in this message you're probably right 😅! I'm a linux beginner (little experience on mint) and so I'm pretty proud of myself for finding out what I just explained cause it's my first time debugging a linux related issue 🙃!