NVIDIA – Beta Driver 378.09 – Still Broken with Kernel 4.10
New beta driver 378.09 has been released, and details are here: http://www.nvidia.com/download/driverResults.aspx/114232/en-us
The driver compiles OK with Kernel 4.9.4, but fails to compile with 4.10-rc4, with different errors from 375.26, as some of the code base has changed..
...................... CC [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-p2p.o CC [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c: In function ‘nvidia_cpu_callback’: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:213:14: error: ‘CPU_DOWN_FAILED’ undeclared (first use in this function) case CPU_DOWN_FAILED: ^~~~~~~~~~~~~~~ /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:213:14: note: each undeclared identifier is reported only once for each function it appears in /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:220:14: error: ‘CPU_DOWN_PREPARE’ undeclared (first use in this function) case CPU_DOWN_PREPARE: ^~~~~~~~~~~~~~~~ In file included from /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:15:0: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c: In function ‘nv_init_pat_support’: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/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 ^ /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:258:17: note: in expansion of macro ‘register_hotcpu_notifier’ if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0) ^~~~~~~~~~~~~~~~~~~~~~~~ /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c: In function ‘nv_teardown_pat_support’: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/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 ^ /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/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 /usr/src/linux-4.10-rc4/scripts/Makefile.build:293: recipe for target '/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.o' failed make[3]: *** [/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.o] Error 1 /usr/src/linux-4.10-rc4/Makefile:1490: recipe for target '_module_/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel' failed make[2]: *** [_module_/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel] Error 2 make[2]: Leaving directory '/usr/src/linux-4.10-rc4' Makefile:150: recipe for target 'sub-make' failed make[1]: *** [sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-4.10-rc4' Makefile:81: recipe for target 'modules' failed make: *** [modules] Error 2
And.. as expected, the patch for 375.26 does not work, as some of the code, headers, etc. are different, or files no longer exist:
................. patching file a/kernel/common/inc/nv-mm.h Hunk #1 FAILED at 83. 1 out of 1 hunk FAILED -- saving rejects to file a/kernel/common/inc/nv-mm.h.rej .................. patching file a/kernel/nvidia-drm/nvidia-drm-modeset.c Hunk #1 succeeded at 78 (offset 9 lines). Hunk #2 FAILED at 644. Hunk #3 FAILED at 982. 2 out of 3 hunks FAILED -- saving rejects to file a/kernel/nvidia-drm/nvidia-drm-modeset.c.rej .......................... patching file a/kernel/nvidia-uvm/uvm8.c Hunk #1 FAILED at 101. Hunk #2 FAILED at 315. 2 out of 2 hunks FAILED -- saving rejects to file a/kernel/nvidia-uvm/uvm8.c.rej patching file a/kernel/nvidia-uvm/uvm8_test.c can't find file to patch at input line 342 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff -ur a/kernel/nvidia-uvm/uvm_lite.c b/kernel/nvidia-uvm/uvm_lite.c ...........................
So, for the time being, stay with 375.26 (patched) on 4.10-rc…
Robert Gadsdon. January 18, 2017.
Updated patchset from 375 for 4.10-rc4, hotplug workaround removed, feel free to test.
https://devtalk.nvidia.com/default/topic/988958/linux/-patch-378-09-4-10-0-rc4-patches/
updated the thread, hotplug workaround still required.
I kinda wanna fix it but I don’t use hibernation so there is little incentive for me to do so.
Has anybody tried to use patched drivers with hibernation/suspend? Does it crash upon restoring state as I suspect it might?