Getting unresolved symbols? Read this for help.
If you're getting a message about unresolved symbols when trying to insert NVdriver, then this thread is for you.
Unresolved symbols are most often caused by a mismatch between the *running* kernel and your kernel sources. One of the following cases should apply to you:
1) I'm trying to compile the driver from source and getting unresolved symbols!
Your kernel source tree is either for a different kernel, or you've changed your kernel configuration without recompiling. You'll need to fall back to your old config (or just get around to that recompile you haven't done yet) to properly build the driver. If you're using a distribution kernel (if you've never touched your kernel, then you are), then you'll need to make sure that you've got the correct kernel-source package installed. If you have an RPM based system, running
'rpm -qa | grep kernel'
will usually return both the kernel and kernel-source package. Make sure they have the same version string. Some auto-updaters will update your kernel for you, but not your kernel-source package.
Also, some distributions, like Slackware 8.0, shipped unconfigured kernel sources with their kernels. You'll most likely have to configure and recompile your kernel to install the driver.
2) I'm trying to rebuild the NVIDIA_kernel SRPM and i'm getting unresolved symbols!
Same deal as #1 above - your kernel source tree is either for a different kernel, or you've changed your kernel configuration without recompiling. See the rest of #1 for tips.
3) I'm trying to install NVIDIA_kernel-someversion.somearch.rpm, and i'm getting unresolved symbols!
This usually means you're installing the wrong RPM. The first thing you should do is download NVchooser.sh from the driver download page (currently http://www.nvidia.com/view.asp?IO=li...splay_1.0-3123) and run it on your machine. To run it, type
in a terminal window. This will tell you what files you need to download and install. You'll then need to uninstall the old RPM and install the one suggested by NVchooser. If NVchooser suggests the SRPM or source tarballs, then you'll want to grab a copy of the README and head up to #1 above to make sure you're ready to rebuild them.
Note: You CANNOT use an RPM that's not compiled for the exact system you're running. This means that the Mandrake 8.2 RPMs won't work on a Mandrake 9.0 system.
If you've followed the above, read the README (twice, if possible :) ), browsed through old threads in the forum, and decided that none of this applies to you, then please respond to this thread; we'll try our best to get you taken care of.
Ok I have compiled 2.4.19 and replaced my old kernel 2.4.18
(standard kernel tahat is installed with slackware 8.1) and I got this error when I tried to install NVIDIA_kernel-1.0-3123.tar :
So I switched to my old kernel 2.4.18 and installed the driver and it worken fantastic. But then I replaced 2.4.18 kernel with 2.4.19 and I get this error when I try to start kde:
Failed to initialize the NVidia kernel module !
(nvidia script said that it was the right kernel for me)
What does ls -l /lib/modules/2.4.19/build tell you? The rightmost part of the output should be something like "/lib/modules/2.4.19/build -> /usr/src/linux-2.4.19". If the part of this to the right of the arrow isn't actually the base of the 2.4.19 kernel, change it so that it is.
Otherwise, were you running kernel 2.4.19 when you compiled the NVIDIA_kernel .tar.gz package? You have to be running the kernel you're compiling for, most of the time.
Admins, can you sticky this thread?
1. ls -l /lib/modules/2.4.19/build tells me tha no file or directory found. But I do have a /lib/modules/2.4.19 directory just no build in it.
2. I was running kernel 2.4.19 when I compiled it for the second time.
3. I thought this would do the trick: make install SYSINCLUDE=/usr/src/2.4.19 (that's where my kernel 2.4.19 source is)
but I got the same error with this.
The error that I get every time is: unresolved symbols in /lib/modules/2.4.19/video/NVidia
/usr/src/2.4.19? You're sure on that directory name? I guess it works, but it isn't what they're usually called. Oh well, shouldn't be a huge deal.
Try this out:
ln -s /usr/src/2.4.19 build
Then blow away the directory that the NVIDIA_kernel tarball created, and re-decompress it (just a make clean may work, but blowing it away makes absolutely sure it's completely clean). Then do a make install again, still as root.
As long as /lib/modules/2.4.19/build is pointing at the root of the correct, configured (and preferably built, but that's not strictly necessary) kernel source tree, there's no reason you'd need to use SYSINCLUDE.
If you get errors, post them.
thanks everybody !!!!
it works !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:cool:
|All times are GMT -5. The time now is 04:28 AM.|
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2014, nV News.