Failed Installed Nvidia With kernel 4.10

Hello everyone,
First of all I have a problem related to installing nvidia driver under ubuntu 16.04 with kernel 4.10.

sudo apt-get update && sudo apt-get upgrade && reboot

#Download Kernel 4.10 (linux-header...all linux-header...amd64 | linux-image...generic)
Wget Http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10/linux-headers-4.10.0-041000_4.10.0-041000.201702191831_all.deb Http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10/linux-headers-4.10.0-041000-generic_4.10.0-041000.201702191831_amd64.deb Http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10/linux-image-4.10.0-041000-generic_4.10.0-041000.201702191831_amd64.deb

#Install kernel
Sudo dpkg -i linux - *. Deb

Reboot

In a TTY console:

Sudo service lightdm stop
Sudo ./Nvidia-....run 
reboot

/var/lib/dkms/nvidia/378.13/build/make.log

DKMS make.log for nvidia-378.13 for kernel 4.10.0-041000rc8-generic (x86_64)
mardi 21 février 2017, 18:08:13 (UTC+0100)
make "CC=cc"  KBUILD_VERBOSE= -C /lib/modules/4.10.0-041000rc8-generic/build M=/var/lib/dkms/nvidia/378.13/build ARCH=x86_64 NV_KERNEL_SOURCES=/lib/modules/4.10.0-041000rc8-generic/build NV_KERNEL_OUTPUT=/lib/modules/4.10.0-041000rc8-generic/build NV_KERNEL_MODULES="nvidia nvidia-uvm nvidia-modeset nvidia-drm" INSTALL_MOD_DIR=kernel/drivers/video modules
make[1]*: on entre dans le répertoire «*/usr/src/linux-headers-4.10.0-041000rc8-generic*»
  SYMLINK /var/lib/dkms/nvidia/378.13/build/nvidia/nv-kernel.o
  SYMLINK /var/lib/dkms/nvidia/378.13/build/nvidia-modeset/nv-modeset-kernel.o
 CONFTEST: INIT_WORK
 CONFTEST: remap_pfn_range
 CONFTEST: follow_pfn
 CONFTEST: vmap
 CONFTEST: set_pages_uc
 CONFTEST: set_memory_uc
 CONFTEST: change_page_attr
 CONFTEST: set_memory_array_uc
 CONFTEST: pci_get_class
 CONFTEST: pci_choose_state
 CONFTEST: vm_insert_page
 CONFTEST: acpi_device_id
 CONFTEST: acquire_console_sem
 CONFTEST: console_lock
 CONFTEST: kmem_cache_create
 CONFTEST: on_each_cpu
 CONFTEST: smp_call_function
 CONFTEST: acpi_evaluate_integer
 CONFTEST: ioremap_cache
 CONFTEST: ioremap_wc
 CONFTEST: acpi_walk_namespace
 CONFTEST: pci_dma_mapping_error
 CONFTEST: pci_domain_nr
 CONFTEST: sg_alloc_table
 CONFTEST: sg_init_table
 CONFTEST: pci_get_domain_bus_and_slot
 CONFTEST: get_num_physpages
 CONFTEST: efi_enabled
 CONFTEST: proc_create_data
 CONFTEST: pde_data
 CONFTEST: proc_remove
 CONFTEST: pm_vt_switch_required
 CONFTEST: drm_driver_has_set_busid
 CONFTEST: drm_driver_has_gem_prime_res_obj
 CONFTEST: xen_ioemu_inject_msi
 CONFTEST: phys_to_dma
 CONFTEST: get_dma_ops
 CONFTEST: write_cr4
 CONFTEST: of_parse_phandle
 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: 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: i2c_adapter
 CONFTEST: irq_handler_t
 CONFTEST: pm_message_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: 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_fault_has_address
 CONFTEST: vm_ops_fault_removed_vma_arg
 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_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_has_const_mode_cmd_arg
 CONFTEST: drm_master_drop_has_from_release_arg
 CONFTEST: drm_mode_config_funcs_has_atomic_state_alloc
 CONFTEST: dom0_kernel_present
 CONFTEST: nvidia_vgpu_kvm_build
 CONFTEST: drm_available
 CONFTEST: nvidia_grid_build
 CONFTEST: drm_atomic_available
 CONFTEST: drm_atomic_modeset_nonblocking_commit_available
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-frontend.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-instance.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-acpi.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-chrdev.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-gvi.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-dma.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-cray.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-i2c.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-mempool.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-mmap.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-p2p.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-procfs.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-usermap.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-vm.o
  CC [M]  /var/lib/dkms/nvidia/378.13/build/nvidia/nv-vtophys.o

/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c: In function ‘nvidia_cpu_callback’:
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:213:14: error: ‘CPU_DOWN_FAILED’ undeclared (first use in this function)
         case CPU_DOWN_FAILED:
              ^
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:213:14: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:220:14: error: ‘CPU_DOWN_PREPARE’ undeclared (first use in this function)
         case CPU_DOWN_PREPARE:
              ^
In file included from /var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:15:0:
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c: In function ‘nv_init_pat_support’:
/var/lib/dkms/nvidia/378.13/build/common/inc/nv-linux.h:391:34: error: implicit declaration of function ‘register_cpu_notifier’ [-Werror=implicit-function-declaration]
 #define register_hotcpu_notifier register_cpu_notifier
                                  ^
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:258:17: note: in expansion of macro ‘register_hotcpu_notifier’
             if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
                 ^
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c: In function ‘nv_teardown_pat_support’:
/var/lib/dkms/nvidia/378.13/build/common/inc/nv-linux.h:388:36: error: implicit declaration of function ‘unregister_cpu_notifier’ [-Werror=implicit-function-declaration]
 #define unregister_hotcpu_notifier unregister_cpu_notifier
                                    ^
/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:283:9: note: in expansion of macro ‘unregister_hotcpu_notifier’
         unregister_hotcpu_notifier(&nv_hotcpu_nfb);
         ^
cc1: some warnings being treated as errors
scripts/Makefile.build:294*: la recette pour la cible «*/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.o*» a échouée
make[2]: *** [/var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
Makefile:1496*: la recette pour la cible «*_module_/var/lib/dkms/nvidia/378.13/build*» a échouée
make[1]: *** [_module_/var/lib/dkms/nvidia/378.13/build] Erreur 2
make[1]*: on quitte le répertoire «*/usr/src/linux-headers-4.10.0-041000rc8-generic*»
Makefile:81*: la recette pour la cible «*modules*» a échouée
make: *** [modules] Erreur 2

If you would use the search function, you would see, that it’s well known and a crude patch is available.

hello,

i successfull patching !

Infos Patch:

Patch for driver: nvidia-378.09
GIT: https://gist.github.com/tpruzina

Folder: (Very important)

~/Downloads/NVIDIA-Linux-x86_64-378.09/ <= Folder when your Extract (by command)
~/Downloads/NVIDIA-Linux-x86_64-378.09.run
~/Downloads/nvidia-378.09-kernel-4.10-rc4.patch

Downloads + Permission: (French)

cd ~/Downloads
wget https://gist.githubusercontent.com/tpruzina/c8b06270dc08adb6054df449bebfe7e3/raw/f83bee07db9fa1f7faedb376a8ff427d2ee7e5a3/nvidia-378.09-kernel-4.10-rc4.patch
wget http://fr.download.nvidia.com/XFree86/Linux-x86_64/378.09/NVIDIA-Linux-x86_64-378.09.run
sudo chmod +x NVIDIA-Linux-x86_64-378.09.run

Extracted Run: (*.run -x)

./NVIDIA-*.run -x

Apply patch

patch -p0 < ./nvidia-*.patch

My Logs:

patching file NVIDIA-Linux-x86_64-378.09/kernel/common/inc/nv-linux.h
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-p2p.c
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia-drm/nvidia-drm-fence.c
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia-drm/nvidia-drm-gem.c
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia-drm/nvidia-drm-gem.h
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia-drm/nvidia-drm-modeset.c
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia-drm/nvidia-drm-priv.h
patching file NVIDIA-Linux-x86_64-378.09/kernel/nvidia-uvm/uvm8_test.c

Installed: Press CTRl+ALT+F3 (or F4)

Boot on kernel 4.10 (good version to patch Ex: nvidia-378.09-kernel-4.10-rc4.patch is kernel 4.10 RC4)
sudo service lightdm/gdm stop
sudo ./nvidia-installer
sudo servcice lightdm/gdm start
reboot

ubuntu have a proper patch

https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-kmod.git/plain/kernel_4.10.patch

Hello,
I would like to point out that only the Mate interface works with this driver.
Cinnamon, unity and xfce plant

Hello,
for apply patch.

Download pilote (permission + extraction)

wget http://fr.download.nvidia.com/XFree86/Linux-x86_64/375.39/NVIDIA-Linux-x86_64-375.39.run
sudo chmod +x ./NVIDIA-Linux-x86_64-375.39.run
./NVIDIA-Linux-x86_64-375.39.run -x

Download Patch

cd ./NVIDIA-Linux-x86_64-375.39
wget https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-kmod.git/plain/kernel_4.10.patch

Apply patch:

patch -p1 < kernel_4.10.patch

Installation

TTY (CTRL+ALT+F4)
sudo service lightdm/gdm stop
./NVIDIA-Linux-x86_64-375.39/nvidia-install
sudo service lightdm/gdm start
reboot

LOG:

m
arc:~/Bureau/NVIDIA-Linux-x86_64-375.39$ patch -p1 < kernel_4.10.patch
patching file kernel/common/inc/nv-mm.h
patching file kernel/nvidia-drm/nvidia-drm-fence.c
patching file kernel/nvidia-drm/nvidia-drm-gem.h
patching file kernel/nvidia-drm/nvidia-drm-priv.h
patching file kernel/nvidia/nv-pat.c

We are tracking this issue under bug id 1899403

Thanks Drthrax74, it works for me too with fedora 25 workstation kernel-4.10.xxx with nvidia GTX 1050Ti

https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-kmod.git/plain/kernel_4.10.patch is no longer there…

I grabbed:

https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-kmod.git/snapshot/nvidia-kmod-1168d85cdb210e26d2a9aff5970d249e1a328e41.zip

and unzipped it, finding the patch inside.

But, I’m not sure what I’m patching (never done this before). Can you clarify please?

The patch above seems only to be applicable to the 375.39 driver, older drivers seem to use a different structure.