Vulkan Beta driver 418.52.* don't build from Linux kernel 5.0.7

Hello:

Until Linux kernel 5.0.6 I can build 418.52.03, 418.52.05 and 418.52.07

But, from Linux kernel > 5.0.7 (actually 5.1.6) I can’t build the driver with 418.52.07 or 418.52.10.

In other hand, 418.30 build OK. The Vulkan Beta Drivers only build from Linux kernel > 5.0.7 with:

sh NVIDIA-Linux-x86_64-418.52.10.run --no-unified-memory --no-drm

Some piece of nvidia-installer.log

nvidia-installer log file ‘/var/log/nvidia-installer.log’
creation time: Mon Jun 3 16:22:44 2019
installer version: 418.52.10

PATH: /sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/lib/mit/sbin

nvidia-installer command line:
./nvidia-installer

Unable to load: nvidia-installer ncurses v6 user interface

Unable to load: nvidia-installer ncurses user interface

Using built-in stream user interface
→ Detected 4 CPUs online; setting concurrency level to 4.
→ Installing NVIDIA driver version 418.52.10.
→ There appears to already be a driver installed on your system (version: 430.14). As part of installing this driver (version: 418.52.10), the existing driver will be uninstalled. Are you sure you want to continue? (Answer: Continue installation)
→ Running distribution scripts
executing: ‘/usr/lib/nvidia/pre-install’…
grep: /etc/sysconfig/kernel: No such file or directory
→ done.
→ The distribution-provided pre-install script completed successfully. If this is the first time you have run the installer, this script may have helped disable Nouveau, but a reboot may be required first. Would you like to continue, or would you prefer to abort installation to reboot the system? (Answer: Continue installation)
→ Performing CC sanity check with CC=“/usr/bin/cc”.
→ Kernel source path: ‘/lib/modules/5.1.6-1.g7375706-default/source’
→ Kernel output path: ‘/lib/modules/5.1.6-1.g7375706-default/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 -j4 clean NV_EXCLUDE_KERNEL_MODULES=“” SYSSRC=“/lib/modules/5.1.6-1.g7375706-default/source” SYSOUT=“/lib/modules/5.1.6-1.g7375706-default/build”’…
rm -f -r conftest
make[1]: Entering directory ‘/usr/src/linux-5.1.6-1.g7375706’
make[2]: Entering directory ‘/usr/src/linux-5.1.6-1.g7375706-obj/x86_64/default’
make[2]: Leaving directory ‘/usr/src/linux-5.1.6-1.g7375706-obj/x86_64/default’
make[1]: Leaving directory ‘/usr/src/linux-5.1.6-1.g7375706’
→ Building kernel modules
executing: ‘cd ./kernel; /usr/bin/make -k -j4 NV_EXCLUDE_KERNEL_MODULES=“” SYSSRC=“/lib/modules/5.1.6-1.g7375706-default/source” SYSOUT=“/lib/modules/5.1.6-1.g7375706-default/build”’…
make[1]: Entering directory ‘/usr/src/linux-5.1.6-1.g7375706’
make[2]: Entering directory ‘/usr/src/linux-5.1.6-1.g7375706-obj/x86_64/default’
SYMLINK /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia/nv-kernel.o
SYMLINK /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-modeset/nv-modeset-kernel.o

[…]

/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:187:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.fault = uvm_vm_fault_sigbus_wrapper
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:187:14: note: (near initialization for ‘uvm_vm_ops_disabled.fault’)
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:525:21: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.fault = uvm_vm_fault_wrapper,
^~~~~~~~~~~~~~~~~~~~
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:525:21: note: (near initialization for ‘uvm_vm_ops_managed.fault’)
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:526:21: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.page_mkwrite = uvm_vm_fault_wrapper,
^~~~~~~~~~~~~~~~~~~~
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:526:21: note: (near initialization for ‘uvm_vm_ops_managed.page_mkwrite’)
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:609:21: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.fault = uvm_vm_fault_sigbus_wrapper,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.c:609:21: note: (near initialization for ‘uvm_vm_ops_semaphore_pool.fault’)
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-5.1.6-1.g7375706/scripts/Makefile.build:277: /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-uvm/uvm8.o] Error 1

[…]

/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c: In function ‘nv_drm_init_mode_config’:
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c:222:5: error: implicit declaration of function ‘drm_kms_helper_poll_init’; did you mean ‘drm_modeset_lock_init’? [-Werror=implicit-function-declaration]
drm_kms_helper_poll_init(dev);
^~~~~~~~~~~~~~~~~~~~~~~~
drm_modeset_lock_init
CC [M] /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-encoder.o
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c:226:5: error: implicit declaration of function ‘drm_kms_helper_poll_disable’; did you mean ‘drm_bridge_post_disable’? [-Werror=implicit-function-declaration]
drm_kms_helper_poll_disable(dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_bridge_post_disable
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c: In function ‘nv_drm_load’:
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c:364:5: error: implicit declaration of function ‘drm_helper_hpd_irq_event’; did you mean ‘drm_helper_crtc_in_use’? [-Werror=implicit-function-declaration]
drm_helper_hpd_irq_event(dev);
^~~~~~~~~~~~~~~~~~~~~~~~
drm_helper_crtc_in_use
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c: In function ‘__nv_drm_unload’:
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.c:403:5: error: implicit declaration of function ‘drm_kms_helper_poll_fini’; did you mean ‘drm_modeset_lock_fini’? [-Werror=implicit-function-declaration]
drm_kms_helper_poll_fini(dev);
^~~~~~~~~~~~~~~~~~~~~~~~
drm_modeset_lock_fini
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-5.1.6-1.g7375706/scripts/Makefile.build:277: /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-drv.o] Error 1
CC [M] /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-connector.o
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-encoder.c: In function ‘nv_drm_handle_display_change’:
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-encoder.c:293:5: error: implicit declaration of function ‘drm_kms_helper_hotplug_event’; did you mean ‘drm_sysfs_hotplug_event’? [-Werror=implicit-function-declaration]
drm_kms_helper_hotplug_event(dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_sysfs_hotplug_event
CC [M] /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-gem.o
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-5.1.6-1.g7375706/scripts/Makefile.build:277: /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-encoder.o] Error 1
CC [M] /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-fb.o
CC [M] /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-modeset.o
/tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-connector.c:212:31: error: ‘drm_helper_probe_single_connector_modes’ undeclared here (not in a function); did you mean ‘drm_helper_move_panel_connectors_to_head’?
.fill_modes = drm_helper_probe_single_connector_modes,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_helper_move_panel_connectors_to_head
make[3]: *** [/usr/src/linux-5.1.6-1.g7375706/scripts/Makefile.build:277: /tmp/selfgz1777/NVIDIA-Linux-x86_64-418.52.10/kernel/nvidia-drm/nvidia-drm-connector.o] Error 1

[…]

ERROR: The nvidia-uvm kernel module was not created.
ERROR: The nvidia-uvm kernel module failed to build. This kernel module is required for the proper operation of CUDA. If you do not need to use CUDA, you can try to install this driver package again with the ‘–no-unified-memory’ option.

Can confirm I’m getting same error on Kernel 5.1.7 with driver 418.52.10. Same as OP, I Managed to get around the issue with the ‘–no-unified-memory’ launch parameter.

The driver worked fine with my old kernel 5.0.12.

System Specs:
AMD Ryzen 1700X
Debian 9 (fully updated up to 9.8)
GTX 1060 GB

Both kernels were built personally from source, Aside from the kernel I haven’t installed, removed or upgraded any other packages.

Someone can tell me if are important for graphics card disable CUDA with these switches?:

–no-unified-memory --no-drm

Is my workaround to install the Vulkan Beta Driver.

I’ve tried out the recently released driver 418.52.14 since it lists ‘Improved compatibility with recently released Linux kernels’ in the changelog, the situation got worse however. With Kernel 5.1.15 these drivers refuse to compile even when passing both --no-drm and --no-unified-memory. The 418.52.10 compiles fine on the same Kernel.

As a last test I tried Kernel 5.0.21 + 418.52.14 and the driver builds fine with just --no-drm.

Until the situation improves I suggest sticking to Kernel 5.0.x to continue using bleeding edge GPU drivers.

Hello:

I try the kernel 5.1.14 + 418.52.14 and works well wihout any switch.

I read that the improvement in 418.52.14 is for 5.2 series (in Release Candidate 7 yet).