A buddy asked me to add that he's also unable to build - Trusty (14.04.5). ... ld -r -o /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-modeset/nv-modeset-interface.o /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-modeset/nvidia-modeset-linux.o LD [M] /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-modeset.o /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c: In function ‘nvidia_drm_lock_user_pages’: /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c:140:5: warning: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [enabled by default] pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dma-mapping.h:10, from include/drm/drmP.h:37, from /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-os-interface.h:32, from /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c:27: include/linux/mm.h:1222:6: note: expected ‘struct page **’ but argument is of type ‘int’ long get_user_pages(struct task_struct *tsk, struct mm_struct *mm, ^ /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c:140:5: warning: passing argument 7 of ‘get_user_pages’ from incompatible pointer type [enabled by default] pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dma-mapping.h:10, from include/drm/drmP.h:37, from /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-os-interface.h:32, from /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c:27: include/linux/mm.h:1222:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’ long get_user_pages(struct task_struct *tsk, struct mm_struct *mm, ^ /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c:140:5: error: too many arguments to function ‘get_user_pages’ pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dma-mapping.h:10, from include/drm/drmP.h:37, from /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-os-interface.h:32, from /tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.c:27: include/linux/mm.h:1222:6: note: declared here long get_user_pages(struct task_struct *tsk, struct mm_struct *mm, ^ make[2]: *** [/tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel/nvidia-drm/nvidia-drm-linux.o] Error 1 make[2]: Target `__build' not remade because of errors. make[1]: *** [_module_/tmp/selfgz3636/NVIDIA-Linux-x86_64-367.35/kernel] Error 2 make[1]: Target `modules' not remade because of errors. make[1]: Leaving directory `/usr/src/linux-headers-4.4.0-143-generic' make: *** [modules] Error 2 ERROR: The nvidia kernel module was not created. ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.