Nvidia-dkms building failed on 5.18.5 kernel installation

When I updated my kernel(sudo dnf update) from 5.17.14 to 5.18.5, my nvidia-dkms built failed:
Here’s the error message:

dkms: running auto installation service for kernel 5.18.5-200.fc36.x86_64
Building module:
cleaning build area...
'make' -j12 NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=5.18.5-200.fc36.x86_64 IGNORE_CC_MISMATCH='' modules.......(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.18.5-200.fc36.x86_64 (x86_64)
Consult /var/lib/dkms/nvidia/510.60.02/build/make.log for more information.

And I referred the error message in make.log:

/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-dma.c:986: warning: "IMPORT_SGT_STUBS_NEEDED" redefined
  986 | #define IMPORT_SGT_STUBS_NEEDED 0
      | 
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-dma.c:980: note: this is the location of the previous definition
  980 | #define IMPORT_SGT_STUBS_NEEDED 1
      | 
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-acpi.c: In function ‘nv_acpi_methods_init’:
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-acpi.c:655:22: error: implicit declaration of function ‘acpi_bus_get_device’; did you mean ‘acpi_is_pnp_device’? [-Werror=implicit-function-declaration]
  655 |             retVal = acpi_bus_get_device(nvif_parent_gpu_handle, &device);
      |                      ^~~~~~~~~~~~~~~~~~~
      |                      acpi_is_pnp_device
  CC [M]  /var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-vtophys.o
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv.c: In function ‘nv_set_dma_address_size’:
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv.c:2768:9: error: implicit declaration of function ‘pci_set_dma_mask’; did you mean ‘ipi_send_mask’? [-Werror=implicit-function-declaration]
 2768 |         pci_set_dma_mask(nvl->pci_dev, new_mask);
      |         ^~~~~~~~~~~~~~~~
      |         ipi_send_mask
  CC [M]  /var/lib/dkms/nvidia/510.60.02/build/nvidia/os-interface.o
  CC [M]  /var/lib/dkms/nvidia/510.60.02/build/nvidia/os-mlock.o
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-mmap.c: In function ‘nv_encode_caching’:
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-mmap.c:343:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
  343 |             if (NV_ALLOW_CACHING(memory_type))
      |                ^
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-mmap.c:346:9: note: here
  346 |         default:
      |         ^~~~~~~
  CC [M]  /var/lib/dkms/nvidia/510.60.02/build/nvidia/os-pci.o
/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv.c:2774:9: error: implicit declaration of function ‘pci_set_consistent_dma_mask’ [-Werror=implicit-function-declaration]
 2774 |         pci_set_consistent_dma_mask(nvl->pci_dev, new_mask);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  /var/lib/dkms/nvidia/510.60.02/build/nvidia/os-registry.o
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:288: /var/lib/dkms/nvidia/510.60.02/build/nvidia/nv-acpi.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:288: /var/lib/dkms/nvidia/510.60.02/build/nvidia/nv.o] Error 1
make[1]: *** [Makefile:1838: /var/lib/dkms/nvidia/510.60.02/build] Error 2
make[1]: Leaving directory '/usr/src/kernels/5.18.5-200.fc36.x86_64'
make: *** [Makefile:82: modules] Error 2

The error is from the -Werror compiler parameter:

/var/lib/dkms/nvidia/510.60.02/build/nvidia/nv.c:2774:9: error: implicit declaration of function > > ‘pci_set_consistent_dma_mask’ [-Werror=implicit-function-declaration]
 2774 |         pci_set_consistent_dma_mask(nvl->pci_dev, new_mask);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  /var/lib/dkms/nvidia/510.60.02/build/nvidia/os-registry.o
cc1: some warnings being treated as errors

Is there any chance for we users to fix that manually? Any advice for a noob?

Thanks for your time and patience

1 Like

Ok, I found the same issue at http://rglinuxtech.com/?p=3015
There’s a reply saying the issue might be fixed on 510.68.02 nvidia-driver, which needs a manual update.

===============================
update:
Completely solved by upgrading my Nvidia-driver version first(download the .run file from Nvidia Website), then(1) booting from the old kernel; (2) turning off gdm by sudo service gdm stop; (3) rebuilding your nvidia-dkms for the latest kernel sudo dnf reinstall kernel*5.18*

PLease use the packaged nvidia driver from RPM Fusion. You will have less to worry about missing kernel patches for the nvidia driver…

https://rpmfusion.org/Howto/NVIDIA

2 Likes