2016-08-22

Do you use Linux? With a newer NVIDIA card? The 4.7 kernel breaks NVIDIA's binary driver.

Currently, googling doesn't find this data easily, so I thought I'd post it here where an index-crawler might catch it more easily. If you're not very geeky, this post won't make much sense so feel free to pass over it.

If the title made sense to you, here is (a correct-enough version of) the patch you are looking for. Apply this after extracting (-x) the contents of the package, before running ./nvidia-installer in the resulting directory. Otherwise you will have compile errors:

kernel/nvidia-uvm/uvm_linux.h
557,563d556
< static bool radix_tree_empty(struct radix_tree_root *tree)
< {
<     void *dummy;
<     return radix_tree_gang_lookup(tree, &dummy, 0, 1) == 0;
< }
kernel/nvidia-drm/nvidia-drm-gem.c
411c411
<     gem = drm_gem_object_lookup(dev, file, handle);
---
>     gem = drm_gem_object_lookup(file, handle);
kernel/nvidia-drm/nvidia-drm-fb.c
117c117
<     gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
---
>     gem = drm_gem_object_lookup(file, cmd->handles[0]);

Someone else (the topic poster here) did the "hard work" to find the commits to the kernel that necessitated these changes. 3 months later (this week-end), after the periodic kernel upgrade (to 4.7.1-ARCH-1) "broke" my video driver, I tried to install version 367.35 of the NVIDIA driver for my GeForce GTX 770 video card and could not. "devtalk.nvidia.com" was not a place I thought to look first -- maybe next time it will be -- so I posted it on more of a "user" board after I developed it for myself. The moderator of that board sent me on my way.

Hopefully my title will be easier for the next bloke -- and once 4.7 is more widely used, there'll be many of them -- to find -- until NVIDIA issues a new version of their driver for the newer kernels.

Keywords: NVIDIA video driver, Linux 4.7, "Installation has failed.", "You may find suggestions on fixing installation problems in the README available on the Linux driver download page"

No comments: