[ATrpms-users] Re: Quake3 Broken After nVidia Upgrade

Joe handleyj at cloud9.net
Fri Jul 16 19:05:32 CEST 2004


So I tried uninstalling the ATrpms nvidia packages but I couldn't remove 
the package:

[root at homer root]$ rpm -e nvidia-graphics-libs-1.0_5336-50.rhfc1.at
error: Failed dependencies:
        libXvMCNVIDIA_dynamic.so.1 is needed by (installed) 
mplayer-1.0-33_pre4.rhfc1.at
        libXvMCNVIDIA_dynamic.so.1(XVMCNVIDIA) is needed by (installed) 
mplayer-1.0-33_pre4.rhfc1.at



So then I tried installing from the nvidia installer for 6106:


[root at homer root]$./NVIDIA-Linux-x86-1.0-6106-pkg1.run


  WARNING:
           Your kernel was configured to include rivafb support as
           a loadable kernel module.

           The rivafb driver conflicts with the NVIDIA driver; the
           NVIDIA kernel module will still be built and installed,
           but be aware that the NVIDIA driver will not be able to
           function properly if the rivafb module is loaded!


  ERROR: Unable to load the kernel module 'nvidia.o'.  This is most 
likely because the kernel module was built using the wrong kernel source 
files.  Please make sure you have installed the kernel source files for 
your kernel; on Red Hat Linux systems, for example, be sure you have the 
'kernel-source' rpm installed.  If you know the correct kernel source 
files are installed, you may specify the kernel source path with the 
'--kernel-source-path'  commandline option.

[root at homer root]$ rpm -qa | grep kernel
kernel-smp-2.4.22-1.2188.nptl_48.rhfc1.at
kernel-module-lm_sensors-2.4.22-1.2188.nptl_48.rhfc1.atsmp-2.8.7-0_32.rhfc1.at
kernel-source-2.4.22-1.2188.nptl_48.rhfc1.at
kernel-module-lm_sensors-2.4.22-1.2197.nptl_51.rhfc1.atsmp-2.8.7-0_32.rhfc1.at
kernel-2.4.22-1.2188.nptl_48.rhfc1.at
kernel-smp-2.4.22-1.2197.nptl_51.rhfc1.at
kernel-module-lm_sensors-2.4.22-1.2188.nptl_48.rhfc1.at-2.8.7-0_32.rhfc1.at
kernel-utils-2.4-9.1.101.fedora
kernel-source-2.4.22-1.2197.nptl_51.rhfc1.at

[root at homer root]$ rpm -e kernel-smp-2.4.22-1.2188.nptl_48.rhfc1.at 
kernel-module-lm_sensors-2.4.22-1.2188.nptl_48.rhfc1.atsmp-2.8.7-0_32.rhfc1.at 
kernel-source-2.4.22-1.2188.nptl_48.rhfc1.at 
kernel-2.4.22-1.2188.nptl_48.rhfc1.at 
kernel-module-lm_sensors-2.4.22-1.2188.nptl_48.rhfc1.at-2.8.7-0_32.rhfc1.at

[root at homer root]$ rpm -qa | grep kernel
kernel-module-lm_sensors-2.4.22-1.2197.nptl_51.rhfc1.atsmp-2.8.7-0_32.rhfc1.at
kernel-smp-2.4.22-1.2197.nptl_51.rhfc1.at
kernel-utils-2.4-9.1.101.fedora
kernel-source-2.4.22-1.2197.nptl_51.rhfc1.at


But it actually looks like it compiled correctly (see the attached 
"nvidia-installer.log" file).  But it gives errors about the rivafb 
module being loaded.  But when I do lsmod, I don't see the rivafb module 
in the list.

So I re-installed the two ATrpms drivers (5336 and 6106).  But now only 
the 5336 version works.  Here is the output:

[root at homer root]$ nvidia-graphics-switch 6106
NVRM: pci_request_regions failed, aborting
NVRM: the NVIDIA probe routine was not called for 1 device(s)!!
NVRM: no devices probed, aborting!
NVRM: this often occurs when rivafb is loaded and claims the device's 
resources.
NVRM: try removing the rivafb module (or reconfiguring your kernel to remove
NVRM: rivafb support) and then try loading the NVIDIA kernel module again.

[root at homer root]$ nvidia-graphics-switch 5336
0: nvidia: loading NVIDIA Linux x86 NVIDIA Kernel Module  1.0-5336  Wed 
Jan 14 18:29:26 PST 2004

[root at homer root]$ lsmod
Module                  Size  Used by    Tainted: P
nvidia-1_0-5336      2126376   4
loop                   12216   0  (unused)
emu10k1                71880   3  (autoclean)
sound                  75564   0  (autoclean) [emu10k1]
ac97_codec             17004   0  (autoclean) [emu10k1]
soundcore               7044   7  (autoclean) [emu10k1 sound]
agpgart                56740   3  (autoclean)
it87                   11032   0  (unused)
i2c-proc                8052   0  [it87]
i2c-isa                 1332   0  (unused)
i2c-core               21636   0  [it87 i2c-proc i2c-isa]
lp                      8772   0  (autoclean)
parport                39104   0  (autoclean) [lp]
autofs4                15448   0  (autoclean) (unused)
8139too                17384   1
mii                     4140   0  [8139too]
floppy                 58300   0  (autoclean)
sg                     36428   0  (autoclean)
sr_mod                 17432   0  (autoclean)
microcode               4768   0  (autoclean)
ide-scsi               12240   0
ide-cd                 34560   0
cdrom                  35072   0  [sr_mod ide-cd]
ohci1394               29576   0  (unused)
ieee1394              208260   0  [ohci1394]
keybdev                 2688   0  (unused)
mousedev                5464   1
hid                    23972   0  (unused)
input                   6240   0  [keybdev mousedev hid]
ehci-hcd               20776   0  (unused)
usb-uhci               27308   0  (unused)
usbcore                82592   1  [hid ehci-hcd usb-uhci]
ext3                   93256   1
jbd                    55952   1  [ext3]
raid1                  15948   3
ata_piix                4808   6
libata                 36036   0  [ata_piix]
sd_mod                 13388  12
scsi_mod              116136   5  [sg sr_mod ide-scsi ata_piix libata 
sd_mod]


help....

Sigh...sorry for all the trouble...but thanks for all the help!

-joe





Joe wrote:

> Thanks Axel,
>
> But this still doesn't work for me.  I deleted the libGL entries from 
> the /usr/lib/tls directory.
>
> And when I use nvidia-graphics-switch, the lines in ld.so.conf get 
> replaced properly.  Like right now I'm using 5336 and my ld.so.conf 
> file looks like this:
>
> /usr/lib/nvidia-graphics-1.0-5336
> /usr/X11R6/lib/nvidia-graphics-1.0-5336
> /usr/X11R6/lib
> /usr/lib/sane
> /usr/lib/mysql
> /usr/lib/qt-3.3/lib
>
>
> Here is the output of glxgears:
>
> [root at homer root]$ nvidia-graphics-switch 5336
> 0: nvidia: loading NVIDIA Linux x86 NVIDIA Kernel Module  1.0-5336  
> Wed Jan 14 18:29:26 PST 2004
>
> [root at homer root]$ ldd `which glxgears` | grep libGL
>        libGL.so.1 => /usr/lib/nvidia-graphics-1.0-5336/tls/libGL.so.1 
> (0x00bc1000)
>        libGLcore.so.1 => 
> /usr/lib/nvidia-graphics-1.0-5336/tls/libGLcore.so.1 (0x001ef000)
>
> [root at homer root]$ nvidia-graphics-switch 6106
> NVRM: loading NVIDIA Linux x86 NVIDIA Kernel Module  1.0-6106  Wed Jun 
> 23 08:14:01 PDT 2004
>
> [root at homer root]$ ldd `which glxgears` | grep libGL
>        libGL.so.1 => /usr/X11R6/lib/tls/libGL.so.1 (0x00111000)
>
>
>
> Note that the 5336 reports the correct output, but Quake3 still won't 
> start, and reports the exact same error as before.  The Quake3 
> "wrapper" script doesn't mention anything about over-writing library 
> paths:
>
> #!/bin/sh
> # Needed to make symlinks/shortcuts work.
> # Wrap Quake III binary
> cd "/usr/local/games/quake3"
> ./quake3.x86 $*
> exit $?
>
>
> Here is something interesting from the Quake3 README:
>
> NOTE:  Linux Q3A will try to load "libGL.so" before using other drivers,
> and it will ignore libraries from the quake3/ directory if executed
> with root privilege. This can cause problems if you have a software or
> third party OpenGL driver installed.
>
> You can specifically target e.g. the included 3dfx based Mesa driver,
> by using the following command line:
>
>        quake3 +set r_gldriver libMesaVoodooGL.so.3.2
>
>
> Do you think I could specifically target the nvidia driver with the 
> above command?  If so, what would be the driver file to name?
>
> Thanks for the help!
>
> -joe
>
>
>
> Axel Thimm wrote:
>
>> On Thu, Jul 15, 2004 at 11:25:37AM -0400, Joe wrote:
>>  
>>
>>> Last night I decided to start using the ATrpms for the nvidia 
>>> drivers instead of the nvidia provided installer.  I had been 
>>> running v5336 from nvidia.  Last night I executed these statements:
>>>
>>> apt-get install kernel-module-nvidia-graphics{5336,6106}-`uname -r`
>>> apt-get install nvidia-graphics{5336,6106}
>>> nvidia-graphics-switch 6106
>>>
>>> X came up with no problems.  But when I tried to launch Quake3 I got 
>>> this error:
>>>
>>> ...loading libGL.so: Initializing OpenGL display
>>> ...setting mode 4: 800 600
>>> Using XFree86-VidModeExtension Version 2.2
>>> XFree86-VidModeExtension Activated at 800x600
>>> Using 4/4/4 Color bits, 16 depth, 0 stencil display.
>>> Xlib:  extension "XFree86-DRI" missing on display ":0.0".
>>> GL_RENDERER: Mesa GLX Indirect
>>>
>>> ***********************************************************
>>> You are using software Mesa (no hardware acceleration)!
>>> Driver DLL used: libGL.so
>>> If this is intentional, add
>>>      "+set r_allowSoftwareGL 1"
>>> to the command line when starting the game.
>>> ***********************************************************
>>> ...WARNING: could not set the given mode (4)
>>> Initializing OpenGL display
>>> ...setting mode 3: 640 480
>>> Using XFree86-VidModeExtension Version 2.2
>>> XFree86-VidModeExtension Activated at 640x480
>>> Received signal 11, exiting...
>>>
>>>
>>>
>>> I did a google and came up with this possible solution:
>>>
>>> http://lists.suse.com/archive/suse-linux-e/2002-Mar/3508.html
>>>
>>>
>>> So I went looking for my GL libraries:
>>>
>>> [joe at homer joe]$ cd /usr/lib
>>> [joe at homer lib]$ ll *GL*
>>> lrwxrwxrwx  1 root root 32 Jul 15 00:24 libGL.so -> 
>>> ../../usr/X11R6/lib/libGL.so.1.2
>>> lrwxrwxrwx  1 root root 32 Jul 15 00:24 libGL.so.1 -> 
>>> ../../usr/X11R6/lib/libGL.so.1.2
>>> lrwxrwxrwx  1 root root 33 Mar 26 01:12 libGLU.so -> 
>>> ../../usr/X11R6/lib/libGLU.so.1.3
>>> lrwxrwxrwx  1 root root 33 Mar 26 01:09 libGLU.so.1 -> 
>>> ../../usr/X11R6/lib/libGLU.so.1.3
>>>
>>>
>>> So perhaps these GL libraries are the Mesa ones?
>>>   
>>
>>
>> Yes, they are.
>>
>>  
>>
>>> And it looks like the nvidia GL libraries are:
>>>
>>> /usr/lib/nvidia-graphics-1.0-6106/libGL.so.1.0.6106
>>> /usr/lib/nvidia-graphics-1.0-6106/libGL.so.1
>>> /usr/lib/nvidia-graphics-1.0-6106/libGLcore.so.1.0.6106
>>> /usr/lib/nvidia-graphics-1.0-6106/libGLcore.so.1
>>> /usr/lib/nvidia-graphics-1.0-5336/libGL.so.1.0.5336
>>> /usr/lib/nvidia-graphics-1.0-5336/libGL.so.1
>>> /usr/lib/nvidia-graphics-1.0-5336/libGLcore.so.1.0.5336
>>> /usr/lib/nvidia-graphics-1.0-5336/libGLcore.so.1
>>> /usr/lib/nvidia-graphics-1.0-5336/tls/libGL.so.1.0.5336
>>> /usr/lib/nvidia-graphics-1.0-5336/tls/libGL.so.1
>>> /usr/lib/nvidia-graphics-1.0-5336/tls/libGLcore.so.1.0.5336
>>> /usr/lib/nvidia-graphics-1.0-5336/tls/libGLcore.so.1
>>> /usr/lib/tls/libGLcore.so.1.0.5336
>>> /usr/lib/tls/libGL.so.1.0.5336
>>> /usr/lib/tls/libGL.so.1
>>> /usr/lib/tls/libGLcore.so.1
>>>   
>>
>>
>> The last 4 should not exist! They are from an old manual (?)
>> installation.
>>
>>  
>>
>>> But I'm not really sure which nvidia libraries to link to in the 
>>> proper order to make Quake3 (and probably other GL applications) use 
>>> the nvidia accelerated libraries.
>>>
>>> Lastly, I looked at the code for nvidia-graphics-swicth, and it 
>>> doesn't have anything about GL in it.  I'm not very good at bash 
>>> scripting (grep, sed, awk...ugh) so maybe I missed it.  But wouldn't 
>>> this script have to swap out the GL links when it switches the 
>>> driver files as well?  I'm sure the 5336 GL libraries are not 
>>> compatible with the 6106 drivers, and vis versa.
>>>   
>>
>>
>> The switching from the Mesa libs to the nvidia ones happens very
>> elegantly via /etc/ld.so.conf. The first two lines should look like
>>
>> /usr/lib/nvidia-graphics-1.0-6106
>> /usr/X11R6/lib/nvidia-graphics-1.0-6106
>>
>> and
>>
>> ldd `which glxgears` | grep libGL
>>
>> should return
>>
>>        libGL.so.1 => /usr/lib/nvidia-graphics-1.0-6106/libGL.so.1 
>> (0x003d9000)
>>        libGLcore.so.1 => 
>> /usr/lib/nvidia-graphics-1.0-6106/libGLcore.so.1 (0x04596000)
>>
>> Perhaps quake is modifying the library paths ignoring ld.so.conf?
>>
>> Try testing wioth glxgears to see if you get 3D-accelaration. Also try
>> switching to 5336, perhaps it is a driver issue.
>>  
>>
>
> _______________________________________________
> atrpms-users mailing list
> atrpms-users at atrpms.net
> http://lists.atrpms.net/mailman/listinfo/atrpms-users
>
-------------- next part --------------
nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Fri Jul 16 12:45:46 2004

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
  OpenGL header files     : false
  no questions            : false
  silent                  : false
  X install prefix        : /usr/X11R6
  OpenGL install prefix   : /usr
  Installer install prefix: /usr
  kernel source 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: No)
-> No precompiled kernel interface was found to match your kernel; this means
   that the installer will need to compile a new kernel interface.
-> Kernel source path: '/lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build'
-> Performing cc_version_check with CC="cc".
-> Performing rivafb check.
-> Performing rivafb module check.
WARNING: 
         Your kernel was configured to include rivafb support as
         a loadable kernel module.
         
         The rivafb driver conflicts with the NVIDIA driver; the
         NVIDIA kernel module will still be built and installed,
         but be aware that the NVIDIA driver will not be able to
         function properly if the rivafb module is loaded!
-> 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 module SYSSRC=/lib/modules/2.4.22-1.2197.n
   ptl_51.rhfc1.atsmp/build'...
   
   Your kernel was configured to include rivafb support as
   a loadable kernel module.
   
   The rivafb driver conflicts with the NVIDIA driver; the
   NVIDIA kernel module will still be built and installed,
   but be aware that the NVIDIA driver will not be able to
   function properly if the rivafb module is loaded!
   
   *** Failed rivafb module sanity check, but continuing! ***
   
   echo \#define NV_COMPILER \"`cc -v 2>&1 | tail -n 1`\" > nv_compiler.h
   cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
   arentheses -Wpointer-arith  -Wno-multichar  -Werror -O -fno-common -MD -D__K
   ERNEL__ -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_
   PATCHLEVEL=6106  -DNV_UNIX   -DNV_LINUX   -DNV_INT64_OK   -DNVCPU_X86      -
   DREMAP_PAGE_RANGE_4 -DNV_CHANGE_PAGE_ATTR_PRESENT  -I. -I/lib/modules/2.4.22
   -1.2197.nptl_51.rhfc1.atsmp/build/include -Wno-cast-qual -Wno-error nv.c
   In file included from /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/i
   nclude/linux/vmalloc.h:8,
                    from nv-linux.h:62,
                    from nv.c:14:
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   : In function `bh_kmap':
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   :20: warning: pointer of type `void *' used in arithmetic
   cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
   arentheses -Wpointer-arith  -Wno-multichar  -Werror -O -fno-common -MD -D__K
   ERNEL__ -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_
   PATCHLEVEL=6106  -DNV_UNIX   -DNV_LINUX   -DNV_INT64_OK   -DNVCPU_X86      -
   DREMAP_PAGE_RANGE_4 -DNV_CHANGE_PAGE_ATTR_PRESENT  -I. -I/lib/modules/2.4.22
   -1.2197.nptl_51.rhfc1.atsmp/build/include -Wno-cast-qual -Wno-error os-agp.c
   In file included from /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/i
   nclude/linux/vmalloc.h:8,
                    from nv-linux.h:62,
                    from os-agp.c:24:
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   : In function `bh_kmap':
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   :20: warning: pointer of type `void *' used in arithmetic
   cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
   arentheses -Wpointer-arith  -Wno-multichar  -Werror -O -fno-common -MD -D__K
   ERNEL__ -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_
   PATCHLEVEL=6106  -DNV_UNIX   -DNV_LINUX   -DNV_INT64_OK   -DNVCPU_X86      -
   DREMAP_PAGE_RANGE_4 -DNV_CHANGE_PAGE_ATTR_PRESENT  -I. -I/lib/modules/2.4.22
   -1.2197.nptl_51.rhfc1.atsmp/build/include -Wno-cast-qual -Wno-error os-inter
   face.c
   In file included from /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/i
   nclude/linux/vmalloc.h:8,
                    from nv-linux.h:62,
                    from os-interface.c:26:
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   : In function `bh_kmap':
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   :20: warning: pointer of type `void *' used in arithmetic
   cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wp
   arentheses -Wpointer-arith  -Wno-multichar  -Werror -O -fno-common -MD -D__K
   ERNEL__ -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_
   PATCHLEVEL=6106  -DNV_UNIX   -DNV_LINUX   -DNV_INT64_OK   -DNVCPU_X86      -
   DREMAP_PAGE_RANGE_4 -DNV_CHANGE_PAGE_ATTR_PRESENT  -I. -I/lib/modules/2.4.22
   -1.2197.nptl_51.rhfc1.atsmp/build/include -Wno-cast-qual -Wno-error os-regis
   try.c
   In file included from /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/i
   nclude/linux/vmalloc.h:8,
                    from nv-linux.h:62,
                    from os-registry.c:14:
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   : In function `bh_kmap':
   /lib/modules/2.4.22-1.2197.nptl_51.rhfc1.atsmp/build/include/linux/highmem.h
   :20: warning: pointer of type `void *' used in arithmetic
   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.
ERROR: Unable to load the kERROR: Unable to load the kernel module 'nvidia.o'.  This is most likely
       because the kernel module was built using the wrong kernel source files.
       Please make sure you have installed the kernel source files for your
       kernel; on Red Hat Linux systems, for example, be sure you have the
       'kernel-source' rpm installed.  If you know the correct kernel source
       files are installed, you may specify the kernel source path with the
       '--kernel-source-path' commandline option.
-> Kernel module load error: Warning: loading ./usr/src/nv/nvidia.o will taint
   the kernel: non-GPL license - NVIDIA
   See http://www.tux.org/lkml/#export-tainted for information about tainted
   modules
   ./usr/src/nv/nvidia.o: init_module: Device or resource busy
   Hint: insmod errors can be caused by incorrect module parameters, including
   invalid IO or IRQ parameters.
   You may find more information in syslog or the output from dmesg
ERROR: Installation has failed.  Please see the file
       '/var/log/nvidia-installer.log' for details.  You may find suggestions
       on fixing installation problems in the README available on the Linux
       driver download page at www.nvidia.com.



More information about the atrpms-users mailing list