NVIDIA_kernel with gcc 3.2 based linux kernel
Since installing a new redhat beta, I've found myself left with the stock XFree86 nvidia driver.
This is due to NVidia releasing a binary-only version of their kernel module which was compiled under something less than gcc 3.2. Gcc 3.2 introduces a slew of changes, the most notable one is that it isn't backwards compatible with pre 3.2 compiled code. So, unless someone privledged with the source code recompiles the driver, I'm stuck.
Anyone have an idea when we can expect an updated driver?
That backwards compatibility that doesn't work is mainly for C++. Did you already try to compile the nvidia kernel module from "source"? (it is partly opensource mainly the "glue")
After doing a rpmbuild --rebuild NVIDIA_kernel-1.0-2960.src.rpm, I try to install it:
[root@localhost i386]$ rpm -ivh NVIDIA_kernel-1.0-2960.i386.rpm
Preparing... ########################################### [100%]
1:NVIDIA_kernel ########################################### [100%]
/lib/modules/2.4.18-11/kernel/drivers/video/NVdriver: The module you are trying to load (/lib/modules/2.4.18-11/kernel/drivers/video/NVdriver) is compiled with a gcc version 2 compiler, while the kernel you are running is compiled with a gcc version 3 compiler. This is known to not work.
/lib/modules/2.4.18-11/kernel/drivers/video/NVdriver: insmod /lib/modules/2.4.18-11/kernel/drivers/video/NVdriver failed
/lib/modules/2.4.18-11/kernel/drivers/video/NVdriver: insmod NVdriver failed
Compiling from the source does the same thing.
The 2.4.18-11 kernel is actually something like 2.4.19-pre10-ac2, which ships with the (null) redhat beta. I imagine the 2.4.19 will be the basis for the next public offering from redhat and will be compiled with gcc 3.2 as well.
do a /cat/proc/version, and look at the compiler version, redhat is know to use
a different compiler for kernel compiles than the installed system compiler.
if that's the case, compile the kernel on your own, or compile the driver with the
version you got from the command.
do a websearch for gcc 2.96 redhat and kgcc, even linus (who says almost nothing about
distributions) was, errm "not amused")
Please re-read my previous post.. The kernel IS compiled with gcc 3.2. This is not a case of regarding the 2.96.x compiler issues.
I know I could just reinstall an older version of gcc, recompile the kernel, and get on with my life, but the fact is that things are moving forward. Vendors are retooling their OS's with more current technology. For vendors who supply binary-only software, they could get caught up in the mix of needing to revamp their product as well.
I read all the post above more than just carefulle, but havn't seen the place
which says the kernel was compiled with gcc 3.2. (not looked at the rpm sequence) :D
but have you compiled the driver as Thunderbird suggested?
You will have to wait for nvidia to release something new I think. Parts of the kernel module are gcc 2.x that causes the problem. Normally you don't compile a kernel using gcc 3.x. It doesn't really create faster C code than 2.x. For c++ code it is a big improvement.
Thunderbird: it compiles with gcc 3.2 without a hassle, just confirmed it on my own machine.
my last setup was completely gcc 3.x build, but one of my harddisks blew off, before I had
any chance to make a backup :(
I think the solution to the problem might be very easy then. I think he re-used the nvidia kernel module source of a kernel module he compiled for his previous kernel. When redoing make in the dir something like "make clean" doesn't happen. To really recompile the kernel module you should remove all object files (.o files) and the NVdriver and another file (don't know the name by head).
I thought that also, _but_ he did a rpm build... seems that redhat still ships with
different compilers. rpm --rebuild _should_ use just the gcc in the path.....
maybe it would work if he would "export CC="gcc -V 3.2" prior the build
as I did, because my default compiler is still 2.95.x
_redhat_ grrr (without running into a flame war, I hope)
I agree that it will compile just fine. Note that nvidia supplies a file called Module-nvkernel in their srpm and tgz files. This is their binary kernel module, and is not recompilable by the end user. Like thunderbird said, the opensource part of the driver is the 'glue', not the guts.
To see the error I'm getting, compile your kernel with gcc3.2, install it, and try to load the binary nvidia module. You'll get the same error message I posted above. Or, you could install the latest redhat beta called (null) and have an identical install base to what I'm using. (null) will probably be released as Redhat 8.0 in the coming month or two.
All of my work is being done with a freshly installed system and newly downloaded files. There isn't a chance of a tainted build here from leftover files.
Further evidence of the compiler version:
root@localhost # rpm -qa|grep gcc
root@localhost # gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 3.2 (Red Hat Linux Rawhide 3.2-1)
To catch other possible questions, cc is symlinked to gcc by default and there is no kgcc.
|All times are GMT -5. The time now is 10:10 PM.|
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2014, nV News.