Errors when installing NVIDIA drivers for kernel compiled from source, 4.15-rc1 for Fedora 26

Hi all -

I haven’t had time to upgrade my install to Fedora 27 (that’s on my todo…), but prior to that I went with a basic compile which largely followed instructions at -
https://fedoraproject.org/wiki/BuildingUpstreamKernel

I grabbed the config from rawhide, used that and largely didn’t have any issues with a bog standard compile & installing modules.

Booting up was painless, although being on Threadripper I had to switch to another tty and kicks things up to init 3 (bump the run level) just to stop the errors from the PCI issues messing with a glitching console. I was prompted by the installer though that I couldn’t locate kernel sources, so I pointed it to my local path where I had previously cloned the source repo (git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git) using the --kernel-source-path=/mnt/wdblack/kernel-hacking/linux

Here’s the full error log, there are various compilation errors hmm -

nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Sun Dec  3 22:19:26 2017
installer version: 384.69

PATH: /usr/lib64/ccache:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

nvidia-installer command line:
    ./nvidia-installer
    --kernel-source-path
    /mnt/wdblack/kernel-hacking/linux

Using: nvidia-installer ncurses v6 user interface
-> Detected 32 CPUs online; setting concurrency level to 32.
-> Tagging shared libraries with chcon -t textrel_shlib_t.
-> License accepted.
-> Installing NVIDIA driver version 384.69.
-> There appears to already be a driver installed on your system (version: 384.69).  As part of installing this driver (version: 384.69), the existing driver will be uninstalled.  Are you sure you want to continue? (Answer: Continue installation)
-> Performing CC sanity check with CC="/usr/lib64/ccache/cc".
-> Using the kernel source path '/mnt/wdblack/kernel-hacking/linux' as specified by the '--kernel-source-path' commandline option.
-> Kernel source path: '/mnt/wdblack/kernel-hacking/linux'
-> Kernel output path: '/mnt/wdblack/kernel-hacking/linux'
-> Performing Compiler check.
-> Performing Dom0 check.
-> Performing Xen check.
-> Performing PREEMPT_RT check.
-> Cleaning kernel module build directory.
  executing: 'cd ./kernel; /bin/make -k -j32 clean NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/mnt/wdblack/kernel-hacking/linux" SYSOUT="/mnt/wdblack/kernel-hacking/linux"'...
  rm -f -r conftest
  /bin/make "CC=cc"  KBUILD_VERBOSE= -C /mnt/wdblack/kernel-hacking/linux M=/tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel ARCH=x86_64 NV_KERNEL_SOURCES=/mnt/wdblack/kernel-hacking/linux NV_KERNEL_OUTPUT=/mnt/wdblack/kernel-hacking/linux NV_KERNEL_MODULES="nvidia nvidia-uvm nvidia-modeset nvidia-drm" INSTALL_MOD_DIR=kernel/drivers/video clean
  make[1]: Entering directory '/mnt/wdblack/kernel-hacking/linux'
  make[1]: Leaving directory '/mnt/wdblack/kernel-hacking/linux'
-> Building kernel modules
  executing: 'cd ./kernel; /bin/make -k -j32  NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/mnt/wdblack/kernel-hacking/linux" SYSOUT="/mnt/wdblack/kernel-hacking/linux"'...
  /bin/make "CC=cc"  KBUILD_VERBOSE= -C /mnt/wdblack/kernel-hacking/linux M=/tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel ARCH=x86_64 NV_KERNEL_SOURCES=/mnt/wdblack/kernel-hacking/linux NV_KERNEL_OUTPUT=/mnt/wdblack/kernel-hacking/linux NV_KERNEL_MODULES="nvidia nvidia-uvm nvidia-modeset nvidia-drm" INSTALL_MOD_DIR=kernel/drivers/video modules
  make[1]: Entering directory '/mnt/wdblack/kernel-hacking/linux'
    SYMLINK /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-kernel.o
    SYMLINK /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nv-modeset-kernel.o
    CONFTEST: remap_pfn_range
    CONFTEST: INIT_WORK
    CONFTEST: hash__remap_4k_pfn
    CONFTEST: vmap
    CONFTEST: follow_pfn
    CONFTEST: set_pages_uc
    CONFTEST: set_memory_uc
    CONFTEST: set_memory_array_uc
    CONFTEST: pci_get_class
    CONFTEST: change_page_attr
    CONFTEST: pci_choose_state
    CONFTEST: vm_insert_page
    CONFTEST: acpi_device_id
    CONFTEST: acquire_console_sem
    CONFTEST: kmem_cache_create
    CONFTEST: console_lock
    CONFTEST: on_each_cpu
    CONFTEST: smp_call_function
    CONFTEST: acpi_evaluate_integer
    CONFTEST: ioremap_cache
    CONFTEST: ioremap_wc
    CONFTEST: acpi_walk_namespace
    CONFTEST: pci_domain_nr
    CONFTEST: pci_dma_mapping_error
    CONFTEST: sg_alloc_table
    CONFTEST: pci_get_domain_bus_and_slot
    CONFTEST: sg_init_table
    CONFTEST: get_num_physpages
    CONFTEST: efi_enabled
    CONFTEST: proc_create_data
    CONFTEST: pde_data
    CONFTEST: proc_remove
    CONFTEST: pm_vt_switch_required
    CONFTEST: xen_ioemu_inject_msi
    CONFTEST: phys_to_dma
    CONFTEST: get_dma_ops
    CONFTEST: write_cr4
    CONFTEST: of_get_property
    CONFTEST: of_find_node_by_phandle
    CONFTEST: of_node_to_nid
    CONFTEST: pnv_pci_get_npu_dev
    CONFTEST: for_each_online_node
    CONFTEST: node_end_pfn
    CONFTEST: pci_bus_address
    CONFTEST: pci_stop_and_remove_bus_device
    CONFTEST: pci_remove_bus_device
    CONFTEST: request_threaded_irq
    CONFTEST: register_cpu_notifier
    CONFTEST: cpuhp_setup_state
    CONFTEST: remap_page_range
    CONFTEST: address_space_init_once
    CONFTEST: kbasename
    CONFTEST: fatal_signal_pending
    CONFTEST: list_cut_position
    CONFTEST: vzalloc
    CONFTEST: wait_on_bit_lock_argument_count
    CONFTEST: bitmap_clear
    CONFTEST: usleep_range
    CONFTEST: radix_tree_empty
    CONFTEST: drm_dev_unref
    CONFTEST: drm_reinit_primary_mode_group
    CONFTEST: drm_atomic_set_mode_for_crtc
    CONFTEST: drm_atomic_clean_old_fb
    CONFTEST: get_user_pages_remote
    CONFTEST: drm_gem_object_lookup
    CONFTEST: drm_atomic_state_free
    CONFTEST: drm_driver_has_gem_prime_res_obj
    CONFTEST: is_export_symbol_gpl_of_node_to_nid
    CONFTEST: pm_message_t
    CONFTEST: i2c_adapter
    CONFTEST: irq_handler_t
    CONFTEST: acpi_device_ops
    CONFTEST: acpi_op_remove
    CONFTEST: outer_flush_all
    CONFTEST: proc_dir_entry
    CONFTEST: scatterlist
    CONFTEST: sg_table
    CONFTEST: file_operations
    CONFTEST: vm_operations_struct
    CONFTEST: atomic_long_type
    CONFTEST: pci_save_state
    CONFTEST: file_inode
    CONFTEST: task_struct
    CONFTEST: kuid_t
    CONFTEST: dma_ops
    CONFTEST: dma_map_ops
    CONFTEST: noncoherent_swiotlb_dma_ops
    CONFTEST: vm_fault_present
    CONFTEST: vm_fault_has_address
    CONFTEST: fault_flags
    CONFTEST: atomic64_type
    CONFTEST: address_space
    CONFTEST: backing_dev_info
    CONFTEST: kernel_write
    CONFTEST: strnstr
    CONFTEST: iterate_dir
    CONFTEST: kstrtoull
    CONFTEST: mm_context_t
    CONFTEST: vm_ops_fault_removed_vma_arg
    CONFTEST: pnv_npu2_init_context
    CONFTEST: drm_bus_present
    CONFTEST: drm_bus_has_bus_type
    CONFTEST: drm_bus_has_get_irq
    CONFTEST: drm_bus_has_get_name
    CONFTEST: drm_driver_has_legacy_dev_list
    CONFTEST: drm_driver_has_set_busid
    CONFTEST: drm_crtc_state_has_connectors_changed
    CONFTEST: drm_init_functions_have_name_arg
    CONFTEST: drm_mode_connector_list_update_has_merge_type_bits_arg
    CONFTEST: drm_helper_mode_fill_fb_struct
    CONFTEST: drm_master_drop_has_from_release_arg
    CONFTEST: drm_mode_config_funcs_has_atomic_state_alloc
    CONFTEST: drm_driver_unload_has_int_return_type
    CONFTEST: dom0_kernel_present
    CONFTEST: nvidia_vgpu_kvm_build
    CONFTEST: nvidia_grid_build
    CONFTEST: drm_available
    CONFTEST: drm_atomic_available
    CONFTEST: drm_atomic_modeset_nonblocking_commit_available
    CONFTEST: is_export_symbol_gpl_refcount_inc
    CONFTEST: is_export_symbol_gpl_refcount_dec_and_test
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-frontend.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-instance.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-acpi.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-chrdev.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-cray.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-dma.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-gvi.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-i2c.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-mempool.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-mmap.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-p2p.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-pat.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-procfs.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-usermap.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-vm.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-vtophys.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/os-interface.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/os-mlock.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/os-pci.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/os-registry.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/os-usermap.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-modeset-interface.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-pci-table.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-kthread-q.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-kthread-q-selftest.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv-memdbg.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv_uvm_interface.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nvlink_linux.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_volta_host.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_volta.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_volta_fault_buffer.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_volta_access_counter_buffer.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ats_numa.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu_non_replayable_faults.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu_access_counters.o
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv.c: In function ‘nv_start_rc_timer’:
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv.c:3206:5: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
        init_timer(&nvl->rc_timer);
        ^~~~~~~~~~
        init_timers
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv.c:3207:28: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
        nvl->rc_timer.function = nvidia_rc_timer;
                              ^
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv.c:3208:18: error: ‘struct timer_list’ has no member named ‘data’
        nvl->rc_timer.data = (unsigned long) nvl;
                    ^
  cc1: some warnings being treated as errors
  make[2]: *** [scripts/Makefile.build:310: /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia/nv.o] Error 1
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm_utils.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm_common.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm_linux.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/nvstatus.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/nv-kthread-q.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/nv-kthread-q-selftest.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_tools.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_global.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu_isr.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_procfs.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_space.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu_semaphore.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_mem.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_rm_mem.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_channel.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_lock.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_hal.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_range_tree.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_range_allocator.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_range.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_block.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_range_group.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu_replayable_faults.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_events.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_module.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_mmu.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pte_batch.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_tlb_batch.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_push.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pushbuffer.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_thread_context.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_tracker.o
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ats_numa.c: In function ‘bad_idea_read_string_from_file’:
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ats_numa.c:134:39: warning: passing argument 3 of ‘kernel_read’ makes integer from pointer without a cast [-Wint-conversion]
        read_count = kernel_read(filp, 0, read_buffer, read_buffer_size - 1);
                                          ^~~~~~~~~~~
  In file included from ./include/linux/huge_mm.h:7:0,
                    from ./include/linux/mm.h:462,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv-pgprot.h:17,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv-linux.h:20,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm_linux.h:39,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv_uvm_interface.h:30,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ats_numa.c:24:
  ./include/linux/fs.h:2842:16: note: expected ‘size_t {aka long unsigned int}’ but argument is of type ‘char *’
    extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                  ^~~~~~~~~~~
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ats_numa.c:134:52: warning: passing argument 4 of ‘kernel_read’ makes pointer from integer without a cast [-Wint-conversion]
        read_count = kernel_read(filp, 0, read_buffer, read_buffer_size - 1);
                                                      ^~~~~~~~~~~~~~~~
  In file included from ./include/linux/huge_mm.h:7:0,
                    from ./include/linux/mm.h:462,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv-pgprot.h:17,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv-linux.h:20,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm_linux.h:39,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv_uvm_interface.h:30,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ats_numa.c:24:
  ./include/linux/fs.h:2842:16: note: expected ‘loff_t * {aka long long int *}’ but argument is of type ‘size_t {aka long unsigned int}’
    extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                  ^~~~~~~~~~~
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_kepler.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_kepler_ce.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_kepler_host.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_kepler_mmu.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_maxwell.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_maxwell_host.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pascal.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pascal_ce.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pascal_host.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pascal_mmu.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pascal_fault_buffer.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_policy.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_utils.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_kvmalloc.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pmm_gpu.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_migrate.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_map_external.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_user_channel.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_hmm.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_heuristics.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_thrashing.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_prefetch.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_test_rng.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_range_tree_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_range_allocator_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_gpu_semaphore_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_mem_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_rm_mem_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_page_tree_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_tracker_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_push_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_channel_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_ce_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_lock_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_utils_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_kvmalloc_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_pmm_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_events_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_perf_module_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_get_rm_ptes_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_fault_buffer_flush_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_mmu_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_peer_identity_mappings_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_block_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_range_group_tree_test.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nvidia-modeset-linux.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-drv.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-utils.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-crtc.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-encoder.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-connector.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-gem.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-fb.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-modeset.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-prime-fence.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-linux.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-helper.o
    CC [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nv-pci-table.o
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nvidia-modeset-linux.c: In function ‘nvkms_init_timer’:
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nvidia-modeset-linux.c:591:9: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
            init_timer(&timer->kernel_timer);
            ^~~~~~~~~~
            init_timers
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nvidia-modeset-linux.c:593:38: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
            timer->kernel_timer.function = nvkms_timer_callback;
                                        ^
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nvidia-modeset-linux.c:594:28: error: ‘struct timer_list’ has no member named ‘data’
            timer->kernel_timer.data = (unsigned long) timer;
                              ^
  cc1: some warnings being treated as errors
  make[2]: *** [scripts/Makefile.build:310: /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-modeset/nvidia-modeset-linux.o] Error 1
  In file included from ./arch/x86/include/asm/cpufeature.h:5:0,
                    from ./arch/x86/include/asm/thread_info.h:53,
                    from ./include/linux/thread_info.h:38,
                    from ./arch/x86/include/asm/preempt.h:7,
                    from ./include/linux/preempt.h:81,
                    from ./include/linux/spinlock.h:51,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv-lock.h:16,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/common/inc/nv-linux.h:19,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm_linux.h:39,
                    from /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_block.c:24:
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_block.c: In function ‘block_cpu_fault_locked’:
  ./arch/x86/include/asm/processor.h:812:39: error: implicit declaration of function ‘task_stack_page’; did you mean ‘task_stack_vm_area’? [-Werror=implicit-function-declaration]
    unsigned long __ptr = (unsigned long)task_stack_page(task); \
                                          ^
  ./arch/x86/include/asm/processor.h:886:26: note: in expansion of macro ‘task_pt_regs’
    #define KSTK_EIP(task)  (task_pt_regs(task)->ip)
                            ^~~~~~~~~~~~
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_block.c:8771:41: note: in expansion of macro ‘KSTK_EIP’
                                            KSTK_EIP(current));
                                            ^~~~~~~~
  cc1: some warnings being treated as errors
  make[2]: *** [scripts/Makefile.build:310: /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-uvm/uvm8_va_block.o] Error 1
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-gem.c: In function ‘nvidia_drm_gem_free’:
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-gem.c:106:5: warning: enumeration value ‘NV_DRM_GEM_OBJECT_TYPE_DUMB_BUFFER’ not handled in switch [-Wswitch]
        switch (nv_gem->type)
        ^~~~~~
  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm/nvidia-drm-gem.c:106:5: warning: enumeration value ‘NV_DRM_GEM_OBJECT_TYPE_MEMORY_NVKMS_IMPORTED’ not handled in switch [-Wswitch]
    LD [M]  /tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel/nvidia-drm.o
  make[2]: Target '__build' not remade because of errors.
  make[1]: *** [Makefile:1502: _module_/tmp/selfgz23048/NVIDIA-Linux-x86_64-384.69/kernel] Error 2
  make[1]: Target 'modules' not remade because of errors.
  make[1]: Leaving directory '/mnt/wdblack/kernel-hacking/linux'
  make: *** [Makefile:81: modules] Error 2
-> Error.
ERROR: An error occurred while performing the step: "Building kernel modules". See /var/log/nvidia-installer.log for details.
-> The command `cd ./kernel; /bin/make -k -j32  NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/mnt/wdblack/kernel-hacking/linux" SYSOUT="/mnt/wdblack/kernel-hacking/linux"` failed with the following output:

If anyone has any ideas as to what I’ve missed here, do please let me know - thanks!

cc @gnif @wendell @SgtAwesomesauce

One obvious thing is that I’m trying an older driver - one that was released prior to 4.15-rc1. The blatant pointer-errors and missing struct members seem like a clue to that end?

Yep this is a mess thanks to Nvidia. Idk there is a fix since so much has changed

1 Like

Oh jeez. So not only is there going to be Wayland issues with Nvidia, but Kernel 4.15, which is the most Ryzen and Threadripper friendly, won’t even make the DRM and DKMS modules… I’m glad I’m sticking to a older platform, cause bleeding edge really doesn’t sound nice right now. 4.15 might be a great improvement for Vega card users, but not for Nvidia…

1 Like

Right, thanks for the confirmation. Guess grabbing a Vega card is the next logical step… ha!

Npt patch was accepted to 4.14 as a bug fix. Looks like that’s the best route for now for everyone except Vega users.

3 Likes

Actually, Nvidia proprietary driver users have problems on 4.14. I just tried 4.14.4 and it segfaulted SDDM when it tried to load the Nvidia driver. STAY ON 4.13 if you run Nvidia proprietary drivers lower than 384.98.

1 Like

Oh crap. The stable kernel is now 4.14.4 and Nvidia has no patch to compensate… STAY ON 4.13, Nvidia users!

Edit: …Legacy Nvidia users. (Yeah, looks like a mandatory driver update is required)

I’ve found that KDE Plasma works better with nouveau drivers, and also works with nvidia proprietary drivers. Try it.

I’m assuming those running 4.15 and pulling off GPU pass through are doing that with the nouveau drivers (for host Nvidia cards then?) @wendell??

OT: Some what stuck for parts till early January - won’t be able to get my ‘test’ rig backup and running till then. Just had a Corsair AX860i bite the dust today, taking my pfSense offline for the short-term.

Amazon’s also struggling with order estimates (given the holiday sales volumes) - so I’ll have to hold off some projects I had planned till early next-year.

Yikes. Sorry to hear that. Can you get something quick from Microcenter like a 600W Seasonic Prime of at least 80Plus gold?

I found out that the latest Nvidia 384 drivers work with 4.14.4, but nothing below it works. 4.15 will still require a patch in a newer kernel for the Nvidia drivers to work… It’s to do with a license issue. Nvidia of course doesn’t use GPL and newer kernels like GPL kernel module licenses.

1 Like

Placed an order with Amazon, so fingers crossed it’ll be here prior to the 28th of December (via DHL).

Ohh, thanks for the heads up mate. I’d most likely wait till 4.15 + Nvidia drivers are sorted before running any upgrades on the Threadripper box, since I’m relying on it for some dev/virtualisation (sandbox) type work.