The NVidia "legacy" driver 470.182.03 fails to compile modules with Linux 6.3.1 kernel.
A simple grep into the nvidia-installer.log reveals :
kernel/nvidia/nv-mmap.c:599:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:666:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:667:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:673:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:674:23: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia/nv-mmap.o] Error 1
kernel/nvidia-uvm/uvm.c:815:19: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia-uvm/uvm.o] Error 1
kernel/nvidia-drm/nvidia-drm-gem-user-memory.c:95:19: error: assignment of read-only member ‘vm_flags’
kernel/nvidia-drm/nvidia-drm-gem-user-memory.c:96:19: error: assignment of read-only member ‘vm_flags’
kernel/nvidia-drm/nvidia-drm-gem-user-memory.c:97:19: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia-drm/nvidia-drm-gem-user-memory.o] Error 1
make[2]: Target ' kernel/' not remade because of errors.
make[1]: *** [Makefile:2025: kernel] Error 2
make[1]: Target 'modules' not remade because of errors.
make: *** [Makefile:80: modules] Error 2
-> Error.
ERROR: An error occurred while performing the step: "Building kernel modules". See /var/log/nvidia-installer.log for details.
kernel/nvidia/nv-mmap.c:599:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:666:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:667:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:673:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:674:23: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia/nv-mmap.o] Error 1
kernel/nvidia-uvm/uvm.c:815:19: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia-uvm/uvm.o] Error 1
kernel/nvidia-drm/nvidia-drm-gem-user-memory.c:95:19: error: assignment of read-only member ‘vm_flags’
kernel/nvidia-drm/nvidia-drm-gem-user-memory.c:96:19: error: assignment of read-only member ‘vm_flags’
kernel/nvidia-drm/nvidia-drm-gem-user-memory.c:97:19: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia-drm/nvidia-drm-gem-user-memory.o] Error 1
make[2]: Target ' kernel/' not remade because of errors.
make[1]: *** [Makefile:2025: kernel] Error 2
make[1]: Target 'modules' not remade because of errors.
make: *** [Makefile:80: modules] Error 2
kernel/nvidia/nv-mmap.c:599:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:666:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:667:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:673:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:674:23: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia/nv-mmap.o] Error 1
make[2]: Target ' kernel/' not remade because of errors.
make[1]: *** [Makefile:2025: kernel] Error 2
make[1]: Target 'modules' not remade because of errors.
make: *** [Makefile:80: modules] Error 2
-> Error.
ERROR: An error occurred while performing the step: "Checking to see whether the nvidia kernel module was successfully built". See /var/log/nvidia-installer.log for details.
kernel/nvidia/nv-mmap.c:599:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:666:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:667:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:673:23: error: assignment of read-only member ‘vm_flags’
kernel/nvidia/nv-mmap.c:674:23: error: assignment of read-only member ‘vm_flags’
make[2]: *** [scripts/Makefile.build:252: kernel/nvidia/nv-mmap.o] Error 1
make[2]: Target ' kernel/' not remade because of errors.
make[1]: *** [Makefile:2025: kernel] Error 2
make[1]: Target 'modules' not remade because of errors.
make: *** [Makefile:80: modules] Error 2
ERROR: The nvidia kernel module was not created.
Therefore it seems the NVidia Linux driver build process was not being tested against Linux kernel head nor recent test releases.
Same here . do you want to discuss a fix
I sort of figure that sooner or later the good NVidia folks will test their drivers on latest “stable” Linux. Only a matter of time. I have seen this before and it looks like there are some new memory management code in 6.3.1 with variables and structures that have changed. For the moment I can revert back to a 6.2.x kernel and things seem to work. That includes CUDA nvcc and NPP libs etc.
I found a fix, I documented it for Debian, including a patch, you could adapt it easily too:
See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1036173
Hey guess what! The patch for the legacy 470.x series driver seems to work great with Linux 6.3.8. See full video on YouTube at NVidia drivers on Linux is a flail or fail? - YouTube with loads of fan noises and servers running around me. Sort of a rant but the driver wworks and so does CUDA. See patch at Tentative fix for NVIDIA 470.161.03 driver for Linux 6.3-rc1 · GitHub there.