Mailinglist Archive: opensuse (3637 mails)

< Previous Next >
Re: [SLE] NVIDIA drivers (again!) and unresolved symbols
  • From: Mark Hounschell <markh@xxxxxxxxxx>
  • Date: Tue, 29 May 2001 16:25:31 -0400
  • Message-id: <3B1405BB.57672184@xxxxxxxxxx>
Paul Abrahams wrote:
>
> For about the fourth time I've tried to generate and install
> the NVIDIA drivers (newest version, 1251). And each time
> things get worse. The main problem I have is with the
> kernel module. When I attempt to install it I get a
> notification of an unresolved symbol _mmx_memcpy. Until
> the most recent iteration I could still get the server to
> run, albeit defectively. But now it won't run at all -- I
> get the message "failed to initialize the NVdriver kernel
> module". Supposedly that's because I'm using the wrong
> header files, but the generation scripts seem to indicate
> that the correct kernel include files are being summoned.
>
> I've tried doing the install using both the rpm's and the
> tar files, with essentially the same result either way.
> I've also tried specifying the include files explicitly with
> the SYSINCLUDE parameter. The only difference I've found
> between using the rpms and the tarfiles is that the rpms put
> the NVdriver module in
> /lib/modules/2.4.4/kernel/drivers/video while the tarfiles
> put it in /lib/modules/2.4.4/kernel/video, one level higher
> in the tree.

First off these locations for the module are a BAD THING. Nothing
but native kernel modules should go into these locations. They
should be reserved for that only because as of 2.4 kernel the
kernel build process "make modules_install" removes anything
in them. So first off remove all instances of NVdriver in
all locations in /lib/modules/2.4.4/. Use the find command.
Also rmmod any instance of the driver that may be already loaded.
Then modify the Makefile from the tarball. (always use the tarball)

Change this:

ifeq ($(shell if test -d $(KERNDIR)/kernel; then echo yes; fi),yes)
INSTALLDIR=$(KERNDIR)/kernel/video
else
INSTALLDIR=$(KERNDIR)/video
endif

to:
ifeq ($(shell if test -d $(KERNDIR)/misc; then echo yes; fi),yes)
INSTALLDIR=$(KERNDIR)/misc/video
else
INSTALLDIR=$(KERNDIR)/video
endif

Note: KERNDIR is set by the following line:
KERNDIR=/lib/modules/$(shell uname -r)

This will save you headaches if you ever get it to work and need to
recompile
your kernel. Next make sure /usr/src/linux is a link to
/usr/src/linux-2.4.4
and that you are indeed running the kernel that came from
/usr/src/linux.
Are you running the vanilla 2.4.4 kernel? I have 4 boxes with TNT2
chipset
running 2.4.4 kernel(vanilla). I havn't tried the 2.4.4 sources from
Mantels directory so I can't vouch for it. I don't know exactly where
the _mmx_memcopy thing is comming from but I have seen it also. And it
seems that the makefile isn't
finding the correct things it needs from your kernel source tree. Be
sure not
to turn on any agp settings in your kernel if they don't match your
chipset.
If unsure, leave them all off. Also if you have an AMD irongate chipset
make
sure to turn OFF framebuffer support. So once you are sure you have your
kernel
built and running and every thing above has been done then do your make
install
from the nvidia directory and see what happens. Hope it helps and let
us know.

Regards
Mark

< Previous Next >
Follow Ups
References