Currently all NVIDIA drivers are incompatible with Linux kernel 3.10.
/usr/src/nvidia-313.30/nv-i2c.c: In function ‘nv_i2c_del_adapter’:
/usr/src/nvidia-313.30/nv-i2c.c:327:14: error: void value not ignored as it ought to be
make[2]: *** [/usr/src/nvidia-313.30/nv-i2c.o] Error 1
make[1]: *** [_module_/usr/src/nvidia-313.30] Error 2
make[1]: Leaving directory `/usr/src/kernels/linux-3.10'
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make: *** [module] Error 1
Please, update them.
I’m talking about:
313.30
319.32
325.08 beta
LTS releases: 304.88
173.14.37
96.43.23 & 71.86.15 (not really necessary - the supported hardware is pretty ancient)
[b]Update: drivers 325.15 are fully compatible with kernel 3.10.
There’s a little incompatibility with kernel 3.11, which can be fixed by applying this patch.[/b]
I played a bit around with the patches.
The nv_i2c file is easy to correct. But the proc* file is tricky. I can just say, that with 3.10 stable kernel release compiling even with patch is not possible with 325 and 319 driver series.
The following patch provides a simple fix:
[url]http://pastebin.com/N0a5KMZa[/url]
It disables the proc fs, but it seems not to be needed anyway (nvidia-settings works fine). I tested it with the nvidia version 295.20.
I have it working with 304.88 (current Debian-testing), after hacking siddly’s patch a little (removed more references to NV_CREATE_PROC_FILE). Seems to work ok (no compile errors, graphics look ok, no bad log entries).
sean64’s patch of 7/10 might have worked (it’s at least very simple, as he says), but patch reports it as incomplete (“stops in the middle of a line”). Don’t know why.
I made a couple of modifications to the above patches in order to really clean up the /proc/driver/nvidia directory, which remained on the way after rmmoding the nvidia module, thus causing oopses at the next modprobe when the module tried to create again its proc directory.
@birdie Totally agree…hope they read some of these posts?
From my installer log with Fedora 3.10.3-300 kernel
([u]the make & prepare comment before the blah blah blah did nothing to fix it[/u])
→ Performing rivafb check.
→ Performing nvidiafb check.
→ Performing Xen check.
→ Cleaning kernel module build directory.
executing: ‘cd ./kernel; make clean’…
→ Building kernel module:
executing: ‘cd ./kernel; make module SYSSRC=/home/ad-non/rpmbuild/BUILD/kernel-3.10.fc19/linux-3.10.3-300.fc19.x86_64 SYSOUT=/home/ad-non/rpmbuild/BUILD/kernel-3.10.fc19/linux-3.10.3-300.fc19.x86_64’…
NVIDIA: calling KBUILD…
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (
echo >&2;
echo >&2 " ERROR: Kernel configuration is invalid.“;
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.”;
echo >&2 " Run ‘make oldconfig && make prepare’ on kernel src to fix it.";
echo >&2 ;
/bin/false)
blah blah blah
~/rpmbuild/BUILD/kernel-3.10.fc19/linux-3.10.3-300.fc19.x86_64/arch/x86/include/asm/uaccess_64.h:62:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (likely(sz == -1 || sz >= n))
^
/tmp/selfgz902/NVIDIA-Linux-x86_64-319.32/kernel/nv-i2c.c: In function ‘nv_i2c_del_adapter’:
/tmp/selfgz902/NVIDIA-Linux-x86_64-319.32/kernel/nv-i2c.c:327:14: error: void value not ignored as it ought to be
osstatus = i2c_del_adapter(pI2cAdapter);
^
make[3]: *** [/tmp/selfgz902/NVIDIA-Linux-x86_64-319.32/kernel/nv-i2c.o] Error 1
make[2]: *** [module/tmp/selfgz902/NVIDIA-Linux-x86_64-319.32/kernel] Error 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: *** [module] Error 1
make: *** [module] Error 2
→ Error.
ERROR: Unable to build the NVIDIA kernel module.