After upgrading to Fedora 40, dkms.service didn’t start and nvidia-smi didn’t work:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
I install NVIDIA driver (for my Ampere card) and CUDA from the CUDA repos, and this method always worked in Fedora 38 and 39.
RPM Fusion contains incorrect instructions as usual, which lead to stupid errors:
Last metadata expiration check: 0:00:52 ago on Fri 26 Apr 2024 08:28:41 PM IST.
Error:
Problem: conflicting requests
- package cuda-12.4.1-1.x86_64 from cuda-fedora39-x86_64 requires cuda-12-4 >= 12.4.1, but none of the providers can be installed
- package cuda-12.4.0-1.x86_64 from cuda-fedora39-x86_64 requires cuda-12-4 >= 12.4.0, but none of the providers can be installed
- package cuda-12-4-12.4.1-1.x86_64 from cuda-fedora39-x86_64 requires cuda-runtime-12-4 >= 12.4.1, but none of the providers can be installed
- package cuda-12-4-12.4.0-1.x86_64 from cuda-fedora39-x86_64 requires cuda-runtime-12-4 >= 12.4.0, but none of the providers can be installed
- package cuda-runtime-12-4-12.4.1-1.x86_64 from cuda-fedora39-x86_64 requires cuda-drivers >= 550.54.15, but none of the providers can be installed
- package cuda-runtime-12-4-12.4.0-1.x86_64 from cuda-fedora39-x86_64 requires cuda-drivers >= 550.54.14, but none of the providers can be installed
- package nvidia-driver-cuda-3:550.54.15-1.fc39.x86_64 from @System conflicts with xorg-x11-drv-nvidia-cuda provided by xorg-x11-drv-nvidia-cuda-3:550.76-1.fc40.x86_64 from rpmfusion-nonfree-nvidia-driver
- problem with installed package nvidia-driver-cuda-3:550.54.15-1.fc39.x86_64
- package cuda-drivers-550.54.14-1.x86_64 from cuda-fedora39-x86_64 is filtered out by modular filtering
- package cuda-drivers-550.54.15-1.x86_64 from cuda-fedora39-x86_64 is filtered out by modular filtering
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
I tried several reinstalls, with and without the nvidia-drm.modeset=1 parameter. sudo dkms autoinstall resulted in compiler errors, probably because of GCC 14 (Fedora 39 had GCC 13). How can I get a pre-built GCC 13 binary on Fedora 40?
So I got the driver installed using the runfile (not recommended, but it always works).
Can’t get CUDA to install from the runfile though.
Edit: pass --override to the CUDA runfile (to prevent gcc 14 related errors) and don’t install the driver that it contains (so install the driver from the other runfile separately).
My GPU is stuck at 80 W though even after starting nvidia-powerd.service (dissipated up to 140 W earlier).
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-pci.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv.c:1232:23: warning: no previous prototype for ‘nv_get_num_dpaux_instances’ [-Wmissing-prototypes]
1232 | NV_STATUS NV_API_CALL nv_get_num_dpaux_instances(nv_state_t *nv, NvU32 *num_instances)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-dmabuf.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-nano-timer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-acpi.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-cray.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-dma.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-i2c.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-dma.c:293:6: warning: no previous prototype for ‘nv_load_dma_map_scatterlist’ [-Wmissing-prototypes]
293 | void nv_load_dma_map_scatterlist(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-dma.c:489:23: warning: no previous prototype for ‘nv_dma_unmap_sgt’ [-Wmissing-prototypes]
489 | NV_STATUS NV_API_CALL nv_dma_unmap_sgt(
| ^~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-mmap.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-p2p.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-mmap.c:303: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]
303 | int nv_encode_caching(
| ^~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/nvidia/550.54.15/build/common/inc/nv-linux.h:1762,
from /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-mmap.c:27:
/var/lib/dkms/nvidia/550.54.15/build/common/inc/nv-proto.h:44:13: note: previous declaration of ‘nv_encode_caching’ with type ‘int(pgprot_t *, NvU32, NvU32)’ {aka ‘int(struct pgprot *, unsigned int, unsigned int)’}
44 | int nv_encode_caching (pgprot_t *, NvU32, NvU32);
| ^~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-pat.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-procfs.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-usermap.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-procfs.c:698:1: warning: no previous prototype for ‘exercise_error_forwarding_va’ [-Wmissing-prototypes]
698 | exercise_error_forwarding_va(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-vm.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-vtophys.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/os-interface.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/os-mlock.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/os-interface.c:374:7: warning: no previous prototype for ‘os_mem_copy_custom’ [-Wmissing-prototypes]
374 | void *os_mem_copy_custom(
| ^~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/os-pci.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/os-registry.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/os-usermap.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-modeset-interface.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-pci-table.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-kthread-q.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-memdbg.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-report-err.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.c:395:6: warning: no previous prototype for ‘nv_init_ibmnpu_info’ [-Wmissing-prototypes]
395 | void nv_init_ibmnpu_info(nv_state_t *nv)
| ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.c:399:6: warning: no previous prototype for ‘nv_destroy_ibmnpu_info’ [-Wmissing-prototypes]
399 | void nv_destroy_ibmnpu_info(nv_state_t *nv)
| ^~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.c:403:5: warning: no previous prototype for ‘nv_init_ibmnpu_devices’ [-Wmissing-prototypes]
403 | int nv_init_ibmnpu_devices(nv_state_t *nv)
| ^~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.c:408:6: warning: no previous prototype for ‘nv_unregister_ibmnpu_devices’ [-Wmissing-prototypes]
408 | void nv_unregister_ibmnpu_devices(nv_state_t *nv)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.c:428:5: warning: no previous prototype for ‘nv_get_ibmnpu_chip_id’ [-Wmissing-prototypes]
428 | int nv_get_ibmnpu_chip_id(nv_state_t *nv)
| ^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-ibmnpu.c:437:6: warning: no previous prototype for ‘nv_ibmnpu_cache_flush_numa_region’ [-Wmissing-prototypes]
437 | void nv_ibmnpu_cache_flush_numa_region(nv_state_t *nv)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-rsync.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-msi.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps-imex.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps.c:270:5: warning: no previous prototype for ‘nv_cap_procfs_init’ [-Wmissing-prototypes]
270 | int nv_cap_procfs_init(void)
| ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps-imex.c:52:17: warning: no previous prototype for ‘nv_caps_imex_channel_get’ [-Wmissing-prototypes]
52 | int NV_API_CALL nv_caps_imex_channel_get(int fd)
| ^~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps-imex.c:89:17: warning: no previous prototype for ‘nv_caps_imex_channel_count’ [-Wmissing-prototypes]
89 | int NV_API_CALL nv_caps_imex_channel_count(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps-imex.c:94:17: warning: no previous prototype for ‘nv_caps_imex_init’ [-Wmissing-prototypes]
94 | int NV_API_CALL nv_caps_imex_init(void)
| ^~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nv-caps-imex.c:141:18: warning: no previous prototype for ‘nv_caps_imex_exit’ [-Wmissing-prototypes]
141 | void NV_API_CALL nv_caps_imex_exit(void)
| ^~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nv_uvm_interface.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_aead.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_aead.c:41:5: warning: no previous prototype for ‘libspdm_aead_prealloc’ [-Wmissing-prototypes]
41 | int libspdm_aead_prealloc(void **context, char const *alg)
| ^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_aead.c:171:5: warning: no previous prototype for ‘libspdm_aead_prealloced’ [-Wmissing-prototypes]
171 | int libspdm_aead_prealloced(void *context,
| ^~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_ecc.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_hkdf.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_rand.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_shash.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_rsa.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_aead_aes_gcm.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_sha.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_hmac_sha.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_hkdf_sha.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_ec.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_x509.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/libspdm_rsa_ext.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nvlink_linux.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/nvlink_caps.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nvlink_linux.c:313:12: warning: no previous prototype for ‘nvlink_core_init’ [-Wmissing-prototypes]
313 | int __init nvlink_core_init(void)
| ^~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/nvlink_linux.c:389:6: warning: no previous prototype for ‘nvlink_core_exit’ [-Wmissing-prototypes]
389 | void nvlink_core_exit(void)
| ^~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/linux_nvswitch.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/procfs_nvswitch.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia/linux_nvswitch.c:1705:1: warning: no previous prototype for ‘nvswitch_init’ [-Wmissing-prototypes]
1705 | nvswitch_init
| ^~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia/linux_nvswitch.c:1790:1: warning: no previous prototype for ‘nvswitch_exit’ [-Wmissing-prototypes]
1790 | nvswitch_exit
| ^~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia/i2c_nvswitch.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ats_sva.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_conf_computing.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_sec2_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_sec2.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper_sec2.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_common.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_linux.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/nvstatus.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/nvCpuUuid.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/nv-kthread-q.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/nv-kthread-q-selftest.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/nv-kthread-q-selftest.c:84:6: warning: no previous prototype for ‘on_nvq_assert’ [-Wmissing-prototypes]
84 | void on_nvq_assert(void)
| ^~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tools.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_global.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tools.c:1375:6: warning: no previous prototype for ‘uvm_tools_record_access_counter’ [-Wmissing-prototypes]
1375 | void uvm_tools_record_access_counter(uvm_va_space_t *va_space,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tools.c:2878:5: warning: no previous prototype for ‘uvm_tools_init’ [-Wmissing-prototypes]
2878 | int uvm_tools_init(dev_t uvm_base_dev)
| ^~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tools.c:2939:6: warning: no previous prototype for ‘uvm_tools_exit’ [-Wmissing-prototypes]
2939 | void uvm_tools_exit(void)
| ^~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_isr.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_procfs.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_va_space.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_va_space_mm.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_semaphore.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_semaphore.c:510:6: warning: no previous prototype for ‘tracking_semaphore_uses_mutex’ [-Wmissing-prototypes]
510 | bool tracking_semaphore_uses_mutex(uvm_gpu_tracking_semaphore_t *tracking_semaphore)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_mem.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_rm_mem.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_lock.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hal.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_processors.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_range_tree.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_rb_tree.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_range_allocator.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_va_range.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_va_policy.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_va_block.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_range_group.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_replayable_faults.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_non_replayable_faults.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_access_counters.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_events.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_module.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pte_batch.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_mmu.c:2313:11: warning: no previous prototype for ‘create_static_vidmem_mapping’ [-Wmissing-prototypes]
2313 | NV_STATUS create_static_vidmem_mapping(uvm_gpu_t *gpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tlb_batch.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_push.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pushbuffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_thread_context.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tracker.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_host.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_ce.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_fault_buffer.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_mmu.c:359:21: warning: no previous prototype for ‘uvm_hal_mmu_mode_maxwell’ [-Wmissing-prototypes]
359 | uvm_mmu_mode_hal_t *uvm_hal_mmu_mode_maxwell(NvU32 big_page_size)
| ^~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_mmu.c:368:6: warning: no previous prototype for ‘uvm_hal_maxwell_mmu_enable_prefetch_faults_unsupported’ [-Wmissing-prototypes]
368 | void uvm_hal_maxwell_mmu_enable_prefetch_faults_unsupported(uvm_parent_gpu_t *parent_gpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_mmu.c:373:6: warning: no previous prototype for ‘uvm_hal_maxwell_mmu_disable_prefetch_faults_unsupported’ [-Wmissing-prototypes]
373 | void uvm_hal_maxwell_mmu_disable_prefetch_faults_unsupported(uvm_parent_gpu_t *parent_gpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_mmu.c:378:23: warning: no previous prototype for ‘uvm_hal_maxwell_mmu_engine_id_to_type_unsupported’ [-Wmissing-prototypes]
378 | uvm_mmu_engine_type_t uvm_hal_maxwell_mmu_engine_id_to_type_unsupported(NvU16 mmu_engine_id)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_mmu.c:384:7: warning: no previous prototype for ‘uvm_hal_maxwell_mmu_client_id_to_utlb_id_unsupported’ [-Wmissing-prototypes]
384 | NvU16 uvm_hal_maxwell_mmu_client_id_to_utlb_id_unsupported(NvU16 client_id)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_maxwell_access_counter_buffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_ce.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_host.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_fault_buffer.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_mmu.c:365:21: warning: no previous prototype for ‘uvm_hal_mmu_mode_pascal’ [-Wmissing-prototypes]
365 | uvm_mmu_mode_hal_t *uvm_hal_mmu_mode_pascal(NvU32 big_page_size)
| ^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_mmu.c:405:6: warning: no previous prototype for ‘uvm_hal_pascal_mmu_enable_prefetch_faults’ [-Wmissing-prototypes]
405 | void uvm_hal_pascal_mmu_enable_prefetch_faults(uvm_parent_gpu_t *parent_gpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_mmu.c:412:6: warning: no previous prototype for ‘uvm_hal_pascal_mmu_disable_prefetch_faults’ [-Wmissing-prototypes]
412 | void uvm_hal_pascal_mmu_disable_prefetch_faults(uvm_parent_gpu_t *parent_gpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_mmu.c:417:7: warning: no previous prototype for ‘uvm_hal_pascal_mmu_client_id_to_utlb_id’ [-Wmissing-prototypes]
417 | NvU16 uvm_hal_pascal_mmu_client_id_to_utlb_id(NvU16 client_id)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_volta_ce.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pascal_fault_buffer.c:327:6: warning: no previous prototype for ‘uvm_hal_pascal_fault_buffer_parse_non_replayable_entry_unsupported’ [-Wmissing-prototypes]
327 | void uvm_hal_pascal_fault_buffer_parse_non_replayable_entry_unsupported(uvm_parent_gpu_t *parent_gpu,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_volta_host.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_volta_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_volta.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_volta_fault_buffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_volta_access_counter_buffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_turing.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_turing_access_counter_buffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_turing_fault_buffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_turing_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_turing_host.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ampere.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ampere_ce.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ampere_host.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ampere_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper_fault_buffer.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper_ce.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper_fault_buffer.c:30:6: warning: no previous prototype for ‘uvm_hal_hopper_fault_buffer_get_ve_id’ [-Wmissing-prototypes]
30 | NvU8 uvm_hal_hopper_fault_buffer_get_ve_id(NvU16 mmu_engine_id, uvm_mmu_engine_type_t mmu_engine_type)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper_host.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hopper_mmu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ada.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_policy.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_utils.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_kvmalloc.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_sysmem.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_gpu.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_migrate.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_populate_pageable.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_migrate_pageable.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_populate_pageable.c:56:11: warning: no previous prototype for ‘uvm_handle_fault’ [-Wmissing-prototypes]
56 | NV_STATUS uvm_handle_fault(struct vm_area_struct *vma, unsigned long start, unsigned long vma_num_pages, bool write)
| ^~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_migrate_pageable.c:510:6: warning: no previous prototype for ‘migrate_vma_cleanup_pages’ [-Wmissing-prototypes]
510 | void migrate_vma_cleanup_pages(unsigned long *dst, unsigned long npages)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_migrate_pageable.c:556:6: warning: no previous prototype for ‘uvm_migrate_vma_alloc_and_copy_helper’ [-Wmissing-prototypes]
556 | void uvm_migrate_vma_alloc_and_copy_helper(struct vm_area_struct *vma,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_migrate_pageable.c:645:6: warning: no previous prototype for ‘uvm_migrate_vma_finalize_and_map_helper’ [-Wmissing-prototypes]
645 | void uvm_migrate_vma_finalize_and_map_helper(struct vm_area_struct *vma,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.c: In function ‘uvm_pte_buffer_init’:
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.c:104:42: warning: implicit conversion from ‘UvmGpuCachingType’ to ‘UvmRmGpuCachingType’ [-Wenum-conversion]
104 | pte_buffer->mapping_info.cachingType = map_rm_params->caching_type;
| ^
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.c:105:42: warning: implicit conversion from ‘UvmGpuMappingType’ to ‘UvmRmGpuMappingType’ [-Wenum-conversion]
105 | pte_buffer->mapping_info.mappingType = map_rm_params->mapping_type;
| ^
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.c:106:41: warning: implicit conversion from ‘UvmGpuFormatType’ to ‘UvmRmGpuFormatType’ [-Wenum-conversion]
106 | pte_buffer->mapping_info.formatType = map_rm_params->format_type;
| ^
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.c:107:42: warning: implicit conversion from ‘UvmGpuFormatElementBits’ to ‘UvmRmGpuFormatElementBits’ [-Wenum-conversion]
107 | pte_buffer->mapping_info.elementBits = map_rm_params->element_bits;
| ^
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_map_external.c:108:46: warning: implicit conversion from ‘UvmGpuCompressionType’ to ‘UvmRmGpuCompressionType’ [-Wenum-conversion]
108 | pte_buffer->mapping_info.compressionType = map_rm_params->compression_type;
| ^
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_user_channel.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_hmm.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_heuristics.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_thrashing.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_prefetch.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ats.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ats_ibm.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ats_faults.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_test_rng.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_range_tree_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_range_allocator_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_gpu_semaphore_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_mem_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_rm_mem_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_page_tree_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_tracker_test.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_page_tree_test.c:1514:8: warning: no previous prototype for ‘get_page_sizes’ [-Wmissing-prototypes]
1514 | size_t get_page_sizes(uvm_gpu_t *gpu, NvU32 *page_sizes)
| ^~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_push_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_ce_test.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel_test.c:722:11: warning: no previous prototype for ‘test_conf_computing_channel_selection’ [-Wmissing-prototypes]
722 | NV_STATUS test_conf_computing_channel_selection(uvm_va_space_t *va_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel_test.c:782:11: warning: no previous prototype for ‘test_channel_iv_rotation’ [-Wmissing-prototypes]
782 | NV_STATUS test_channel_iv_rotation(uvm_va_space_t *va_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel_test.c:877:11: warning: no previous prototype for ‘test_write_ctrl_gpfifo_noop’ [-Wmissing-prototypes]
877 | NV_STATUS test_write_ctrl_gpfifo_noop(uvm_va_space_t *va_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel_test.c:916:11: warning: no previous prototype for ‘test_write_ctrl_gpfifo_and_pushes’ [-Wmissing-prototypes]
916 | NV_STATUS test_write_ctrl_gpfifo_and_pushes(uvm_va_space_t *va_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_channel_test.c:964:11: warning: no previous prototype for ‘test_write_ctrl_gpfifo_tight’ [-Wmissing-prototypes]
964 | NV_STATUS test_write_ctrl_gpfifo_tight(uvm_va_space_t *va_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_host_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_lock_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_utils_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_kvmalloc_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_sysmem_test.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_test.c:901:11: warning: no previous prototype for ‘__test_pmm_async_alloc_type’ [-Wmissing-prototypes]
901 | NV_STATUS __test_pmm_async_alloc_type(uvm_va_space_t *va_space,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_sysmem_test.c:1075:11: warning: no previous prototype for ‘do_test_cpu_chunk_free’ [-Wmissing-prototypes]
1075 | NV_STATUS do_test_cpu_chunk_free(uvm_cpu_chunk_t *chunk, uvm_va_space_t *va_space, uvm_processor_mask_t *test_gpus)
| ^~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_pmm_sysmem_test.c:1171:11: warning: no previous prototype for ‘test_cpu_chunk_free’ [-Wmissing-prototypes]
1171 | NV_STATUS test_cpu_chunk_free(uvm_va_space_t *va_space, uvm_processor_mask_t *test_gpus)
| ^~~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_events_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_perf_module_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_get_rm_ptes_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_fault_buffer_flush_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_peer_identity_mappings_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_va_block_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_range_group_tree_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_thread_context_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-uvm/uvm_rb_tree_test.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-modeset/nvidia-modeset-linux.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-modeset/nv-kthread-q.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-modeset/nvidia-modeset-linux.c:1067:24: warning: no previous prototype for ‘nvkms_open_common’ [-Wmissing-prototypes]
1067 | struct nvkms_per_open *nvkms_open_common(enum NvKmsClientType type,
| ^~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-modeset/nvidia-modeset-linux.c:1119:6: warning: no previous prototype for ‘nvkms_close_pm_locked’ [-Wmissing-prototypes]
1119 | void nvkms_close_pm_locked(struct nvkms_per_open *popen)
| ^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-modeset/nvidia-modeset-linux.c:1182:5: warning: no previous prototype for ‘nvkms_ioctl_common’ [-Wmissing-prototypes]
1182 | int nvkms_ioctl_common
| ^~~~~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-drv.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-utils.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-crtc.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-encoder.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-connector.o
CC [M] /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-gem.o
/var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-gem.c:115:16: error: initialization of ‘int (*)(struct drm_gem_object *, struct iosys_map *)’ from incompatible pointer type ‘void * (*)(struct drm_gem_object *)’ [-Wincompatible-pointer-types]
115 | .vmap = nv_drm_gem_prime_vmap,
| ^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-gem.c:115:16: note: (near initialization for ‘nv_drm_gem_funcs.vmap’)
/var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-gem.c:116:16: error: initialization of ‘void (*)(struct drm_gem_object *, struct iosys_map *)’ from incompatible pointer type ‘void (*)(struct drm_gem_object *, void *)’ [-Wincompatible-pointer-types]
116 | .vunmap = nv_drm_gem_prime_vunmap,
| ^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-gem.c:116:16: note: (near initialization for ‘nv_drm_gem_funcs.vunmap’)
make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/nvidia/550.54.15/build/nvidia-drm/nvidia-drm-gem.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [/usr/src/kernels/6.8.7-300.fc40.x86_64/Makefile:1939: /var/lib/dkms/nvidia/550.54.15/build] Error 2
make[1]: *** [Makefile:252: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/kernels/6.8.7-300.fc40.x86_64'
make: *** [Makefile:85: modules] Error 2
I got it to compile with GCC 14. The errors are pretty straightforward to fix (only 4 lines need to be changed in source). Now the GPU goes into d3cold and enabling nvidia-powerd.service sets power cap to 140 W as well.
Edit: just change lines 112, 113, 115, 116 in /usr/src/nvidia-550.54.15/nvidia-drm/nvidia-drm-gem.c to