No, that isn't the problem. My kernel was compiled with gcc 3.2, and the nVidia drivers work wonderfully.
You have to install from either .srpm or .tar.gz (both include some binary bits of the driver, these are the parts I assume you were referencing?), but it works just fine!
And nVidia still hasn't (AFAIK) released their source. What you get when you download the .tar.gz drivers is the following:
[list=1][*]The (binary) low-level interface to the card, that runs in kernel mode (the name of this file is Module-nvkernel, BTW, in case anyone cares
).[*]The source code that glues #1 to the actual, running kernel. This is the part that's extremely dependent on which kernel version is running (and what compiler was used on it, and what options were selected in the kernel configuration, and so on).[*]The binary libGL.so, libGLcore.so, nvidia_drv.o (the X driver), and libglx.so (the X interface to GL). And some documentation and such.[/list=1]
#1 and #2 are part of NVIDIA_kernel, and #3 comes packaged as NVIDIA_GLX. For nVidia's code to be integrated into the kernel tree, the kernel developers would need the full source to #1 and #2, and nobody but nVidia has that.
In XF86Config-4, commenting Load "glx"
and changing Driver "nvidia"
to Driver "vesa"
should work for low resolutions anyway. You'd get a display at least. You can also try Driver "nv"
to see if you can get any higher color depths or resolutions (but that driver won't work with GF4 series cards, only GF3 and below).