So it seems like every time there’s a kernel update in Ubuntu 20.04, I can no longer boot to the desktop due to NVIDIA drivers. I’m just curious if someone can point me in the right direction or possibly explain what the process to fix this is for the next update? I’ve been doing some digging and it seems like booting into console mode, purging the nvidia drivers and then using ubuntu-drivers autoinstall command should work, but I’m curious if this is the correct method, or if this should be happening at all? I’m running Ubuntu 20.04 LTS on a laptop with a NVIDIA GTX 1650 Max-Q.
Hello @generix. You might remember me from a previous thread you were helping me with last month. I just re-installed Ubuntu 20.04 this morning and chose the 510 drivers during the installation. Everything went smoothly and I’m currently using the NVIDIA 510 drivers with the 5.13.35-generic kernel. My question is this, how can I install the dkms drivers from this state? I made a post on askubuntu listing things I tried that failed before having to re install this morning (see below):
I currently have 5.13.35-generic kernel on hold so my install won’t be broken by a future update, but I’m not sure what the process is to install the dkms drivers. DKMS is not installed at all on my system at the moment, but I’d like to replace the 510 non-dkms drivers with the 510 dkms drivers. Thanks again for your help!
@generix That’s so strange, I mentioned that I installed the 510 drivers during the Ubuntu installation with the option to install proprietary drivers but my output of dkms status is:
mauro@prestige:~$ dkms status
Command ‘dkms’ not found, but can be installed with:
I installed DKMS and it there’s no output at all if I run dkms status command. These are all the NVIDIA packages I have installed:
mauro@prestige:~$ dpkg --list | grep nvidia
ii libnvidia-cfg1-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-common-510 510.47.03-0ubuntu0.20.04.1 all Shared files used by the NVIDIA libraries
ii libnvidia-compute-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA libcompute package
ii libnvidia-compute-510:i386 510.47.03-0ubuntu0.20.04.1 i386 NVIDIA libcompute package
ii libnvidia-decode-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA Video Decoding runtime libraries
ii libnvidia-decode-510:i386 510.47.03-0ubuntu0.20.04.1 i386 NVIDIA Video Decoding runtime libraries
ii libnvidia-encode-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 NVENC Video Encoding runtime library
ii libnvidia-encode-510:i386 510.47.03-0ubuntu0.20.04.1 i386 NVENC Video Encoding runtime library
ii libnvidia-extra-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 Extra libraries for the NVIDIA driver
ii libnvidia-fbc1-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-fbc1-510:i386 510.47.03-0ubuntu0.20.04.1 i386 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-gl-510:amd64 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libnvidia-gl-510:i386 510.47.03-0ubuntu0.20.04.1 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii linux-modules-nvidia-510-5.13.0-30-generic 5.13.0-30.33~20.04.1 amd64 Linux kernel nvidia modules for version 5.13.0-30
hi linux-modules-nvidia-510-5.13.0-35-generic 5.13.0-35.40~20.04.1 amd64 Linux kernel nvidia modules for version 5.13.0-35
ii linux-modules-nvidia-510-generic-hwe-20.04 5.13.0-35.40~20.04.1 amd64 Extra drivers for nvidia-510 for the generic-hwe-20.04 flavour
ii linux-objects-nvidia-510-5.13.0-30-generic 5.13.0-30.33~20.04.1 amd64 Linux kernel nvidia modules for version 5.13.0-30 (objects)
hi linux-objects-nvidia-510-5.13.0-35-generic 5.13.0-35.40~20.04.1 amd64 Linux kernel nvidia modules for version 5.13.0-35 (objects)
ii linux-signatures-nvidia-5.13.0-30-generic 5.13.0-30.33~20.04.1 amd64 Linux kernel signatures for nvidia modules for version 5.13.0-30-generic
hi linux-signatures-nvidia-5.13.0-35-generic 5.13.0-35.40~20.04.1 amd64 Linux kernel signatures for nvidia modules for version 5.13.0-35-generic
ii nvidia-compute-utils-510 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA compute utilities
ii nvidia-driver-510 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA driver metapackage
ii nvidia-kernel-common-510 510.47.03-0ubuntu0.20.04.1 amd64 Shared files used with the kernel module
ii nvidia-kernel-source-510 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA kernel source package
ii nvidia-prime 0.8.16~0.20.04.1 all Tools to enable NVIDIA's Prime
ii nvidia-settings 470.57.01-0ubuntu0.20.04.3 amd64 Tool for configuring the NVIDIA graphics driver
ii nvidia-utils-510 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA driver support binaries
ii screen-resolution-extra 0.18build1 all Extension for the nvidia-settings control panel
ii xserver-xorg-video-nvidia-510 510.47.03-0ubuntu0.20.04.1 amd64 NVIDIA binary Xorg driver
It shouldn’t since dkms gets pulled in by installing the nvidia drivers for the first time. At least it should, I don’t know why this isn’t the case with your install. Maybe just the 510 driver package is broken, did you also try to install driver v470?
@generix Nope, I need this laptop for school and I’ve re-installed Ubuntu twice in the last week due to kernel updates breaking my NVIDIA drivers and not knowing how to fix this. I’m going to have to hold off on updates and either figure this out when I have time, or, unfortuntely, go back to Windows as much as I don’t want to. I just did an apt upgrade and there’s already a 37-generic kernel ready to be installed, I guess i’ll just have to ignore it for now.
I re-checked ubuntu packaging and seems I missed that tey now switched to using pre-compiled, signed modules instead of dkms when using the third party software option or drivers autoinstall. So the modules are now in the packages
@generix Interesting, I’ll have to look into this when I have the time. For now, I’m holding off on updates. I appreciate your help and knowledge, seriously, you’ve been a great help!
I was having a similar issue on my debian machine. Whenever the kernel is updated, the nvidia driver fails to load. I created a script that automates the process of downloading the latest driver and installing it afterwards. You can find it here: GitHub - BdN3504/nvidia-driver-update
We had this problem for a long time on Ubuntu with drivers installed via CUDA (.deb package installation). The theory is that after a kernel upgrade the new kernel is not active before the system is rebooted. To recompile the nvidia modules (e.g. nvidia.ko) the new kernel needs to be active so this hasn’t been done as part of the upgrade process. So when one reboots after a kernel upgrade, the nvidia module is not able to communicate with the kernel. The solution is to simply upgrade the “linux-headers-VERSION” which will automatically trigger a recompile of the nvidia kernels.
E.g.
sudo apt -y install linux-headers-$(uname -r)
The drivers should start working again even without a reboot.
In my case, when I ran dkms status, it returned an error message that some packages’ dkms.conf were not found.
I simply cd /var/lib/dkms/ then removed unused and broken packages.
I ran dkms status again, it found installed packages.
Finally, I sudo dpkg -i ./linux-*.deb to install new kernel packages again, and it re-compiled the NVIDIA modules successfully.
After a reboot, everything works fine.
Cheers!
this and @generix’s dkms status is what helped. I knew that it was supposed to automatically happen, but the trigger isn’t just installing a new kernel, you need to install the new headers, which are not a requirement.
It depends, Ubuntu now also provides precompiled, signed nvidia modules for the standard kernel which don’t require dkms and kernel headers but the dkms based packages are also still there. Checking the output of dpkg -l |grep nvidia for linux-modules-nvidia-<driver version>-<kernel version> will tell.