NVIDIA drivers for Ubuntu 20.04 kernel 5.10.47 RT

Hello,

I would like to ask for advice on installing the Nvidia driver on Linux with a real-time kernel.

I am using a GeForce RTX 2070 SUPER, the system is running Ubuntu 20.04 with the 5.10.47 RT kernel.

The work that I am doing requires a real-time kernel (in fact, the system is limited to 5.9, 5.10, 5.11, 5.12 kernels). Nvidia’s installation guide advises that Nvidia-Drivers-460 should be used for my GPU. Installing the drivers from the source (using the .run file) works fine for generic versions of 5.8 and 5.10 kernels.

However, the .run file fails to build the driver’s kernel module(s) on the patched 5.10.47 real-time kernel (even with IGNORE_PREEMPT_RT_PRESENCE=1 being set). The error log is as follows:
nvidia-installer log file ‘/var/log/nvidia-installer.log’
creation time: Tue Jul 13 18:50:52 2021
installer version: 460.84

PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

nvidia-installer command line:
./nvidia-installer
-j
1

Using: nvidia-installer ncurses v6 user interface
→ Concurrency level set to 1 on the command line.
→ Installing NVIDIA driver version 460.84.
→ There appears to already be a driver installed on your system (version: 460.84). As part of installing this driver (version: 460.84), the existing driver will be uninstalled. Are you >
→ An alternate method of installing the NVIDIA driver was detected. (This is usually a package provided by your distributor.) A driver installed via that method may integrate better with >

Please review the message provided by the maintainer of this alternate installation method and decide how to proceed:

The NVIDIA driver provided by Ubuntu can be installed by launching the “Software & Updates” application, and by selecting the NVIDIA driver from the “Additional Drivers” tab.

(Answer: Continue installation)
→ Performing CC sanity check with CC=“/usr/bin/cc”.
→ Performing CC check.
→ Kernel source path: ‘/lib/modules/5.10.47-rt45/build’
→ Kernel output path: ‘/lib/modules/5.10.47-rt45/build’
→ Performing Compiler check.
→ Performing Dom0 check.
→ Performing Xen check.
→ Performing PREEMPT_RT check.
→ Performing vgpu_kvm check.
→ Cleaning kernel module build directory.
executing: ‘cd ./kernel; /usr/bin/make -k -j1 clean NV_EXCLUDE_KERNEL_MODULES=“” SYSSRC=“/lib/modules/5.10.47-rt45/build” SYSOUT=“/lib/modules/5.10.47-rt45/build”’…
rm -f -r conftest
make[1]: Entering directory ‘/usr/src/linux-headers-5.10.47-rt45’
/usr/bin/make -f ./scripts/Makefile.clean obj=/tmp/selfgz30831/NVIDIA-Linux-x86_64-460.84/kernel
rm -rf /tmp/selfgz30831/NVIDIA-Linux-x86_64-460.84/kernel/Module.symvers /tmp/selfgz30831/NVIDIA-Linux-x86_64-460.84/kernel/modules.nsdeps /tmp/selfgz30831/NVIDIA-Linux-x86_64-460.84/>
make[1]: Leaving directory ‘/usr/src/linux-headers-5.10.47-rt45’
→ Building kernel modules
executing: ‘cd ./kernel; /usr/bin/make -k -j1 NV_EXCLUDE_KERNEL_MODULES=“” SYSSRC=“/lib/modules/5.10.47-rt45/build” SYSOUT=“/lib/modules/5.10.47-rt45/build”’…
make[1]: Entering directory ‘/usr/src/linux-headers-5.10.47-rt45’
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (
echo >&2;
echo >&2 " ERROR: Kernel configuration is invalid.“;
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.”;
echo >&2 " Run ‘make oldconfig && make prepare’ on kernel src to fix it.";
echo >&2 ;
/bin/false)

 ERROR: Kernel configuration is invalid.
        include/generated/autoconf.h or include/config/auto.conf are missing.
        Run 'make oldconfig && make prepare' on kernel src to fix it.

make[1]: *** [Makefile:719: include/config/auto.conf] Error 1
make[1]: Failed to remake makefile ‘include/config/auto.conf’.
/usr/bin/make -f ./scripts/Makefile.build obj=/tmp/selfgz30831/NVIDIA-Linux-x86_64-460.84/kernel
single-build=
need-builtin=1 need-modorder=1
scripts/Makefile.lib:8: ‘always’ is deprecated. Please use ‘always-y’ instead…
nvidia-installer.log (126.0 KB)

Following the instructions from the error log did not yield any results.

Can you make sense of this error message? Maybe there is a fix or work-around to get the driver working on the real-time kernel? Thank you.

I apologize for my ignorance, but why are you compiling your own driver instead of using the Nvidia repo?

Are the older drivers not compatible with modern kernels?

Hello @benyjr. We have tried using NVidia repositories at first, both GUI and terminal installation methods were tried, and they provide error instead of finishing installation. The compilation from source was chosen, since this kind of installation has additional flags such as: IGNORE_PREEMPT_RT_PRESENCE. Which to my understanding lets us advance further into the installation with the RT kernel…
Regarding the compatibility, we have tried to get every driver from 430 (the oldest version supporting SUPER series) to 465.
Thank you for response.