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?