NVIDIA 304.* driver on 4.* series kernel (MSI K9N6PGM2 motherboard, NVIDIA GT610 adapter)
Couple of days ago, I've run into a problem with 340.* NVIDIA driver not being able to load on this system -- some issue with IRQ sharing (http://www.linuxquestions.org/questi....php?p=5494905). The previous 304.* series driver(s) worked okay for years on the very same hardware, with 3.* series kernel.
As nobody offered any advice, I've had a notion of trying to install the 304.* driver (304.131, actually). However, while it was building okay, it couldn't load the kernel module in the installation phase. Diagnostics was weird -- mtrr_add and mtrr_del symbols unresolved -- how could it be 'built okay', then? Looking into the 4.4.0 linux kernel source `Documentation` shows that it sort of lies about its MTRR-related symbols. So I've patched two .c files in NVIDIA sources, 'telling' the driver not to expect any MTRR capability from kernel -- by putting `#undef CONFIG_MTRR` lines there.
Guess what? Driver compiled and loaded and X started!
I'm not sure whether my 'solution' wouldn't create problems under the real load, but after all, NVIDIA source expects there MAY be no MTRR on system, so all'll be fine, won't it?
Anyway, I have now a running system to test instead of system crippled.
Comments welcome.
***
The process itself:
1) Download (I used 304.131), run nvidia-installer, interrupt it just after the kernel module source begins to compile. You'll see a new subdir with randomised name, with ~200M of everything.
2) Patch two files in /kernel subdir of subdir mentioned in p.1 -- os-agp.c and os-mtrr.c.
Add the line
#undef CONFIG_MTRR
immediately after the line
#include "nv-linux.h"
3) Re-run nvidia-installer in the p.1 subdir.
UPDATE: So far, 304.131 seems to work fine.
As nobody offered any advice, I've had a notion of trying to install the 304.* driver (304.131, actually). However, while it was building okay, it couldn't load the kernel module in the installation phase. Diagnostics was weird -- mtrr_add and mtrr_del symbols unresolved -- how could it be 'built okay', then? Looking into the 4.4.0 linux kernel source `Documentation` shows that it sort of lies about its MTRR-related symbols. So I've patched two .c files in NVIDIA sources, 'telling' the driver not to expect any MTRR capability from kernel -- by putting `#undef CONFIG_MTRR` lines there.
Guess what? Driver compiled and loaded and X started!
I'm not sure whether my 'solution' wouldn't create problems under the real load, but after all, NVIDIA source expects there MAY be no MTRR on system, so all'll be fine, won't it?
Anyway, I have now a running system to test instead of system crippled.
Comments welcome.
***
The process itself:
1) Download (I used 304.131), run nvidia-installer, interrupt it just after the kernel module source begins to compile. You'll see a new subdir with randomised name, with ~200M of everything.
2) Patch two files in /kernel subdir of subdir mentioned in p.1 -- os-agp.c and os-mtrr.c.
Add the line
#undef CONFIG_MTRR
immediately after the line
#include "nv-linux.h"
3) Re-run nvidia-installer in the p.1 subdir.
UPDATE: So far, 304.131 seems to work fine.
Total Comments 0