PDA

View Full Version : Is GCC 3.2.2 Ok to Compile Driver?


MightyPenguin
03-31-03, 09:20 PM
k, simple message here.

Nvidia drivers up to 3xxx work great, 4xxx lock X in a black screen. The first 4xxx driver released left me with the line the resolution was changed to in XFree86.0.log

(II) NVIDIA(0): Setting mode "1280x1024"

This latest driver (the .run one that's supposed to work for all platforms) just dumps header info into the X log file. I'm using Slackware 9.0 which comes with GCC 3.2.2. Is that my problem? I've heard GCC 3.2.2 isn't compatibley with object files created with older GCCs. So since you don't ACTUALLY give the full source of the NVIDIA module, I bet you're just doing some last second linking with existing kernels. Since my kernel was compiled with GCC 3.2.2 (unlike Slackware stock, I recompiled my kernel, and the only extra patch is low-latency). So do you think you could release a version of the NVidia libs that are made with GCC 3.2.2 so that those of us with modern setups don't go mad? Just a guess. Any feedback would be nice.

fyi: I have a Geforce4 Ti440 8x on an Abit KT400 chipset MB. I tried forcing it to use AGP 4x mode, but can't seem to get it to listen to me. Adding entries in modules.conf didn't help. Loading the module by hand on the command line didn't help either (with the AGP 4X command specified).

Here's my module.conf:

alias char-major-195 nvidia
options nvidia NVreg_ReqAGPRate=4

Attached is a working load of your latest 3xxx series driver.

Andy Mecham
03-31-03, 09:22 PM
There shouldn't be any problems with your setup.

If the installer doesn't detect a kernel that it has a precompiled bit for (and we don't have any Slackware kernels), then it rebuilds from source (just like the source tarball).

Can you post what the installer is spitting out?

--andy

MightyPenguin
03-31-03, 09:40 PM
Well, I just do:
"sh NVIDIA-Linux-x86-1.0-4349.run"
as root.
It then tells me there's no tag/lib for my kernel/distribution version and asks do download. Says something about FTP, and then shows me build progress of the kernel module. It then indicates that everything is cool :) It was using the ncurses type interface so I can't just cut and paste the output.

I do have an XFree86.0.log file of a failed load of your latest driver (.run) attached.

Kernel: 2.4.20
Mem: 512 DDR 2700 (333mhz)
Athlon: 1.4ghz (133fsb)
X: 4.3

Andy Mecham
03-31-03, 09:44 PM
That log file has some serious corruption... can you check /var/log/nvidia-installer.log, or run it with --ui=none?

--andy

MightyPenguin
03-31-03, 09:45 PM
And yes, this horrible looking thing is cut and pasted exactly as it is in the file.

-----------Ugly file below :) ----------------

Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86 1.0-4349.............................................. .................................................. ..............................................
[1;48r [0;10m [4l [39;49m [?25l [?1c [39;49m [37m [40m [H [J [30m [42m [43X [45GNVIDIA Software Installer for Unix/Linux [43X [47;2H [0;10;7m [39;49m [37m [40m NVIDIA Software Installer for Unix/Linux www.nvidia.com [0;10m [39;49m [37m [40m [1;35H [30m [42mNVIDIA Accelerated Graphics Driver for Linux-x86 (1.0-4349) [0;10m [39;49m [37m [40m

[37m [44m [126X
Please read the following LICENSE and then select either "Accept" to accept the license and continue with the installation,
[C or select "Do Not Accept" to abort the installation. [73X
[C [126X
[40X [42G [37m [41m Accept [37m [44m [15X [72G [37m [41m [0;10;7m [37m [41mDo Not Accept [0;10m [37m [41m [37m [44m [41X
[C [126X [9;13H [0;10m [39;49m [37m [40mLicense For Customer Use of NVIDIA Software


IMPORTANT NOTICE -- READ CAREFULLY: This License For Customer Use of
NVIDIA Software ("LICENSE") is the agreement which governs use of
the software of NVIDIA Corporation and its subsidiaries ("NVIDIA")
downloadable herefrom, including computer software and associated
printed materials ("SOFTWARE"). By downloading, installing, copying,
or otherwise using the SOFTWARE, you agree to be bound by the terms
of this LICENSE. If you do not agree to the terms of this LICENSE,
do not download the SOFTWARE.

RECITALS

Use of NVIDIA's products requires three elements: the SOFTWARE, the
hardware on a graphics controller board, and a personal computer. The
SOFTWARE is protected by copyright laws and international copyright
treaties, as well as other intellectual property laws and treaties.
The SOFTWARE is not sold, and instead is only licensed for use,
strictly in accordance with this document. The hardware is protected
by various patents, and is sold, but this agreement does not cover
that sale, since it may not necessarily be sold as a package with
the SOFTWARE. This agreement sets forth the terms and conditions
of the SOFTWARE LICENSE only.

1. DEFINITIONS

1.1 Customer. Customer means the entity or individual that
downloads the SOFTWARE.

2. GRANT OF LICENSE

2.1 Rights and Limitations of Grant. NVIDIA hereby grants Customer
the following non-exclusive, non-transferable right to use the
SOFTWARE, with the following limitations:

2.1.1 Rights. Customer may install and use one copy of the SOFTWARE [47;19H [0;10;7m [39;49m [37m [40mLicense [113G Top [0;10m [39;49m [37m [40m [7;46H [0;10;7m [37m [41mAccept [73G [0;10m [37m [41mDo Not Accept [0;10m [39;49m [37m [40m [42G [37m [44m [15X
[37m [41m [0;10;7m [37m [41mAccept [0;10m [37m [41m [53G [0;10m [39;49m [37m [40m [7;42H [37m [41m [0;10;7m [37m [41mAccept [0;10m [37m [41m
[43G [37m [44m [15X [7;52H [0;10m [39;49m [37m [40m [H

[K
[K
[K
[K
[K
[K
[K


[K
[K
[K
[K
[K
[K
[K
[K

[K

[K
[K
[K
[K
[K
[K
[K
[K
[K
[K

[K

[K
[K

[K

[K
[K
[K

[K [47;19H [0;10;7m [39;49m [37m [40mInstaller for Unix/Linux [113Gwww.nvidia.com [8;128H [0;10m [39;49m [37m [40m
[15d [37m [44m [126X
No precompiled kernel interface was found to match your kernel; would you like the installer to attempt to download a kernel
[C interface for your kernel from the NVIDIA ftp site (ftp://download.nvidia.com)? [46X
[C [126X
[52X [54G [37m [41m [0;10;7m [37m [41mYes [0;10m [37m [41m [37m [44m [37m [41m No [37m [44m [53X
[C [126X [19;72H [0;10m [39;49m [37m [40m

Andy Mecham
03-31-03, 11:49 PM
That's /var/log/nvidia-installer.log? You're not doing a 'sh NVIDIA-Linux-x86-1.0-4349.run > filename', are you?

--andy

MightyPenguin
04-01-03, 08:48 AM
Sorry, I didn't find the the filename of the log file on quick examination before.

Here's the real log file:

nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Tue Apr 1 08:44:55 2003

option status:
license pre-accepted : false
update : false
force update : false
expert : false
uninstall : false
driver info : false
no precompiled interface: false
no ncurses color : false
query latest driver ver : false
no OpenGL header files : false
no questions : false
silent : false
XFree86 install prefix : /usr/X11R6
OpenGL install prefix : /usr
Installer install prefix: /usr
kernel include path : (not specified)
kernel install path : (not specified)
proc mount point : /proc
ui : (not specified)
tmpdir : /tmp
ftp site : ftp://download.nvidia.com

Using: nvidia-installer ncurses user interface
-> License accepted.
-> No precompiled kernel interface was found to match your kernel; would you li
ke the installer to attempt to download a kernel interface for your kernel f
rom the NVIDIA ftp site (ftp://download.nvidia.com)? (Answer: Yes)
-> No matching precompiled kernel interface was found on the NVIDIA ftp site;
this means that the installer will need to compile a kernel interface for
your kernel.
-> Kernel include path: '/lib/modules/2.4.20/build/include'
-> Cleaning kernel module build directory.
executing: 'cd ./usr/src/nv; make clean'...
rm -f nv.o os-agp.o os-interface.o os-registry.o nv-linux.o nv_compiler.h *
.d NVdriver nvidia.o
-> Building kernel module:
executing: 'cd ./usr/src/nv; make nvidia.o SYSINCLUDE=/lib/modules/2.4.20/bu
ild/include'...
echo \#define NV_COMPILER \"`cc -v 2>&1 | tail -1`\" > nv_compiler.h
cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
arentheses -Wpointer-arith -Wcast-qual -Wno-multichar -O -MD -D__KERNEL__ -
DMODULE -D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -D_LOOSE_KERNEL_NAMES -D_
_KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVE
L=4349 -DNV_UNIX -DNV_LINUX -DNV_INT64_OK -DNVCPU_X86 -DREMAP_PA
GE_RANGE_4 -I. -I/lib/modules/2.4.20/build/include -Wno-cast-qual nv.c
cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
arentheses -Wpointer-arith -Wcast-qual -Wno-multichar -O -MD -D__KERNEL__ -
DMODULE -D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -D_LOOSE_KERNEL_NAMES -D_
_KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVE
L=4349 -DNV_UNIX -DNV_LINUX -DNV_INT64_OK -DNVCPU_X86 -DREMAP_PA
GE_RANGE_4 -I. -I/lib/modules/2.4.20/build/include -Wno-cast-qual os-agp.c
cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
arentheses -Wpointer-arith -Wcast-qual -Wno-multichar -O -MD -D__KERNEL__ -
DMODULE -D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -D_LOOSE_KERNEL_NAMES -D_
_KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVE
L=4349 -DNV_UNIX -DNV_LINUX -DNV_INT64_OK -DNVCPU_X86 -DREMAP_PA
GE_RANGE_4 -I. -I/lib/modules/2.4.20/build/include -Wno-cast-qual os-interf
ace.c
cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
arentheses -Wpointer-arith -Wcast-qual -Wno-multichar -O -MD -D__KERNEL__ -
DMODULE -D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -D_LOOSE_KERNEL_NAMES -D_
_KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVE
L=4349 -DNV_UNIX -DNV_LINUX -DNV_INT64_OK -DNVCPU_X86 -DREMAP_PA
GE_RANGE_4 -I. -I/lib/modules/2.4.20/build/include -Wno-cast-qual os-regist
ry.c
ld -r -o nv-linux.o nv.o os-agp.o os-interface.o os-registry.o
ld -r -o nvidia.o nv-linux.o nv-kernel.o
-> done.
-> Kernel module compilation complete.
-> Installing classic TLS OpenGL libraries.
-> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86' (1.0-4349):
executing: './usr/src/nv/makedevices.sh'...
executing: '/sbin/ldconfig'...
executing: '/sbin/depmod -aq'...
-> done.
-> Driver file installation is complete.
-> Running post-install sanity check:
-> done.
-> Sanity check passed.
-> Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86
(version: 1.0-4349) is now complete. Please update your XF86Config file as
appropriate; see the file /usr/share/doc/NVIDIA_GLX-1.0/README for details.

Andy Mecham
04-01-03, 09:25 AM
As you said earlier, that all looks fine. Can you post an uncorrupted XFree86.0.log file from a failing run?

--andy

MightyPenguin
04-01-03, 12:53 PM
All the X log files from 4xxx drivers ARE corrupted. That last one is the best of seen.

FYI, my suspicion is that the real problem here is my KT400 chipset motherboard and an NVidia video card that support 8x AGP. The current 2.4.21 branch seems to have a lot of chipset fixes for KT400 based drivers in both AGPgart as well as AGP 8x. So I bet once 2.4.21 is released these issues will go away. Perhaps I should install a pre kernel and see if that helps.

Andy Mecham
04-01-03, 01:27 PM
eek - if files are getting corrupted on your system, then the problem is probably much deeper than the NVIDIA driver.

Let me know how 2.4.21 goes.

--andy

MightyPenguin
04-01-03, 02:01 PM
Personally, I think AGP 4x should be the default for kernels < 2.4.21 and AGP 8x should be disabled on those kernels no matter what the detected motherboard and video card support.