[304.131] Can't install on kernel 4.4

Hello. I can’t install nvidia driver v.304.131.
Kernel module compiles by installer sucessfully, but installer’s log says:

ERROR: Unable to load the kernel module 'nvidia.ko'.
[  326.279952] mtrr: no MTRR for d0000000,10000000 found
[  549.901443] [drm] Initialized drm 1.1.0 20060810
[  549.935507] nvidia: Unknown symbol mtrr_del (err 0)
[  549.935729] nvidia: Unknown symbol mtrr_add (err 0)
[  694.165297] [drm] Initialized drm 1.1.0 20060810
[  694.199259] nvidia: Unknown symbol mtrr_del (err 0)
[  694.199480] nvidia: Unknown symbol mtrr_add (err 0)
ERROR: Installation has failed.

Kernel config excerpt, related to MTRR:


OS is Slackware-current, 32bit.
Full nvidia-installer.log is in attachment.

Patch your kernel or wait for nvidia.

I switch to nouveau for now. Will wait.

PS: attachment is being scanned for hours, weird.

Uploaded nvidia-installer.log’s content to pastebin:

This is true for kernel 4.3 too.
It might be worth noting that the NVIDIA driver does not reference mtrr_add and mtrr_del in the core (binary) driver, but only in the os-specific wrapper, which is distributed in source form and compiled by the installer into the kernel module. This at least for the x86_64 version.
Moreover, the driver already uses PAT and falls-back to use MTRR only if PAT is not available.
Since most modern CPUs (from Pentium III onwards) implement PAT, on these CPUs MTRR appears not to be used, yet the references are compiled in the kernel module, which fails to load.
For x86_64, as far as I can see all 64-bit processors (at least the Intel ones) implement PAT, so MTRR is not used, but still the references are compiled in the module.

Driver 304.131 installation solution on Suse Tumbleweed (may by on Leap 42.1 too)
There was a problem mtrr_dell during installation.
Use the driver NVIDIA-Linux-x86_64-304.131.run.

Have an OS version:

nohostname:~ # cat /etc/SuSE-release
openSUSE 20160520 (x86_64)
VERSION = 20160520
CODENAME = Tumbleweed

nohostname:~ # name -a
Linux nohostname 4.5.4-1-default

  1. Extract the driver
    ./NVIDIA-Linux-x86_64-304.131.run --extract-only

  2. Download the patch nvidia_mtrr_d4_3.patch.gz https://drive.google.com/open?id=0B3TrT1tjS3GCSGx3VGJ3NGFjelk
    Unpack the patch and copy nv-linux.h.diff to ./NVIDIA-Linux-x86_64-304.131/kernel/ folder

  3. Apply patch
    patch -p1 < nv-linux.h.diff

  4. After patched use the makeself.sh script
    makeself.sh ./NVIDIA-Linux-x86_64-304.131 NVIDIA-Linux-x86_64-304.131-patched.run “NVIDIA driver 304.131 patched for k4.3+” ./nvidia-installer

  5. And now we have got a new file
    Ok. Run it. And follow the instructions.

You can also download the finished patched driver NVIDIA-Linux-x86_64-304.131-patched.run.

UP.This problem also appeared after the next update Suse Leap 42.1
The original source is here http://www.murga-linux.com/puppy/viewtopic.php?t=72405&start=75&sid=78a3754de66fece4edd74cb6485d4b32

Hi alex_jd,
could you also supply version 340.96 to linux community please?
Thanks in any case.

I need the 304 64bit linux version to 4.15 kernel. Could someone compile it please?
The 340.107 and 340.108 version makes my lightdm freeze. Some people say the 304 version could help.