A week after releasing a new Beta driver 331.17 which didn’t compile by default on kernels >=3.11 Nvidia finally releases support for latest kernels in form of official patches that can be applied to the existing Nvidia driver installers. As of now the support is limited due to changes introduced by the Linux kernel starting with 3.11 and there are downsides in using these latest drivers on recent kernels running on machines with 128GB+ of RAM memory.
The patches work on all current development branches 304, 319 and 325-331 and they are not needed for the latest release of the legacy driver for Geforce FX series which added compatibility with recent kernels with 173.14.37.
Unlike other unofficial patches that needed to be applied against the unpacked Nvidia installer, the official patches can be passed as arguments to the installer and doing that generates a brand new custom installer. It is not clear to me why hasn’t Nvidia released official installers instead, but as they have stated all future driver installers will incorporate these patches.
I tried compiling both the latest driver from the long-lived branch as well as the beta one and had no issues with either. This is what I had to do on my Fedora 19 x86_64 running kernel 3.11 (the instructions are fairly similar for any Linux OS):
download the official Nvidia patches for kernel 3.11+
The patches are available here. Download them to your preferred location e.g. ~/Downloads/NVIDIA/
extract the patches from the tar archive
tar xf get_num_physpages_patches.tar
download the Nvidia drivers, patch them and run the custom installer
For 319.60 (64-bit):
sudo sh NVIDIA-Linux-x86_64-319.60.run --apply-patch get_num_physpages_319.patch
sudo sh NVIDIA-Linux-x86_64-319.60-custom.run
For 331.17 (64-bit):
sudo sh NVIDIA-Linux-x86_64-331.17.run --apply-patch get_num_physpages_325-331.patch
sudo sh NVIDIA-Linux-x86_64-331.17-custom.run
That’s it, both drivers compile fine and register with dkms without issues.