Need More Help From The Linux Gurus...

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
I have tried several times today, without success, to load Nvidia's drivers so that my GeForce4 will work properly with Mandrake 9.0. (At least 9.0 recognizes that I've got a GeForce4. It just won't let me run at anything other than 600x480x8-bit.)

I'm trying to do everything from the command line. I get two error messages.

1. The NVIDIA_GLX rpm installs without a problem but I apparently get a 50% install of the NVIDIA_kernel rpm. The error message says:

Warning!!
libglx.c
libGLcore.a
libGL.so.1.2
The above file(s) possibly belong to a conflicting MESA rpm, or to a previous, stale NVIDIA distribution. They have been removed to xxx.<original File>.RPMSAVE to avoid conflicting with the files contained within this package.

2. When I type in modprobe NVdriver I get the message that NVdriver can't be found.

I've poked around in enough Linux-related forums at different sites today to realize that a lot of people run into the exact same errors. Uhfortunately, I couldn't find any solutions.

One other thing: after I reboot and load the desktop I open a console and type glxgears to check for OpenGL functionality. I get the message:

Xlib: extension "GLX" missing on display ":0.0". Error: couldn't get an RGB Double-buffered visual.

I also read plenty of anecdotal reports about cards like mine (Gainward GeForce4 ti4200, 128MB) running great under Mandrake 9.0. What else do I need to do to join those happy ranks?
 

mcgrath

Member
Apr 2, 2000
32
0
0
mind you, i did this in redhat 7.3

you need to install the kernel before the glx. also, after you get everything installed, edit the X86config-4 file and remove the lines in the module section:

"load glcore" and "load dri" or similar. and make sure you have "load glx" I tried to probe my card, and it failed to work, so try and not do that.

good luck, its a pain in the ass

mcgrath
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Are you building from the tarballs or with RPM's? Maybe you found a different source, but I don't see Mandrake 9 rpm's on nvidia's page. The older rpm's are probably built on 2.4.18 (I think) and wouldn't work with Mandrake 9.

Also, about glxgears, you won't able to run that until you get the driver installed properly. The stripped-down framebuffer server isn't going to support GL.

edit: Thank you for including error messages.
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
Doesnt mandrake 9 include gcc 3.2 or something? That may be causing problems too. Try the tarballs, my FAQ is supposedly fairly complete.
 

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
Thanks for the replies. Here's a recap of my latest efforts. (FYI: I working primarily from n0cmonkey's excellent FAQ.)

I removed the rpm's and installed nvidia drivers and downloaded the NVIDIA_kernel and NVIDIA_GLX tarballs.

From the command line (as root) i untarred and decompressed NVIDIA_kernel and NVIDIA_GLX and then installed them. (In that order.)

Next I editted the XF86Config-4 file. (Again, as root.) Here's what I have:
--------------------------------------------------------------------------------------------
Section "Device"

Identifier: "GeForce4"
Driver: "nvidia"

End Section

Section "Device"
Identifier ""
Vendor Name: "Unknown"
Brand Name: "Unknown"
Driver: ""

# VideoRam: 131072
# Clock lines:

End Section
-------------------------------------------------------------------------------------------

In the Module section, under DBE I have the following:

Load "/usr/X11R6/lib/modules/extensions/libglx.so"

_________________________________________________________

In the modules.conf section I have the following as the last line:

alias char-major0195 NVdriver

_________________________________________________________

Notes:

1. When I do a clean install of the OS it has to start with Mandrake 8.2. I have to choose an "unlisted" video card and use VGA16 for the server. I can then upgrade to 9.0 by choosing the option to install upgrade packages only.

2. In all my attempts at editting the XF86Config-4 file, I've never seen anything referring to Load "dri" and/or Load "GLcore." (Which is probably not a big deal. I'm just trying to be as comprehensive as possible.)
 

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
Okay, I think I'm making progress. (Must keep telling myself that. :confused: )

I corrected the errors noted above and reinstalled Mandrake 9.0 as an upgrade. I still can't launch X. Here's the error message:

(--) Chipset GeForce4 Ti 4200 found
(II) Loading /usr/X11R6/lib/modules/libvgahw.c
(II) Module vgahw: vendor= "The XFree86 Project"
compiled for 4.0.2, module version = 0.1.0
(**) NVIDIA (0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA (0): Default visual is PseudoColor
(--) NVIDIA (0): Using gamma correction (1.0, 1.0, 1.0)
(--) NVIDIA (0): Linear framebuffer at )xD0000000
(--) NVIDIA (0): MMIO registers at )xDE000000
(EE) NVIDIA (0): Failed to initialize the NV driver kernel module!
(EE) NVIDIA (0): ***Aborting***
(II) Reloading /usr/X11R6/lib/modules/libvgahw.c
(EE) Screen/s found, but none have a usable configuration

Fatal Server Error: no screens found

:disgust:
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
I'm not sure I understand this upgrade business - why is it that you can't just straight out install 9.0?

Anyway, when are you compiling and installing the kernel module? Before or after you upgrade? If you upgrade after installing the module, it will either wipe the module or render it unusable due to the new kernel and librariers. So you should be installing the driver after upgrading.

Do a

ls /lib/modules/2.4.19/video

(Again, assuming that Drake 9.0 runs a 2.4.19 kernel) - that should show NVdriver. If it's not there, that's clearly a problem. If it is there, then there's a problem with the module itself. Like n0c said, 9.0 uses the newest gcc, which could have problems using the precompiled binaries in the driver package.

edit: typo
 

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
I'll give it a shot. Do you want the XF86Config or XF86Config-4 file?
 

pac1085

Diamond Member
Jun 27, 2000
3,456
0
76
Originally posted by: Dan
I'll give it a shot. Do you want the XF86Config or XF86Config-4 file?

Both of em if ya could, might be a problem with the config....when you ran modprobe NVdriver, it worked fine?
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
XF86Config-4 has nothing to with anything these days - you should be editing XF86Config only.
 

pac1085

Diamond Member
Jun 27, 2000
3,456
0
76
Originally posted by: cleverhandle
XF86Config-4 has nothing to with anything these days - you should be editing XF86Config only.

Doesnt mandrake/redhat use both of the files or something? I remember having 2 of them while using redhat.
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
They were included while distros were transitioning to using XFree 4.0.x to make upgrading easier. I'm not sure if XF4.1 even recognizes XF86Config-4, but I'm sure that it is ignored if XF86Config is present.
 

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
I don't know enough about Linux to know how to retrieve a copy of XF86Config and/or XF86Config-4 from the command line. (If I could send it to the printer, I could scan the hard copies and post or e-mail them.)

Everytime I've run modprobe I get the message that NVdriver can't be found.

At this point I'm working with four different tutorials, which all refer to XF86Config-4 but what do I know?

I just can't believe what a pain in the ass this has become. From all I've read online this weekend, something that should be relatively straightforward is, in actualiyt, a major problem. (Okay, end of rant. I just had to blow off a little steam.)
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Don't worry about the XF86Config-4 business for the moment - your error output shows that X is trying to load the nvidia driver, which is all that really matters for now. Do the ls command I mentioned before and tell us the output.
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Originally posted by: cleverhandle
They were included while distros were transitioning to using XFree 4.0.x to make upgrading easier. I'm not sure if XF4.1 even recognizes XF86Config-4, but I'm sure that it is ignored if XF86Config is present.

OK, got this mixed up, but the gist is the same. Here are the details for those interested...

XF86Config-4 was included so that both XF3.x and XF4.x could run on the same machine. XF3.x always looks for XF86Config, while XF4.x will look first for XF86Config-4, and then use XF86Config otherwise (the opposite of what I stated). However, these days distros are solely using XF4.x, so there's not really any need for multiple config files - it's cleaner just to rename XF86Config-4 to XF86Config and stick with it. These kinds of details are up to the distributor to sort out, so some may use XF86Config-4, some may use XF86Config - but with a recent distro, both should be in the correct format for XF4.x.

Sorry for any confusion...
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
It doesn't matter - the first / means that you're specifying an absolute path, not a relative one.
 

manly

Lifer
Jan 25, 2000
13,193
3,977
136
After installing the Nvidia kernel modules, you'll want to run the command (as root)

depmod
 

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
I ran the command from root. Response: no such directory or file.

That means, what? The nvidia kernel is incorrectly installed? The nvdriver module isn't there?

I've got to walk away from this for a little while or I'll go nuts. I'll be back in an hour or so to have at it again. :Q
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
Which means either 1) Mandrake puts its modules in a very, very strange place (which I doubt) or 2) the NVdriver module isn't there (much more likely). If you installed the driver before upgrading, then the upgrade process probably wiped all the old modules and took NVdriver along with it. If you upgraded first, then installed the driver, I don't know. But try a fresh install of the kernel driver tarball at this point and see what happens. You may have to run "depmod -a" after creating the module, but IIRC, the install script should take care of that for you and automatically load the driver into the kernel.
 

manly

Lifer
Jan 25, 2000
13,193
3,977
136
I installed the Nvidia drivers from RPM, but here's a command I would try to see if the kernel module file exists:

manly@p3-800:~> ls /lib/modules/`uname -r`/kernel/drivers/video/NVdriver

Ignore the beginning; that's just my shell prompt. It's possible cleverhandle gave you a bad path.

Speaking of GCC3 are you guys sure that Mandrake 9.0 (and Red Hat Linux 8.0, SuSE Linux 8.1) actually use GCC 3.2 to compile the kernel?
 

cleverhandle

Diamond Member
Dec 17, 2001
3,566
3
81
It's possible cleverhandle gave you a bad path.

I have the nvidia drivers installed from the tarball on my machine, and they live in the path I specified. Perhaps Mandrake has a different path specified in /etc/modules.conf? Or somewhere else? I always thought that /lib/modules/<version>/ was the standard location, since that's what the kernel install scripts use.

Speaking of GCC3 are you guys sure that Mandrake 9.0 (and Red Hat Linux 8.0, SuSE Linux 8.1) actually use GCC 3.2 to compile the kernel?

No, I'm not sure. But it seems unlikely that they would ship a distro with the kernel/libraries compiled under a different gcc than the default system gcc. It would be asking for all kinds of problems if someone decides to compile their own kernel or installs other modules.

 

Dan

Diamond Member
Oct 9, 1999
5,080
0
0
I decided to wipe the slate clean and take it from the top.

I did a clean install of Mandrake 9.0 (no upgrade). I can't get to the KDE desktop because it doesn't detect the video card properly but no matter. Following n0cmonkey's FAQ, I downloaded and untarred NVIDIA_kernel-1.0-2960.tar.gz and NVIDIA_GLX-1.0-2960.tar.gz.

Everything was cool until I did:

cd NVIDIA_kernel
make install

Here's the error message I got:

You appear to be compiling the NV kernel module with a compiler different from the one that was used to compile the running kernel. This may be perfectly fine, but there are cases where this can lead to unexpected behavior and system crashes.

If you know what you are doing and want to override this check, you can do so by setting IGNORE_CC_MISMATCH.

In any other case. set the CC environment variable to the name of the compiler that was used to compile the kernel.

***Failed cc sanity check. Bailing out!***

make: *[gcc-check] error!

So, that's where I'm at now. What next?
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
Try setting the IGNORE_CC_MISMATCH and see if that helps. If it doesnt work, we will have to find out what compiler was used for the kernel.