jockey fails to install linux-headers-generic metapackage (was: dkms does not run when upgrade downloads new kernel version)

Bug #550905 reported by Bruce Miller
20
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Jockey
New
Undecided
Unassigned
jockey (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: dkms

I am using *_only_* Kubuntu amd64 repositories.

Since the release of Lucid Lynx beta1, download of new kernel versions (2.6.32-1[78] has failed to:

1. download linux-headers packages;
2. trigger dkms routine to incorporate restricted modules into new kernel

Booting to these new kernel versions therefore fails with report that nvidia kernel module not found.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: dkms 2.1.1.2-2fakesync1
ProcVersionSignature: Ubuntu 2.6.32-17.26-generic 2.6.32.10+drm33.1
Uname: Linux 2.6.32-17-generic x86_64
NonfreeKernelModules: nvidia
Architecture: amd64
Date: Mon Mar 29 09:49:36 2010
InstallationMedia: Error: [Errno 13] Permission denied: '/var/log/installer/media-info'
PackageArchitecture: all
ProcEnviron:
 LANGUAGE=
 PATH=(custom, user)
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
SourcePackage: dkms

Revision history for this message
Bruce Miller (brm0423) wrote :
Revision history for this message
Anders Kaseorg (andersk) wrote :

Do you have the linux-headers-generic metapackage installed?

Changed in dkms (Ubuntu):
status: New → Incomplete
Revision history for this message
Bruce Miller (brm0423) wrote : Re: [Bug 550905] Re: dkms does not run when upgrade downloads new kernel version
Download full text (3.6 KiB)

Good question.

The package is not installed and the question is therefore why not? If it is required in order for dkms to install the proprietary module (nvidia-current in this case), should it not be listed as a dependency of either dkms and/or the proprietary module package?

nvidia-current shows a dependency of "linux-headers-generic | linux-headers". There is no package in the repositories called "linux-headers" and "linux-headers-generic" was apparently not pulled in when I routinely installed nvidia-current.

This would appear to be the bug. linux-headers-generic needs to be made a dependency, although of which package I am not in position to specify.

bruce@Xenophon:~$ dpkg -l | grep linux-headers
ii linux-headers-2.6.32-19 2.6.32-19.28 Header files related to Linux kernel version 2.6.32
ii linux-headers-2.6.32-19-generic 2.6.32-19.28 Linux kernel headers for version 2.6.32 on x86/x86_64
bruce@Xenophon:~$ dpkg -s nvidia-current
Package: nvidia-current
Status: install ok installed
Priority: optional
Section: restricted/misc
Installed-Size: 129560
Maintainer: Ubuntu Core Developers <email address hidden>
Architecture: amd64
Source: nvidia-graphics-drivers
Version: 195.36.15-0ubuntu1
Provides: xserver-xorg-video-6
Depends: x11-common (>= 1:7.0.0), make, sed (>> 3.0), dkms, linux-libc-dev, libc6-dev, linux-headers-generic | linux-headers, patch, acpid, libc6 (>= 2.3.2), libx11-6 (>= 0), libxext6 (>= 0), zlib1g (>= 1:1.1.4)
Recommends: nvidia-settings
Conffiles:
 /etc/OpenCL/vendors/nvidia.icd 3ab6fef7906dfd11f3d931ddffe812f4
Description: NVIDIA binary Xorg driver, kernel module and VDPAU library
 The binary driver provide optimized hardware acceleration of OpenGL
 applications via a direct-rendering X Server. AGP, PCIe, SLI, TV-out
 and flat panel displays are also supported.
 .
 This package also includes the source for building the kernel module
 required by the Xorg driver, and provides NVIDIA's implementation of
 the Video Decode and presentation API. The latter enables acceleration
 for NVIDIA 8 and later series cards for h264 video.
 .
 GPUs such as GeForce series 6 or newer are supported.
 .
 See /usr/share/doc/nvidia-current/README.txt.gz for a complete list
 of supported GPUs and PCIIDs
bruce@Xenophon:~$ apt-cache search ^linux-headers
linux-headers-2.6.32-19 - Header files related to Linux kernel version 2.6.32
linux-headers-2.6.32-19-generic - Linux kernel headers for version 2.6.32 on x86/x86_64
linux-headers-2.6.32-19-preempt - Linux kernel headers for version 2.6.32 on x86_64
linux-headers-2.6.32-19-server - Linux kernel headers for version 2.6.32 on x86_64
linux-headers-2.6.32-304 - Header files related to Linux kernel version 2.6.32
linux-headers-2.6.32-304-ec2 - Linux kernel headers for version 2.6.32 on x86/x86_64
linux-headers-ec2 - Linux kernel headers for ec2 machines
linux-headers-generic - Generic Linux kernel headers
linux-headers-lbm-2.6.32-19-generic - Header files related to linux-backports-modules version 2.6.32
linux-headers-lbm-2.6.32-19-server - Header files related to linux-backports-...

Read more...

Revision history for this message
Anders Kaseorg (andersk) wrote : Re: dkms does not run when upgrade downloads new kernel version

Yes, that would happen if you installed the particular header package (linux-headers-2.6.32-19-generic) before installing dkms or nvidia-current. Because linux-headers is a virtual package provided by linux-headers-2.6.32-19-generic, the dependency is considered satisfied and you will not automatically get linux-headers-generic.

We cannot add a linux-headers-generic dependency to dkms because there are different metapackages for the other kernels (linux-header-server, linux-headers-rt, and so on) as well as custom kernels.

Changed in dkms (Ubuntu):
status: Incomplete → Invalid
Revision history for this message
Bruce Miller (brm0423) wrote :

Marking this bug invalid is to treat the symptom while disregarding the cause. That solves nothing. There is a problem here; I have no idea how many users are affected, but if it strikes a reviewer after Lucid is released, there is certain to be negative comment on Lucid. It is that risk which I am eager to avoid.

It is roughly three weeks ago that I did a first install of Lucid on this particular machine. Because the hard disc with the /home partition had had to be replaced (and the data later restored from backups), this was, in effect, a "first-time" install of Kubuntu.

Because of the length of time, I no longer recall how or when I manually installed linux-headers-2.6.32-nn-generic the first time. But I recall that jockey failed to install necessary packages and therefore failed to activate the proprietary video driver. To the best of my memory, this was at the time of initial install. However, it is unimportant whether it was at the time of initial install or after a minor kernel version upgrade.

At the time, I was also hit by a jockey-kde failure, which I reported and which was marked as a duplicate of Bug 451105 (on which you have also commented).

After running jockey, a user should not have to install manually neither linux-headers-generic nor linux-headers-2.6.nn-nn-generic. It is a bug that I had to do so. The bug needs to be fixed.

Perhaps this bug needs to be redirected to another package or perhaps another, rephrased, bug should be submitted. Please advise.

Changed in dkms (Ubuntu):
status: Invalid → Incomplete
Revision history for this message
Anders Kaseorg (andersk) wrote :

Fair enough. If you can figure out how to reproduce the problem step-by-step, starting from the default installation (say a Lucid live CD), that would let us determine which package to assign the bug to. It would be enough to figure out how you got linux-headers-2.6.32-19-generic installed without linux-headers-generic, since obviously it’s hard to reproduce a kernel upgrade on demand.

affects: dkms (Ubuntu) → ubuntu
Revision history for this message
Bruce Miller (brm0423) wrote : Re: [Bug 550905] Re: dkms does not run when upgrade downloads new kernel version
Download full text (3.9 KiB)

As requested, I performed a re-install of Kubuntu Lucid beta1. I used the daily alternate build of Mon 2010-04-05.

I had previously had problems with Kubuntu daily builds around the time Beta1 was released: the problem with the LiveCD is Bug #548373 and with the alternate install CD is Bug #548572. Although you had suggested the LiveCD, I chose the alternate because I could work around the problem more easily if it recurred. In the event, it did not.

The install was routine.

1. Immediately after rebooting, I checked for linux-headers-generic. It had not been installed.

2. I ran the GUI Install restricted hardware drivers application (jockey-kde). The installation appeared to run normally, but a dialog box at the end of the process said it had failed. The first jockey.log is in the attached tarball.

3. linux-headers-generic was still not yet installed at this point. I installed it manually and ran jockey again, this time from a login console (IIRC: sudo jockey-text -e xorg:nvidia_current). The second jockey.log is also in the attached tarball.

4. I rebooted again and ran jockey again, also from a login console. This time the driver was properly installed.

5. Please note that it was necessary to install linux-headers-generic manually.

6. I regret that last night I forgot to pipe the output of dpkg -l to a file. Interestingly, after I installed the package manually, it did not appear when I did a dpkg -l. This is strange. It was there when I turned on the machine this morning.

Here is the history of the last three days of checking linux-headers packages. The legend for the command-line aliases is:

aptwr <== aptitude --with-recommends
pkgd <== apt-cache show
pkgl <== dpkg -l | grep
pkgs <== apt-cache search

bruce@Xenophon:~$ history | grep linux-headers
  120 aptwr purge linux-headers-2.6.32-17 linux-headers-2.6.32-17-generic linux-image-2.6.32-17-generic
  144 aptr linux-headers-2.6.32-19-generic linux-tools-2.6.32-19 linux-headers-2.6.32-19
  264 aptwr purge linux-headers-2.6.32-18 linux-headers-2.6.32-18-generic linux-image-2.6.32-18-generic
  267 pkgl linux-headers
  272 pkgl linux-headers-generic
  273 pkgs linux-headers-generic
  277 pkgd linux-headers-generic
  281 aptr linux-headers linux-image linux-headers-generic
  282 apt-cache whatdepends linux-headers-generic
  284 apt-cache rdepends linux-headers-generic
  286 pkgl linux-headers
  287 pkgd linux-headers
  288 pkgs linux-headers
  289 dpkg -l | grep linux-headers
  292 dpkg -l | grep linux-headers
  294 apt-cache search linux-headers
  295 dpkg -l | grep linux-headers
  297 apt-cache search ^linux-headers
  298 bruce@Xenophon:~$ dpkg -l | grep linux-headers
  299 ii linux-headers-2.6.32-19 2.6.32-19.28 Header files related to Linux kernel version 2.6.32
  300 ii linux-headers-2.6.32-19-generic 2.6.32-19.28 Linux kernel headers for version 2.6.32 on x86/x86_64
  312 Depends: x11-common (>= 1:7.0.0), make, sed (>> 3.0), dkms, linux-libc-dev, libc6-dev, linux-headers-generic | linux-headers, patch, acpid, libc6 (>= 2.3.2), libx11-6...

Read more...

Revision history for this message
Anders Kaseorg (andersk) wrote : Re: dkms does not run when upgrade downloads new kernel version

Thanks. I’m assigning this to the jockey package.

affects: ubuntu → jockey (Ubuntu)
Changed in jockey (Ubuntu):
status: Incomplete → New
John Baptist (jepst79)
affects: jockey (Ubuntu) → dkms (Ubuntu)
Revision history for this message
Anders Kaseorg (andersk) wrote :

Jeff: this is a bug in jockey, not dkms, as explained in the above comments. Please don’t reassign bugs without explanation.

affects: dkms (Ubuntu) → jockey (Ubuntu)
Anders Kaseorg (andersk)
summary: - dkms does not run when upgrade downloads new kernel version
+ jockey fails to install linux-headers-generic metapackage (was: dkms
+ does not run when upgrade downloads new kernel version)
Revision history for this message
Patrick Cervicek (patrick-ubuntu) wrote :

When I look in the source packageof "jockey" I saw this line in data/handlers/nvidia.py:

    def enable(self):
        # Ensure that the necessary kernel headers need to be installed
        kernel_headers = 'linux-headers-' + os.uname()[2]
        ...

Why does jockey not use " kernel_headers = 'linux-headers-generic" here? apt-get would automatically install the correct headers and using it would be safe between kernel-upgrades:

  $ dpkg -s linux-headers-generic | grep Depends
  Depends: linux-headers-2.6.32-26-generic

Revision history for this message
Martin Pitt (pitti) wrote :

> Why does jockey not use " kernel_headers = 'linux-headers-generic" here?

Because you might use a different kernel flavour than -generic, for exampe -server or -virtual.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.