My system installed a bunch of updates today and now the NVIDIA driver is broken - system can’t boot into graphical mode, I get a black screen and blinking cursor.
Booting into single user mode, I see the following error in dmesg:
nvidia_modeset: version magic '6.6.10-1-MANJARO SMP preempt mod_unload ' should be '6.6.12-1-MANJARO SMP preempt mod_unload '
My kernel version - post-update - is indeed 6.6.12, and there was an nvidia driver update installed today.
I tried running pamac upgrade and pacman -Suuy and neither found any updates.
That should be fine; however you may need to refresh your mirrors as I mentioned.
Something’s not right in your Xorg log:
[ 394.257] (II) LoadModule: "glxserver_nvidia"
[ 394.257] (WW) Warning, couldn't open module glxserver_nvidia
[ 394.257] (EE) NVIDIA: Failed to load module "glxserver_nvidia" (module does not exist, 0)
[ 394.257] (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
[ 394.257] (EE) NVIDIA(0): log file that the GLX module has been loaded in your X
[ 394.257] (EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If
[ 394.257] (EE) NVIDIA(0): you continue to encounter problems, Please try
[ 394.257] (EE) NVIDIA(0): reinstalling the NVIDIA driver.
[ 394.257] (II) NVIDIA: The X server does not support PRIME Render Offload.
[ 394.708] (WW) NVIDIA: No DRM device: Direct render devices found but none could be
[ 394.708] (WW) NVIDIA: used.
A pre-requisite for PRIME synchronization with the NVIDIA driver is to enable modesetting.
I did pacman -Suuyy - shouldn’t that have been enough?
Re: PRIME
I think it’s a red herring - the root issue is the NVIDIA kernel module is failing to load because of version mismatch.
Re: mhwd --list-installed
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-linux 2018.05.04 true PCI
video-nvidia 2023.03.23 false PCI
No, that’s not what that command does. I already linked the relevant Pacman Mirrors wiki. As repeated ad nauseum, never use -yy. Normally you wouldn’t use -uu unless instructed. Using -Syu should always be enough.
You have a hybrid Intel + NVIDIA laptop, you should have the video-hybrid-intel-nvidia-prime MHWD profile installed. See Configure Graphics Cards - Manjaro
I did check the wiki but don’t see it documenting what exactly to do to refresh the mirror list. It talks at length about configuring the mirror list (which I did) but not about refreshing.
What’s the exact command please?
I do not.
It’s a desktop system with an Intel cpu which has built in graphics that I am not using, and a discrete nvidia graphics card.
Unlike on a laptop, there are distinct graphics output connectors and my display is connected to the discrete nvidia… And it’s been like that for more than 6 months working just fine until today.
How exactly do I do that?
I think there is a mismatch - based on the dmesg error.
There is a /lib/modules/extramodules-6.6-MANJARO/ with the following content:
-rw-r--r-- 1 root root 4.4M Jan 5 09:57 nvidia-drm.ko
-rw-r--r-- 1 root root 772K Jan 15 12:17 nvidia-drm.ko.xz
-rw-r--r-- 1 root root 96M Jan 5 09:57 nvidia.ko
-rw-r--r-- 1 root root 44M Jan 15 12:17 nvidia.ko.xz
-rw-r--r-- 1 root root 3.4M Jan 5 09:57 nvidia-modeset.ko
-rw-r--r-- 1 root root 754K Jan 15 12:17 nvidia-modeset.ko.xz
-rw-r--r-- 1 root root 82K Jan 15 12:17 nvidia-peermem.ko.xz
-rw-r--r-- 1 root root 55M Jan 5 09:57 nvidia-uvm.ko
-rw-r--r-- 1 root root 8.2M Jan 15 12:17 nvidia-uvm.ko.xz
-rw-r--r-- 1 root root 17 Jan 15 10:40 version
The version file contains:
6.6.12-1-MANJARO
However, strings nvidia-drm.ko | grep 6.6 finds a bunch of matches for /usr/lib/modules/6.6.10-1-MANJARO/build
So it seems we’ve now confirmed that the nvidia modules I have installed are compiled against the wrong kernel version - question is, is that a due to incomplete updates of my system (and how do I fix this) or is this a bug in the repositories?
Ah turns out I’m using testing - must have switched at some time and then forgot.
I just did pamac remove linux66-nvidia and then pamac install linux66-nvidia - this changed nothing, the nvidia .ko files still have 6.6.10 in them and nvidia-drm still fails to load.
The version file inside extamodules-6.6-MANJARO still says 6.6.12-1-MANJARO.
Think it’s looking like the nvidia package in the repository is broken?
mkinitcpio had an issue, which got fixed lately. Those who extract modules had done it on the host and not within the initramfs. So be sure to update to the latest, remove any .ko files, remove the nvidia driver package and reinstall latest mkinitcpio and latest drivers. Recheck the folder if there are no .ko files generated.