![](https://seccdn.libravatar.org/avatar/8a4d6f03a8879432d8563aefbf48e787.jpg?s=120&d=mm&r=g)
Am 26.07.22 um 22:24 schrieb Patrick Shanahan:
* Aaron Digulla <digulla@hepe.com> [07-26-22 15:01]:
Am 26.07.22 um 20:33 schrieb Aaron Digulla:
Update: There were two problems.
The first one was that I had kernel-preempt-devel installed. For some reason, building the nvidia driver used those headers instead of the ones of the running kernel.
I assume that booting the kernel doesn't change the link /usr/src/linux. Correct?
The next thing was I tried to boot the old 5.14.21...22 kernel. That worked but when I compile the nvidia driver, it used the kernel headers for 5.14.21...24. Those contain the mysterious symbol __x86_return_thunk in
/usr/src/linux-5.14.21-150400.24.11/arch/x86/include/asm/linkage.h /usr/src/linux-5.14.21-150400.24.11/arch/x86/include/asm/nospec-branch.h /usr/src/linux-5.14.21-150400.24.11/arch/x86/include/asm/static_call.h /usr/src/linux-5.14.21-150400.24.11-obj/x86_64/default/Module.symvers
Sidenote: When building the driver with the kernel headers for 5.14.21...24 and running the same kernel, the build process still reports that those symbols are missing:
depmod: WARNING: //lib/modules/5.14.21-150400.22-default/updates/nvidia-modeset.ko needs unknown symbol __x86_return_thunk depmod: WARNING: //lib/modules/5.14.21-150400.22-default/updates/nvidia-peermem.ko needs unknown symbol __x86_return_thunk depmod: WARNING: //lib/modules/5.14.21-150400.22-default/updates/nvidia-drm.ko needs unknown symbol __x86_return_thunk depmod: WARNING: //lib/modules/5.14.21-150400.22-default/updates/nvidia-uvm.ko needs unknown symbol __x86_return_thunk depmod: WARNING: //lib/modules/5.14.21-150400.22-default/updates/nvidia.ko needs unknown symbol __x86_return_thunk Warning: /lib/modules/5.14.21-150400.22-default is inconsistent
The reason is that this is for the .22 kernel (not the running .24 kernel).
So this is a bit confusing.
Anyway, the system is running again. Thanks to Patrick Shanahanfor putting me on the right track. iiuc, when building, *installed* kernels are concerned rather than *running* and when booting an older kernel, then nvidia driver installed for that kernel is retained.
In my case, the old driver was gone: There was just a single nvidia.ko in /lib. I could start X with noveau so I could at least do some research. I'm wondering why; I'm pretty sure that there was at least one kernel update since I upgraded LEAP from 15.3 to .4. Maybe this happened because the NVIDIA driver had no updates since 15.4 came out. But it's still strange that all old drivers were gone :-/ Maybe it's because 5.14.21-150400.24 now has an additional suffix (.11 atm) and DKMS can't handle that? Or it's because 5.14.21-150400.22-default is left over from LEAP 15.3? I've now tried to rebuild the driver with .22 and .24 and /lib now looks like this: 1547614 57848 -rw-r--r-- 1 root root 59235160 Jul 26 20:48 /lib/modules/5.14.21-150400.22-default/updates/nvidia.ko 1540700 4 lrwxrwxrwx 1 root root 56 Jul 26 18:28 /lib/modules/5.14.21-150400.24.11-default/weak-updates/updates/nvidia.ko -> /lib/modules/5.14.21-150400.22-default/updates/nvidia.ko As you can see, the .24.11 driver is just a link to the .22 driver but the .22 driver doesn't work with the .22 kernel because of missing symbols! What the heck??? Regards, -- Aaron "Optimizer" Digulla a.k.a. Philmann Dark "It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits." http://blog.pdark.de/