NVIDIA – Inconsistent Install Problems with Latest Drivers..
Systems are Intel Dual-Xeon with Fedora 41 and GCC 14.2.1.. Kernel compiled from kernel.org source..
Starting with driver 550.144.03, and now with the latest driver 570.86.16 I have been experiencing odd and inconsistent problems with the usual install process..
Running ./NVIDIA-Linux-x86_64-570.86.16.run fails with “ERROR: Unable to load the kernel module ‘nvidia-drm.ko’.” and later “-> Kernel module load error: No such file or directory
ERROR: The nvidia-drm kernel module failed to load. This kernel module is required for the proper operation of DRM-KMS.”
and later:
“ERROR: Installation has failed.”
This installation failure is inconsistent, and the driver will install correctly on one system, but fail on another similar system. After updating the kernel (dot-release) the install may be OK, on a system where it had previously failed….
On a third test system (2023 HP Envy 17 Intel i7) the driver install sometimes – but not always – defaults to try to use the kernel-open stack, instead of the correct default of kernel, and needs the -m=kernel parameter adding to the NV…run command to work correctly.
The workaround is to compile and install the driver manually, and then everything completes successfully:
./NVIDIA-Linux-x86_64-570.86.16.run -x
cd NVIDIA-Linux-x86_64-570.86.16/kernel
make
(as root)
make modules_install
depmod -a
modprobe nvidia-drm (to load all the modules..)
./NVIDIA-Linux-x86_64-570.86.16.run -s –no-kernel-module – to install the userland components (libs etc)
It should be mentioned that the code compilation produces many compiler ‘warning’ messages:
$ cat nv570.66.16-fail_log.txt |grep warning
nvidia/libspdm_aead.c:41:5: warning: no previous prototype for 'libspdm_aead_prealloc' [-Wmissing-prototypes]
nvidia/libspdm_aead.c:178:5: warning: no previous prototype for 'libspdm_aead_prealloced' [-Wmissing-prototypes]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest br$ cat nv570.66.16-fail_log.txt |grep warning
nvidia/libspdm_aead.c:41:5: warning: no previous prototype for 'libspdm_aead_prealloc' [-Wmissing-prototypes]
nvidia/libspdm_aead.c:178:5: warning: no previous prototype for 'libspdm_aead_prealloced' [-Wmissing-prototypes]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
nvidia/nv-mmap.c:321:5: warning: conflicting types for 'nv_encode_caching' due to enum/integer mismatch; have 'int(pgprot_t *, NvU32, nv_memory_type_t)' {aka 'int(struct pgprot *, unsigned int, nv_memory_type_t)'} [-Wenum-int-mismatch]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:580:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:580:37: warning: suggest braces around empty bodyaces around empty body in an 'if' statement [-Wempty-body]
nvidia/nv-mmap.c:321:5: warning: conflicting types for 'nv_encode_caching' due to enum/integer mismatch; have 'int(pgprot_t *, NvU32, nv_memory_type_t)' {aka 'int(struct pgprot *, unsigned int, nv_memory_type_t)'} [-Wenum-int-mismatch]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:580:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:580:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:573:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:566:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
././common/inc/nv-linux.h:580:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
nvidia-uvm/uvm_gpu.c:1024:5: warning: ISO C90 forbids variable length array 'uuid_buffer' [-Wvla]
nvidia-uvm/uvm_gpu.c:1025:5: warning: ISO C90 forbids variable length array 'gpu_dir_name' [-Wvla]
nvidia-uvm/uvm_gpu_access_counters.c:2055:11: warning: no previous prototype for 'uvm_api_clear_all_access_counters' [-Wmissing-prototypes]
Obviously, these are compiler warnings, and the code compiles successfully, but IMHO these should not be present in (hopefully) professionally-produced code, but seem to be accepted as the norm, now..
Robert Gadsdon February 3rd 2025.
Comments
NVIDIA – Inconsistent Install Problems with Latest Drivers.. — No Comments