nvidia_304 not blacklisted or removed when nvidia_304_updates is installed.

Bug #1262752 reported by Chewbacca on 2013-12-19
This bug affects 6 people
Affects Status Importance Assigned to Milestone
nvidia-graphics-drivers-304-updates (Ubuntu)

Bug Description

Dell Latitude E6520 Laptop

System had a working nvidia-304 driver package installed (304.88-0ubuntu0.0.3)
A regular system update installed, build and activated nvidia-304-updates (304.108-0ubuntu0.0.1)

The new driver does not blacklist nvidia-304 which is still available at /lib/modules/3.2.0-57-generic/updates/dkms/nvidia_304.ko
Depending on which driver is found first on the filesystem, it is possible that udev loads the wrong driver at system boot. (Driver detection and loading based on pci-aliases found in the system).

Xorg.0.log shows:
[ 22.112] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[ 22.112] (EE) NVIDIA(0): system's kernel log for additional error messages and
[ 22.112] (EE) NVIDIA(0): consult the NVIDIA README for details.
[ 22.112] (EE) NVIDIA(0): *** Aborting ***
[ 22.112] (EE) NVIDIA(0): Failing initialization of X screen 0

Dmesg shows:
[ 22.227733] NVRM: API mismatch: the client has the version 304.108, but
[ 22.227735] NVRM: this kernel module has the version 304.88. Please
[ 22.227735] NVRM: make sure that this kernel module and all NVIDIA driver
[ 22.227736] NVRM: components have the same version.
[ 22.298983] init: lightdm main process (1406) terminated with status 1

1) Description: Ubuntu 12.04.03 LTS
     Release: 12.04
2) Installed: 304.108-0ubuntu0.0.1
3) Correct nvidia kernel module to be loaded at system boot
4) Depending on which driver is found first on the filesystem the wrong nvidia kernel module can be loaded.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: nvidia-304-updates 304.108-0ubuntu0.0.1
ProcVersionSignature: Ubuntu 3.2.0-57.87-generic 3.2.52
Uname: Linux 3.2.0-57-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.0.1-0ubuntu17.6
Architecture: amd64
Date: Thu Dec 19 17:27:29 2013
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120423)
MarkForUpload: True
 PATH=(custom, no user)
SourcePackage: nvidia-graphics-drivers-304-updates
UpgradeStatus: No upgrade log present (probably fresh install)

Chewbacca (chewbacca) wrote :
Chewbacca (chewbacca) on 2013-12-19
description: updated
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in nvidia-graphics-drivers-304-updates (Ubuntu):
status: New → Confirmed

Hi Chewbacca

thanks for fast reporting! Have put a comment into bug #1259237 to draw the dev's attention fast on it.

Chewbacca could you check

> dkms status

If you find both modules beeing activated - You can manually remove the obsolete modul in a virtual console via

> dkms remove nvidia-304/304.88 -k 3.2.0-57-generic

You should at least be getting back to a desktop login upon reboot

tags: added: regression-update
Chewbacca (chewbacca) wrote :

Hi Flames_in_Paradise,

I'll check the dkms status tomorrow, as the affected laptops (& desktops) are at work.
For myself I was already able to fix the issue by blacklisting nvidia_304 in the apropriate modprobe.conf file, shipped with nvidia-304-updates.

For your information:

> dkms status

Both modules were listed as being activated.

> dkms remove nvidia-304/304.88 -k 3.2.0-57-generic

I used this command, and everything worked perfectly on reboot.

Thanks for posting a solution

Chewbacca (chewbacca) wrote :

Confirmed as well.

> dkms status
Gives both drivers as "installed" for kernel 3.2.0-57-generic

> dkms remove nvidia-304/304.88 -k 3.2.0-57-generic
Also fixes the issue.

I have experienced this problem on my Ubuntu 12.04.3 LTS system.

Here's an extract from dmesg output:

[ 30.521761] NVRM: API mismatch: the client has the version 304.108, but
[ 30.521763] NVRM: this kernel module has the version 304.88. Please
[ 30.521764] NVRM: make sure that this kernel module and all NVIDIA driver
[ 30.521765] NVRM: components have the same version.

Here's my attempted fix (thanks for the hints from above). After a reboot, all appears well.

hugh@redblack:~$ sudo dkms status

nvidia-304, 304.88, 3.2.0-53-generic, x86_64: installed
nvidia-304, 304.88, 3.2.0-55-generic, x86_64: installed
nvidia-304, 304.88, 3.2.0-56-generic, x86_64: installed
nvidia-304, 304.88, 3.2.0-57-generic, x86_64: installed
nvidia-304-updates, 304.108, 3.2.0-57-generic, x86_64: installed
hugh@redblack:~$ locate /modprobe.conf
hugh@redblack:~$ sudo dkms remove nvidia-304/304.88 -k 3.2.0-57-generic

-------- Uninstall Beginning --------
Module: nvidia-304
Version: 304.88
Kernel: 3.2.0-57-generic (x86_64)

Status: Before uninstall, this module version was ACTIVE on this kernel.

 - Uninstallation
   - Deleting from: /lib/modules/3.2.0-57-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


DKMS: uninstall completed.

cousteau (cousteaulecommandant) wrote :

Personally I have solved this problem by uninstalling nvidia-304-updates and nvidia-experimental-304, and reinstalling nvidia-304.
(Probably some of these steps were unnecessary but I was stuck on a TTY and had no idea what to do; this solution took me quite a while to figure out)

Alberto Milone (albertomilone) wrote :

The packages in the precise-proposed repository will solve the problem.

Just happened to me again. After an upgrade to
Linux version 3.2.0-58-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013

$ sudo dkms status
[sudo] password for hugh:
nvidia-304, 304.88, 3.2.0-53-generic, x86_64: installed
nvidia-304, 304.88, 3.2.0-55-generic, x86_64: installed
nvidia-304, 304.88, 3.2.0-56-generic, x86_64: installed
nvidia-304, 304.88, 3.2.0-58-generic, x86_64: installed
nvidia-304-updates, 304.108, 3.2.0-57-generic, x86_64: installed
nvidia-304-updates, 304.108, 3.2.0-58-generic, x86_64: installed

$ sudo dkms remove nvidia-304/304.88 -k 3.2.0-58-generic

This bug was fixed in the package nvidia-graphics-drivers-304 - 304.116-0ubuntu0.0.1

nvidia-graphics-drivers-304 (304.116-0ubuntu0.0.1) precise-proposed; urgency=low

  * New upstream release (LP: #1259237):
    - Improved compatibility with recent Linux kernels.
    - Updated the NVIDIA OpenGL driver to write temporary files to
      $TMPDIR if it is set, instead of unconditionally writing to
      /tmp (LP: #1212425).
    - Updated a fallback of writing temporary files to $HOME/.nvidia
      to use $HOME/.nv instead, as the latter path is already used
      for other NVIDIA driver related files.

  [ Alberto Milone ]
  * debian/substvars:
    - Add support for lts flavours up to saucy.
  * debian/templates/control.in:
    - Depend on lib32gcc1 [amd64], libc6-i386 [amd64]
      (LP: #1236945).
    - Drop lpia.
  * debian/templates/dkms.conf.in:
    - Drop patch for Linux 3.10.
  * debian/rules:
    - Blacklist the opposite flavour.
    - Blacklist kernel modules from the other flavours.
    - Add the download-sources target.
  * debian/templates/nvidia-graphics-drivers.dirs.in,
    - Remove nvidia-settings icon, desktop file, and autostart file.
      This is all provided by nvidia-settings now.
  * debian/templates/nvidia-graphics-drivers.prerm.in,
    - Disable glamoregl.
    - Do not update gmenucache any more.

  [ Andy Dick ]
  * debian/templates/nvidia-graphics-drivers.preinst.in:
    - Attempt uninstallation of any existing .run file
      installation before installing Debian-packaged
  * debian/templates/nvidia-graphics-drivers.postinst.in:
    - Add libcuda.so symlinks in /usr/lib*.
  * debian/rules:
    - Conditionalize the copying of Makefile.kbuild to
      Makefile. This adds support for newer drivers,
      while maintaining support for packaging older drivers.
    - Avoid extracting unnecessary .run files. The 64-bit
      package needs both the 32- and 64-bit .run files, but
      the 32-bit package does not. Change the unpackaging
      rules to unpack only the native package by default,
      and only unpack the 32-bit x86 package on amd64.
      Also, instead of changing the .run file permissions
      to ensure that the .run file is executable, just call
      it as an argument to sh.
    - Don't assume that extracted files are writable.
      The package contents extracted from some .run file
      installers may not have write permissions enabled.
      To work around this, move files instead of copying
      them to a temporary location before running sed
      scripts, and add force flags to applicable commands.
 -- Alberto Milone <email address hidden> Wed, 11 Dec 2013 14:07:02 +0100

see bug #1259237 comment #17

Changed in nvidia-graphics-drivers-304-updates (Ubuntu):
status: Confirmed → Fix Released
tags: removed: regression-update
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers