Can't load nvidia driver for a GeForce GTX 650

I installed OpenSuSE 12.3 32-bit and tried to get my GeForce GTX 650
graphics card (device 11c8, rev a1) to accelerate graphics.

First I tried the 1-click installation as described in
https://en.opensuse.org/SDB:NVIDIA_drivers. After that, X could start,
but failed to accelerate graphics:

534.769] (II) LoadModule: “glamoregl”
534.769] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
534.784] (EE) Failed to load /usr/lib/xorg/modules/libglamoregl.so: /usr/lib/xorg/modules/libglamoregl.so: undefined symbol: _glapi_tls_Context
534.784] (II) UnloadModule: “glamoregl”
534.784] (II) Unloading glamoregl
534.784] (EE) Failed to load module “glamoregl” (loader failed, 7)

Apparently this was because the kernel had already auto-updated since
I installed, and the standard nvidia kernel module already didn’t
match the kernel anymore - I’m now running kernel 3.7.10-1.28-desktop.

So I deinstalled all the rpms that the 1-click install had added and
tried the “repository way” as described in
https://en.opensuse.org/SDB:NVIDIA_drivers#The_repository_way. It
reaulted in exact;ly the same problem.

Then I searched the net and got the recommendation to do it the “hard
way” by building the nvidia kernel module myself, as described in
https://en.opensuse.org/SDB:NVIDIA_the_hard_way. I did all that. Now I
still can’t use acceleration; X starts, but all graphics are really
slow (and the screen size is 1280x1024 rather than the 1920x1280 that
would fit my monitor). The server complains:

28.569] (II) LoadModule: "glamoregl"
28.650] (WW) Warning, couldn't open module glamoregl
28.650] (II) UnloadModule: "glamoregl"
28.650] (II) Unloading glamoregl
28.650] (EE) Failed to load module "glamoregl" (module does not exist, 0)


33.556] (EE) open /dev/dri/card0: No such file or directory
33.556] (WW) Falling back to old probe method for modesetting
33.556] (EE) open /dev/dri/card0: No such file or directory
33.556] (II) Loading sub module “fbdevhw”
33.556] (II) LoadModule: “fbdevhw”
33.556] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
33.557] (II) Module fbdevhw: vendor=“X.Org Foundation”
33.557] compiled for 1.13.2, module version = 0.0.2
33.557] ABI class: X.Org Video Driver, version 13.1
33.557] (**) FBDEV(1): claimed PCI slot 0@0:2:0
33.557] (II) FBDEV(1): using default device
33.557] (WW) Falling back to old probe method for vesa
33.557] (EE) Screen 0 deleted because of no matching config section.
33.557] (II) UnloadModule: “modesetting”
33.557] (II) FBDEV(0): Creating default Display subsection in Screen section

The driver version, according to the kernel log, is 331.49:

17.708082] NVRM: loading NVIDIA UNIX x86 Kernel Module 331.49 Wed Feb 12 19:57:37 PST 2014

What am I doing wrong? Is there any other way of getting normal
graphics speed out of this card? I’m not even entirely sure whether I
actually need “3d acceleration” or just ‘regular’ hardware
acceleration - I don’t intend to play any games on this computer, I
just want the UI to usable and play the occasional fullscreen video.

What other options could I try? If everything fails, what other
graphic card is recommended for what I want?

If no 3d games then the nouveau drive should be fine

What I do is install via yast. Add the NVIDIA repo search for nvidia then you want the packages GO3 for that card and be sure that the kernel matches. You most likely have kernel-desktop if in doubt uname -r

I don’t trust the one click

Do you have on-board graphics as well and if so has it been disabled?

The error relating to glamoregl may be misleading here. This may be due to the version of glamor and the version of the Nvidia driver you are using and may not really be an issue.

Is it possible the driver is installed, but desktop effect are turned off? Can you change the screen resolution higher or are higher resolutions not available?

Otherwise, it appears the nvidia driver loaded correctly but let’s check a few things just to be sure. What is the output of running these commands?

# lsmod | grep nvidia
# hwinfo --gfxcard
# nvidia-smi

The first will verify the nvidia module is currently loaded. The second will provide details on the status of nouvea vs the NV driver, and other general information, the third will show the nvidia driver version.

I have on-board graphics, and I disabled it “During power-on self test”, which is the only option the BIOS offers (I took that to mean “disable globally”).

I can’t choose resolutions at all, I always get the fallback VESA 1280x1024. When I run nvidia-settings, it alerts me:
“You do not appear to be using the NVIDIA X driver. Please edit your X configuration file (just run nvidia-xconfig as root), and restart the X server.”

Here’s the output:


foth(users)@linux.site: ~$ lsmod | grep nvidia
nvidia               9665256  0

foth(users)@linux.site: ~$ hwinfo --gfxcard
10: PCI 02.0: 0300 VGA compatible controller (VGA)
  [Created at pci.319]
  Unique ID: _Znp.bn_Uutzzxq8
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x0412 
  SubVendor: pci 0x1458 "Giga-byte Technology"
  SubDevice: pci 0xd000 
  Revision: 0x06
  Memory Range: 0xdb400000-0xdb7fffff (rw,non-prefetchable)
  Memory Range: 0xc0000000-0xcfffffff (ro,non-prefetchable)
  I/O Ports: 0xf000-0xf03f (rw)
  IRQ: 16 (33 events)
  Module Alias: "pci:v00008086d00000412sv00001458sd0000D000bc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=no, avail=yes, need=no, active=unknown

23: PCI 100.0: 0300 VGA compatible controller (VGA)
  [Created at pci.319]
  Unique ID: VCu0.U9PscJdvMz5
  Parent ID: vSkL.3rEhpzAE0V6
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "nVidia VGA compatible controller"
  Vendor: pci 0x10de "nVidia Corporation"
  Device: pci 0x11c8 
  SubVendor: pci 0x1569 "Palit Microsystems Inc."
  SubDevice: pci 0x11c8 
  Revision: 0xa1
  Driver: "nvidia"
  Driver Modules: "nvidia"
  Memory Range: 0xda000000-0xdaffffff (rw,non-prefetchable)
  Memory Range: 0xd0000000-0xd7ffffff (ro,non-prefetchable)
  Memory Range: 0xd8000000-0xd9ffffff (ro,non-prefetchable)
  I/O Ports: 0xe000-0xefff (rw)
  Memory Range: 0xdb000000-0xdb07ffff (ro,non-prefetchable,disabled)
  IRQ: 16 (33 events)
  Module Alias: "pci:v000010DEd000011C8sv00001569sd000011C8bc03sc00i00"
  Driver Info #0:
    Driver Status: nvidiafb is not active
    Driver Activation Cmd: "modprobe nvidiafb"
  Driver Info #1:
    Driver Status: nouveau is not active
    Driver Activation Cmd: "modprobe nouveau"
  Driver Info #2:
    Driver Status: nvidia is active
    Driver Activation Cmd: "modprobe nvidia"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #9 (PCI bridge)

linux:~ # nvidia-smi
Primary display adapter: #10
Sat Mar 29 18:26:39 2014       
+------------------------------------------------------+                       
| NVIDIA-SMI 4.304...   Driver Version: 331.49         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name                     | Bus-Id        Disp.  | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap| Memory-Usage         | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 650          | 0000:01:00.0     N/A |                  N/A |
| 30%   32C  N/A     N/A /  N/A |   1%    5MB / 1023MB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+




Here’s one thing I found poking through my configuration: /etc/drirc seems to list both graphics cards as screen 0! I have no idea whether this is right or wrong, but I’m assuming the worst…

<driconf>
    <device screen="0" driver="i915">
        <application name="Default">
            <option name="vblank_mode" value="0" />
        </application>
    </device>
    <device screen="0" driver="i965">
        <application name="Default">
            <option name="vblank_mode" value="0" />
        </application>
    </device>
    <device screen="0" driver="r300">
        <application name="Default">
            <option name="vblank_mode" value="0" />
            <option name="force_s3tc_enable" value="false" />
            <option name="disable_lowimpact_fallback" value="true" />
        </application>
    </device>
</driconf>

The contents of your /etc/drirc are identical to mine - and interesting to note I don’t have any on board i915 or otherwise at all.

Hummm . . . . the output hwinfo --gfxcard shows “Driver Status: i915 is active”, so it seem though disabled in BIOS the OS is still detecting the on board video. You might try unloading the i915 driver (rmmod i915) and restarting X to see if that works.

If not, the next steps I would take would be to try (from a virtual terminal)

init 3
rmmod i915
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old
nvidia-xconfig
init 5 (if needed, I think nvidia-xconfig might change to 5 and restart X, I forget)

Okay, I tried that, and X fails to start up altogether: no devices
detected, no screens found. This is the X server log file:


  9908.441] 
X.Org X Server 1.13.2
Release Date: 2013-01-24
  9908.441] X Protocol Version 11, Revision 0
  9908.441] Build Operating System: openSUSE SUSE LINUX
  9908.441] Current Operating System: Linux linux.site 3.7.10-1.28-desktop #1 SMP PREEMPT Mon Feb 3 14:11:15 UTC 2014 (c9a2c6c) i686
  9908.441] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.7.10-1.28-desktop root=UUID=21daab65-98e0-4917-a2b6-a61649ee59d7 resume=/dev/disk/by-id/ata-WDC_WD10EZRX-00L4HB0_WD-WCC4J2861366-part1 splash=silent quiet showopts nomodeset
  9908.441] Build Date: 19 December 2013  01:40:42PM
  9908.441]  
  9908.441] Current version of pixman: 0.28.2
  9908.441]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
  9908.441] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
  9908.441] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Mar 29 20:49:40 2014
  9908.442] (==) Using config file: "/etc/X11/xorg.conf"
  9908.442] (==) Using config directory: "/etc/X11/xorg.conf.d"
  9908.442] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
  9908.442] (==) ServerLayout "Layout0"
  9908.442] (**) |-->Screen "Screen0" (0)
  9908.442] (**) |   |-->Monitor "Monitor0"
  9908.442] (**) |   |-->Device "Device0"
  9908.442] (**) |-->Input Device "Keyboard0"
  9908.442] (**) |-->Input Device "Mouse0"
  9908.442] (==) Automatically adding devices
  9908.442] (==) Automatically enabling devices
  9908.442] (==) Automatically adding GPU devices
  9908.442] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
  9908.442]     Entry deleted from font path.
  9908.442] (==) FontPath set to:
    /usr/share/fonts/misc:unscaled,
    /usr/share/fonts/Type1/,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/ghostscript/,
    /usr/share/fonts/cyrillic:unscaled,
    /usr/share/fonts/truetype/,
    built-ins
  9908.442] (==) ModulePath set to "/usr/lib/xorg/modules/updates,/usr/lib/xorg/modules"
  9908.442] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
  9908.442] (WW) Disabling Keyboard0
  9908.442] (WW) Disabling Mouse0
  9908.442] (II) Loader magic: 0x8261620
  9908.442] (II) Module ABI versions:
  9908.442]     X.Org ANSI C Emulation: 0.4
  9908.442]     X.Org Video Driver: 13.1
  9908.442]     X.Org XInput driver : 18.0
  9908.442]     X.Org Server Extension : 7.0
  9908.443] (--) PCI:*(0:0:2:0) 8086:0412:1458:d000 rev 6, Mem @ 0xdb400000/4194304, 0xc0000000/268435456, I/O @ 0x0000f000/64
  9908.443] (--) PCI: (0:1:0:0) 10de:11c8:1569:11c8 rev 161, Mem @ 0xda000000/16777216, 0xd0000000/134217728, 0xd8000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
  9908.443] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
  9908.443] Initializing built-in extension Generic Event Extension
  9908.443] Initializing built-in extension SHAPE
  9908.443] Initializing built-in extension MIT-SHM
  9908.443] Initializing built-in extension XInputExtension
  9908.443] Initializing built-in extension XTEST
  9908.443] Initializing built-in extension BIG-REQUESTS
  9908.443] Initializing built-in extension SYNC
  9908.443] Initializing built-in extension XKEYBOARD
  9908.443] Initializing built-in extension XC-MISC
  9908.443] Initializing built-in extension SECURITY
  9908.443] Initializing built-in extension XINERAMA
  9908.443] Initializing built-in extension XFIXES
  9908.443] Initializing built-in extension RENDER
  9908.443] Initializing built-in extension RANDR
  9908.443] Initializing built-in extension COMPOSITE
  9908.443] Initializing built-in extension DAMAGE
  9908.443] Initializing built-in extension MIT-SCREEN-SAVER
  9908.443] Initializing built-in extension DOUBLE-BUFFER
  9908.443] Initializing built-in extension RECORD
  9908.443] Initializing built-in extension DPMS
  9908.443] Initializing built-in extension X-Resource
  9908.443] Initializing built-in extension XVideo
  9908.443] Initializing built-in extension XVideo-MotionCompensation
  9908.443] Initializing built-in extension XFree86-VidModeExtension
  9908.443] Initializing built-in extension XFree86-DGA
  9908.443] Initializing built-in extension XFree86-DRI
  9908.443] Initializing built-in extension DRI2
  9908.443] (II) "glx" will be loaded by default.
  9908.443] (II) LoadModule: "dri2"
  9908.443] (II) Module "dri2" already built-in
  9908.443] (II) LoadModule: "glamoregl"
  9908.443] (WW) Warning, couldn't open module glamoregl
  9908.443] (II) UnloadModule: "glamoregl"
  9908.443] (II) Unloading glamoregl
  9908.443] (EE) Failed to load module "glamoregl" (module does not exist, 0)
  9908.443] (II) LoadModule: "glx"
  9908.444] (II) Loading /usr/lib/xorg/modules/updates/extensions/libglx.so
  9908.456] (II) Module glx: vendor="NVIDIA Corporation"
  9908.456]     compiled for 4.0.2, module version = 1.0.0
  9908.456]     Module class: X.Org Server Extension
  9908.456] (II) NVIDIA GLX Module  304.119  Fri Jan 17 09:48:10 PST 2014
  9908.456] Loading extension GLX
  9908.456] (II) LoadModule: "nvidia"
  9908.456] (II) Loading /usr/lib/xorg/modules/updates/drivers/nvidia_drv.so
  9908.522] (II) Module nvidia: vendor="NVIDIA Corporation"
  9908.522]     compiled for 4.0.2, module version = 1.0.0
  9908.522]     Module class: X.Org Video Driver
  9908.542] (II) NVIDIA dlloader X Driver  304.119  Fri Jan 17 09:27:59 PST 2014
  9908.542] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
  9908.542] (++) using VT number 7

  9908.542] (EE) No devices detected.
  9908.542] 
Fatal server error:
  9908.542] no screens found
  9908.542] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
  9908.542] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
  9908.542] (EE) 

And this is the xorg.conf that NVidia tried to use (before that I didn’t
have one at all, all info was spread through files in
/etc/X11/xorg.conf.d/):


# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 304.119  (buildmeister@swio-display-x64-rhel04-01)  Fri Jan 17 10:35:08 PST 2014

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


You have a nodeset command in your boot command line, remove that and xorg.conf as well.

That should of course read “nomodeset command”. Sorry.

I’ve already removed the xorg.conf so that I can run X at all (although distorted and without GL support). No I’ve rebooted without ‘nomodeset’:

linux:~ # cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.7.10-1.28-desktop root=UUID=21daab65-98e0-4917-a2b6-a61649ee59d7 resume=/dev/disk/by-id/ata-WDC_WD10EZRX-00L4HB0_WD-WCC4J2861366-part1 splash=silent quiet showopts

That doesn’t seem to have changed anything - the Xorg log is as before, complaining

(EE) open /dev/dri/card0: No such file or directory

Well, it seems to me that this would be an Optimus system (if it’s a laptop, it most certainly is).

In that case the nvidia driver just won’t work.
You would have to use Bumblebee instead.
http://smithfarm-thebrain.blogspot.cz/2013/10/opensuse-131-nvidia-optimus-bumblebee.html

No I don’t think the gtx 650 is an Optimus card, and it’s not a typo as he gives the correct pci-id for it.

Could be a hardware problem. I have had in the past cards arrive DOA.

Also the Intel chip shows up even though it was said that it was turned off in the BIOS. That can’t be good.

Okay, to make a clean breast of it:

  • it’s an off-the shelf pre-built desktop system with some Gigabyte mainboard. Sorry, should have said that.
  • I originally installed using the on-chip graphics card, because I couldn’t use the NVidia card at all except in text mode. I didn’t learn about using ‘nomodeset’ until much later. Then I switched to the separate graphics card when I found my X performance too slow, and tried to load the nvidia driver.

Was that a mistake? How, actually, does the system know, “Your card is a FOOBAR123 model, and it needs kernel module foo-gps2 to run” anyway? Is it stored in /etc somewhere? (I’ve searched, and /etc/drirc is the only place that mentions i915 at all.) In the initrd? (Man, I used to be good at this configuration stuff. But it’s been ten years, and apparently I’ve lost touch completely.)

No, that shouldn’t matter.

But did the nvidia card actually work before you installed the nvidia driver?
Maybe try to uninstall the nvidia driver again (and remove /etc/xorg.conf if it exists) and post your /var/log/Xorg.0.log (upload the complete file to http://susepaste.org/ and post a link).

How, actually, does the system know, “Your card is a FOOBAR123 model, and it needs kernel module foo-gps2 to run” anyway? Is it stored in /etc somewhere? (I’ve searched, and /etc/drirc is the only place that mentions i915 at all.) In the initrd?

No, this is not stored anywhere.
The kernel detects at startup which hardware is present and loads the corresponding drivers. The kernel modules themselves contain the information which hardware they support.

Actually you shouldn’t have to configure anything at all. (you have to manually install the proprietary driver of course, if you want to use it, but even then there should not be any additional configuration necessary)

And forget /etc/drirc, this is some configuration file for Mesa. It is not used at all during boot/X startup.

Yes, it worked once I added nomodeset into the mix, and before I tried to use the proprietary driver - but always in this unsatisfying distorted, slow mode.

So I’ll try to uninstall the proprietary driver, then. (Maybe the nouveau driver is actually enough for my modest goals.) As I understand it, by “doing it the hard way” and running the NVidia-provided script directly as root, I’ve left the safe path of system-provided RPMs, so I can’t back it out via zypper/yast/rpm - how does one remove this driver correctly? I know to restore the /etc/X11/xorg.conf.d/ to its previous state, and to remove the “blacklist nouveau” entry from /etc, but how does one actually remove the nvidia.ko? Simply with rm? Or is there an uninstall option for the vendor script?

OK, but then you only used the generic fbdev or vesa driver.

I would like to see an X log when it should use the nouveau driver (i.e. without nomodeset).
If you don’t get a graphical system at all (or it is unuseable), please reboot to “recovery mode” then (“Advanced Options” in the boot menu) and post /var/log/Xorg.0.log.old.

So I’ll try to uninstall the proprietary driver, then. (Maybe the nouveau driver is actually enough for my modest goals.) As I understand it, by “doing it the hard way” and running the NVidia-provided script directly as root, I’ve left the safe path of system-provided RPMs, so I can’t back it out via zypper/yast/rpm - how does one remove this driver correctly? I know to restore the /etc/X11/xorg.conf.d/ to its previous state, and to remove the “blacklist nouveau” entry from /etc, but how does one actually remove the nvidia.ko? Simply with rm? Or is there an uninstall option for the vendor script?

NVIDIA-Linux-blabla.run --uninstall

or

nvidia-installer --uninstall

Well, I can now no longer run X at all - but I still have the impression of making very slow progress…

Attempt 1:

I disabled the on-chip graphics card in the BIOS (for real this time) and booted without ‘nomodeset’.
X failed to start up at all, saying “Failed to initialize the NVIDIA kernel module”.

At least, according to lsmod, the misleading i915 driver isn’t running
now. Apparently, before this I had only deselected the Intel graphics
during POST; now it’s well and truly disabled.

Attempt 2:

I rebooted with ‘nomodeset’. X still failed to start, with essentially
the same log, saying


    17.749] (II) NVIDIA(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 24/32
    17.749] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
    17.749] (==) NVIDIA(0): RGB weight 888
    17.749] (==) NVIDIA(0): Default visual is TrueColor
    17.749] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
    17.749] (**) NVIDIA(0): Enabling 2D acceleration
    17.749] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
    17.749] (EE) NVIDIA(0):     system's kernel log for additional error messages and
    17.749] (EE) NVIDIA(0):     consult the NVIDIA README for details.
    17.749] (EE) NVIDIA(0):  *** Aborting ***
    17.749] (EE) NVIDIA(0): Failing initialization of X screen 0

It says to look in the system log, so here is the relevant part:


linux kernel:    17.854094] NVRM: API mismatch: the client has the version 304.119, but
linux kernel:    17.854094] NVRM: this kernel module has the version 331.49.  Please
linux kernel:    17.854094] NVRM: make sure that this kernel module and all NVIDIA driver
linux kernel:    17.854094] NVRM: components have the same version.
linux kernel:    17.854099] NVRM: nvidia_frontend_ioctl: minor 255, module->ioctl failed, error -22
linux kdm[591]: X server died during startup
linux kdm[591]: X server for display :0 cannot be started, session disabled

Now, this looks** really** wrong: I’m running version 304 of the NVidia
GLX module, but version 331 of the main driver! Okay, that’s probably
my fault for having tried different install methods, when all the time
the stupid i915 driver prevented the nvidia driver from working in the
first place. Apparently, I got saddled with mismatched versions of it
which now refuse to assemble themselves correctly. How should I go
about getting rid of the old version?

Here’s the result of locating files with those kind of names on my system:


/usr/lib/libcuda.so.304.119
/usr/lib/libnvcuvid.so.304.119
/usr/lib/libnvidia-cfg.so.304.119
/usr/lib/libnvidia-compiler.so.304.119
/usr/lib/libnvidia-glcore.so.304.119
/usr/lib/libnvidia-ml.so.304.119
/usr/lib/libnvidia-opencl.so.304.119
/usr/lib/libnvidia-tls.so.304.119
/usr/lib/libnvidia-wfb.so.304.119
/usr/lib/perl5/vendor_perl/5.16.2/Date/Manip/Offset/off304.pm
/usr/lib/tls/libnvidia-tls.so.304.119
/usr/lib/vdpau/libvdpau_nvidia.so.304.119
/usr/lib/xorg/modules/updates/extensions/libglx.so.304.119
/usr/src/kernel-modules/nvidia-304.119-desktop
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-acpi.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-chrdev.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-cray.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-gvi.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-i2c.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-mempool.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-mlock.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-mmap.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-p2p.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-pat.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-procfs.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-usermap.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-vm.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv-vtophys.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nv.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nvidia.ko.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nvidia.mod.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.nvidia.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.os-agp.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.os-interface.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.os-mtrr.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.os-registry.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.os-smp.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.os-usermap.o.cmd
/usr/src/kernel-modules/nvidia-304.119-desktop/.tmp_versions
/usr/src/kernel-modules/nvidia-304.119-desktop/.tmp_versions/nvidia.mod
/usr/src/kernel-modules/nvidia-304.119-desktop/conftest.h
/usr/src/kernel-modules/nvidia-304.119-desktop/conftest.sh
/usr/src/kernel-modules/nvidia-304.119-desktop/cpuopsys.h
/usr/src/kernel-modules/nvidia-304.119-desktop/dkms.conf
/usr/src/kernel-modules/nvidia-304.119-desktop/gcc-version-check.c
/usr/src/kernel-modules/nvidia-304.119-desktop/g_nvreadme.h
/usr/src/kernel-modules/nvidia-304.119-desktop/Makefile
/usr/src/kernel-modules/nvidia-304.119-desktop/makefile
/usr/src/kernel-modules/nvidia-304.119-desktop/Makefile.kbuild
/usr/src/kernel-modules/nvidia-304.119-desktop/Makefile.nvidia
/usr/src/kernel-modules/nvidia-304.119-desktop/Module.supported
/usr/src/kernel-modules/nvidia-304.119-desktop/Module.symvers
/usr/src/kernel-modules/nvidia-304.119-desktop/modules.order
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-acpi.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-acpi.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-chrdev.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-chrdev.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-cray.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-cray.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-gvi.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-gvi.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-i2c.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-i2c.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-kernel.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-linux.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-linux.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-memdbg.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-mempool.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-mempool.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-misc.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-mlock.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-mlock.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-mmap.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-mmap.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-p2p.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-p2p.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-p2p.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-pat.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-pat.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-procfs.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-procfs.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-proto.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-reg.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-usermap.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-usermap.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-vm.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-vm.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-vtophys.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv-vtophys.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nv.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nv.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nverror.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nvidia.ko
/usr/src/kernel-modules/nvidia-304.119-desktop/nvidia.mod.c
/usr/src/kernel-modules/nvidia-304.119-desktop/nvidia.mod.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nvidia.o
/usr/src/kernel-modules/nvidia-304.119-desktop/nvtypes.h
/usr/src/kernel-modules/nvidia-304.119-desktop/nv_compiler.h
/usr/src/kernel-modules/nvidia-304.119-desktop/os-agp.c
/usr/src/kernel-modules/nvidia-304.119-desktop/os-agp.h
/usr/src/kernel-modules/nvidia-304.119-desktop/os-agp.o
/usr/src/kernel-modules/nvidia-304.119-desktop/os-interface.c
/usr/src/kernel-modules/nvidia-304.119-desktop/os-interface.h
/usr/src/kernel-modules/nvidia-304.119-desktop/os-interface.o
/usr/src/kernel-modules/nvidia-304.119-desktop/os-mtrr.c
/usr/src/kernel-modules/nvidia-304.119-desktop/os-mtrr.o
/usr/src/kernel-modules/nvidia-304.119-desktop/os-registry.c
/usr/src/kernel-modules/nvidia-304.119-desktop/os-registry.o
/usr/src/kernel-modules/nvidia-304.119-desktop/os-smp.c
/usr/src/kernel-modules/nvidia-304.119-desktop/os-smp.o
/usr/src/kernel-modules/nvidia-304.119-desktop/os-usermap.c
/usr/src/kernel-modules/nvidia-304.119-desktop/os-usermap.o
/usr/src/kernel-modules/nvidia-304.119-desktop/patches.h
/usr/src/kernel-modules/nvidia-304.119-desktop/rmil.h
/usr/src/kernel-modules/nvidia-304.119-desktop/rmretval.h
/usr/src/kernel-modules/nvidia-304.119-desktop/xapi-sdk.h
/usr/X11R6/lib/libGL.so.304.119
/usr/X11R6/lib/libXvMCNVIDIA.so.304.119


/usr/lib/libcuda.so.331.49
/usr/lib/libEGL.so.331.49
/usr/lib/libGL.so.331.49
/usr/lib/libGLESv1_CM.so.331.49
/usr/lib/libGLESv2.so.331.49
/usr/lib/libnvcuvid.so.331.49
/usr/lib/libnvidia-cfg.so.331.49
/usr/lib/libnvidia-compiler.so.331.49
/usr/lib/libnvidia-eglcore.so.331.49
/usr/lib/libnvidia-encode.so.331.49
/usr/lib/libnvidia-fbc.so.331.49
/usr/lib/libnvidia-glcore.so.331.49
/usr/lib/libnvidia-glsi.so.331.49
/usr/lib/libnvidia-ifr.so.331.49
/usr/lib/libnvidia-ml.so.331.49
/usr/lib/libnvidia-opencl.so.331.49
/usr/lib/libnvidia-tls.so.331.49
/usr/lib/perl5/vendor_perl/5.16.2/Date/Manip/Offset/off331.pm
/usr/lib/tls/libnvidia-tls.so.331.49
/usr/lib/vdpau/libvdpau_nvidia.so.331.49
/usr/lib/xorg/modules/extensions/libglx.so.331.49
/usr/lib/xorg/modules/libnvidia-wfb.so.331.49
/usr/share/nvidia/nvidia-application-profiles-331.49-rc
/usr/src/nvidia-331.49
/usr/src/nvidia-331.49/conftest.sh
/usr/src/nvidia-331.49/cpuopsys.h
/usr/src/nvidia-331.49/dkms.conf
/usr/src/nvidia-331.49/gcc-version-check.c
/usr/src/nvidia-331.49/g_nvreadme.h
/usr/src/nvidia-331.49/Makefile
/usr/src/nvidia-331.49/nv-acpi.c
/usr/src/nvidia-331.49/nv-chrdev.c
/usr/src/nvidia-331.49/nv-cray.c
/usr/src/nvidia-331.49/nv-drm.c
/usr/src/nvidia-331.49/nv-frontend.c
/usr/src/nvidia-331.49/nv-frontend.h
/usr/src/nvidia-331.49/nv-gvi.c
/usr/src/nvidia-331.49/nv-i2c.c
/usr/src/nvidia-331.49/nv-kernel.o
/usr/src/nvidia-331.49/nv-linux.h
/usr/src/nvidia-331.49/nv-memdbg.h
/usr/src/nvidia-331.49/nv-mempool.c
/usr/src/nvidia-331.49/nv-misc.h
/usr/src/nvidia-331.49/nv-mlock.c
/usr/src/nvidia-331.49/nv-mmap.c
/usr/src/nvidia-331.49/nv-p2p.c
/usr/src/nvidia-331.49/nv-p2p.h
/usr/src/nvidia-331.49/nv-pat.c
/usr/src/nvidia-331.49/nv-procfs.c
/usr/src/nvidia-331.49/nv-proto.h
/usr/src/nvidia-331.49/nv-reg.h
/usr/src/nvidia-331.49/nv-usermap.c
/usr/src/nvidia-331.49/nv-vm.c
/usr/src/nvidia-331.49/nv-vtophys.c
/usr/src/nvidia-331.49/nv.c
/usr/src/nvidia-331.49/nv.h
/usr/src/nvidia-331.49/nverror.h
/usr/src/nvidia-331.49/nvgputypes.h
/usr/src/nvidia-331.49/nvidia-modules-common.mk
/usr/src/nvidia-331.49/nvtypes.h
/usr/src/nvidia-331.49/nv_gpu_ops.h
/usr/src/nvidia-331.49/nv_uvm_interface.c
/usr/src/nvidia-331.49/nv_uvm_interface.h
/usr/src/nvidia-331.49/os-interface.c
/usr/src/nvidia-331.49/os-interface.h
/usr/src/nvidia-331.49/os-pci.c
/usr/src/nvidia-331.49/os-registry.c
/usr/src/nvidia-331.49/os-smp.c
/usr/src/nvidia-331.49/os-usermap.c
/usr/src/nvidia-331.49/rmil.h
/usr/src/nvidia-331.49/rmretval.h
/usr/src/nvidia-331.49/uvm
/usr/src/nvidia-331.49/uvm/cla06f.h
/usr/src/nvidia-331.49/uvm/cla06fsubch.h
/usr/src/nvidia-331.49/uvm/cla0b5.h
/usr/src/nvidia-331.49/uvm/conftest.sh
/usr/src/nvidia-331.49/uvm/ctrl2080mc.h
/usr/src/nvidia-331.49/uvm/Makefile
/usr/src/nvidia-331.49/uvm/nvidia_page_migration.c
/usr/src/nvidia-331.49/uvm/nvidia_page_migration.h
/usr/src/nvidia-331.49/uvm/nvidia_page_migration_kepler.c
/usr/src/nvidia-331.49/uvm/nvidia_page_migration_kepler.h
/usr/src/nvidia-331.49/uvm/nvidia_uvm_common.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_common.h
/usr/src/nvidia-331.49/uvm/nvidia_uvm_linux.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_linux.h
/usr/src/nvidia-331.49/uvm/nvidia_uvm_lite.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_lite.h
/usr/src/nvidia-331.49/uvm/nvidia_uvm_lite_api.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_lite_counters.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_lite_counters.h
/usr/src/nvidia-331.49/uvm/nvidia_uvm_lite_events.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_page_cache.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_utils.c
/usr/src/nvidia-331.49/uvm/nvidia_uvm_utils.h
/usr/src/nvidia-331.49/uvm/nvkernel.h
/usr/src/nvidia-331.49/uvm/nvmisc.h
/usr/src/nvidia-331.49/uvm/uvm-debug.h
/usr/src/nvidia-331.49/uvm/uvm.h
/usr/src/nvidia-331.49/uvm/uvmtypes.h
/usr/src/nvidia-331.49/uvm/uvm_gpu_ops_tests.c
/usr/src/nvidia-331.49/uvm/uvm_gpu_ops_tests.h
/usr/src/nvidia-331.49/uvm/uvm_ioctl.h
/usr/src/nvidia-331.49/uvm/uvm_linux_ioctl.h
/usr/src/nvidia-331.49/xapi-sdk.h

RPM says that all files from the 304 version are owned by these packages:


nvidia-computeG02-304.119-31.1.i586
nvidia-gfxG02-kmp-desktop-304.119_k3.7.10_1.1-30.1.i586
x11-video-nvidiaG02-304.119-31.1.i586

At first I thought that I should just get rid of those RPMs, but I
notice that they also contain version-independent files that I’ll
presumably need, things like /usr/bin/nvidia-settings! So how should I
go about getting to a pure version of the newer driver? Will it work
if I deinstall the RPMs and then re-run NVIDIA-Linux-x86-331.49.run?

You should first uninstall all traces of nvidia from your system.
I would suggest to first run “nvidia-installer --uninstall” and then remove the RPMs.
If there are still files from the nvidia install left then, remove them manually.

Then install the driver either with one way (from the repo) or the other (.run installer)

And it is also important that you only install ONE version! (i.e. G02 OR G03)

Thank you so much! Using only the vendor-provided driver did the trick. Finally I can actually see what I’m doing, and start setting this box up in earnest.