On Thu, Dec 04, 2008 at 03:01:47PM -0000, Matt Zimmerman wrote:

> The crux of my problem is the "updates" directory, which contains modules
> built by DKMS.  Nothing cleans up these files when a kernel is removed, only
> when the entire module package (e.g. nvidia-173-kernel-source) is removed.
>
> I think what's needed is to add a "dkms remove" command to the kernel
> package postrm which removes all modules installed by dkms for the specified
> kernel version.

If I install the nvidia-173-kernel-source module on my system here then
I get a dkms postinstall script for both the headers and the kernel:

    $ ls -l /etc/kernel/*/dkms
    -rwxr-xr-x 1 root root 185 2008-07-08 16:19 
/etc/kernel/header_postinst.d/dkms
    -rwxr-xr-x 1 root root 185 2008-07-08 16:19 /etc/kernel/postinst.d/dkms
    -rwxr-xr-x 1 root root 502 2008-07-08 16:19 /etc/kernel/prerm.d/dkms

When both kernel and headers are installed then the driver seems to get
built correctly:

    $ sudo dpkg -i linux-image-2.6.27-7-generic_2.6.27-7.16_amd64.deb 
    Selecting previously deselected package linux-image-2.6.27-7-generic.
    (Reading database ... 161177 files and directories currently installed.)
    Unpacking linux-image-2.6.27-7-generic (from
    linux-image-2.6.27-7-generic_2.6.27-7.16_amd64.deb) ...
    Done.
    Setting up linux-image-2.6.27-7-generic (2.6.27-7.16) ...
    Running depmod.
    update-initramfs: Generating /boot/initrd.img-2.6.27-7-generic
    Running postinst hook script /sbin/update-grub.
    Searching for GRUB installation directory ... found: /boot/grub
    Searching for default file ... found: /boot/grub/default
    Testing for an existing GRUB menu.lst file ... found:
    /boot/grub/menu.lst
    Searching for splash image ... none found, skipping ...
    Found kernel: /boot/vmlinuz-TEST
    Found kernel: /boot/vmlinuz-2.6.27-10-generic
    Found kernel: /boot/vmlinuz-2.6.27-9-generic
    Found kernel: /boot/vmlinuz-2.6.27-8-generic
    Found kernel: /boot/vmlinuz-2.6.27-7-generic
    Found kernel: /boot/vmlinuz-2.6.24-21-generic
    Found kernel: /boot/memtest86+.bin
    Replacing config file /var/run/grub/menu.lst with new version
    Updating /boot/grub/menu.lst ... done

    Examining /etc/kernel/postinst.d.
    run-parts: executing /etc/kernel/postinst.d/dkms
     * Running DKMS auto installation service for kernel 2.6.27-7-generic       
    
     *  nvidia (173.14.12)...
     *  nvidia (173.14.12): Installing module.
      Kernel source for 2.6.27-7-generic not installed.  Cannot install this 
module.
                                                                     [fail]
    run-parts: executing /etc/kernel/postinst.d/nvidia-common

    (reverse-i-search)`0': less
    ./ubuntu-intrepid/debian/linux-image-2.6.27-10-generic/DEBIAN/postrm
    (reverse-i-search)`-r': sudo dpkg -r
    linux-restricted-modules-2.6.27-7-generic$ sudo dpkg -i
    linux-headers-2.6.27-7-generic_2.6.27-7.16_amd64.deb Selecting
    previously deselected package linux-headers-2.6.27-7-generic.
    (Reading database ... 163749 files and directories currently installed.)
    Unpacking linux-headers-2.6.27-7-generic (from
    linux-headers-2.6.27-7-generic_2.6.27-7.16_amd64.deb) ...
    Setting up linux-headers-2.6.27-7-generic (2.6.27-7.16) ...
    Examining /etc/kernel/header_postinst.d.
    run-parts: executing /etc/kernel/header_postinst.d/dkms
     * Running DKMS auto installation service for kernel 2.6.27-7-generic       
    
     *  nvidia (173.14.12)...
     *  nvidia (173.14.12): Installing module.
    ...........
    ......
                                                                     [ OK ]
    run-parts: executing /etc/kernel/header_postinst.d/nvidia-common

    $ ls /lib/modules/2.6.27-7-generic/build   modules.alias
    modules.ieee1394map  modules.ofmap     modules.symbols
    initrd  modules.ccwmap  modules.inputmap     modules.pcimap
    modules.usbmap
    kernel  modules.dep     modules.isapnpmap    modules.seriomap  updates
    $ ls /lib/modules/2.6.27-7-generic/updates/dkms/
    nvidia.ko


And indeed removed correctly, as in a dkms remove occurs:

    $ sudo dpkg -r linux-image-2.6.27-7-generic
    (Reading database ... 169361 files and directories currently installed.)
    Removing linux-image-2.6.27-7-generic ...
    Examining /etc/kernel/prerm.d.
    run-parts: executing /etc/kernel/prerm.d/dkms
    Uninstalling: nvidia 173.14.12 (2.6.27-7-generic) (x86_64)

    -------- Uninstall Beginning --------
    Module:  nvidia
    Version: 173.14.12
    Kernel:  2.6.27-7-generic (x86_64)
    -------------------------------------

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

    nvidia.ko:
     - Uninstallation
       - Deleting from: /lib/modules/2.6.27-7-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.
    depmod....

    DKMS: uninstall Completed.
    run-parts: executing /etc/kernel/prerm.d/last-good-boot
    Running postrm hook script /sbin/update-grub.
    Searching for GRUB installation directory ... found: /boot/grub
    Searching for default file ... found: /boot/grub/default
    Testing for an existing GRUB menu.lst file ... found:
    /boot/grub/menu.lst
    Searching for splash image ... none found, skipping ...
    Found kernel: /boot/vmlinuz-TEST
    Found kernel: /boot/vmlinuz-2.6.27-10-generic
    Found kernel: /boot/vmlinuz-2.6.27-9-generic
    Found kernel: /boot/vmlinuz-2.6.27-8-generic
    Found kernel: /boot/vmlinuz-2.6.24-21-generic
    Found kernel: /boot/memtest86+.bin
    Replacing config file /var/run/grub/menu.lst with new version
    Updating /boot/grub/menu.lst ... done

    The link /vmlinuz is a damaged link
    Removing symbolic link vmlinuz 
     you may need to re-run your boot loader[grub]
    The link /initrd.img is a damaged link
    Removing symbolic link initrd.img 
     you may need to re-run your boot loader[grub]
    $ sudo dpkg -r linux-headers-2.6.27-7-generic
    linux-headers-2.6.27-7(Reading database ... 166786 files and directories
    currently installed.)
    Removing linux-headers-2.6.27-7-generic ...
    dpkg - warning: while removing linux-headers-2.6.27-7-generic, directory
    `/lib/modules/2.6.27-7-generic' not empty so not removed.
    Removing linux-headers-2.6.27-7 ...

What does go wrong is that dkms is leaving the empty directories behind:

    $ ls /lib/modules/2.6.27-7-generic
    modules.alias        modules.inputmap   modules.pcimap    modules.usbmap
    modules.ccwmap       modules.isapnpmap  modules.seriomap  updates
    modules.ieee1394map  modules.ofmap      modules.symbols
    $ ls /lib/modules/2.6.27-7-generic/updates/dkms/
    $ ls /lib/modules/2.6.27-7-generic/updates/
    dkms

So it appears that if all the other bugs are fixed then it is DKMS which
is 'wrong' here, it needs to clean out its directory when its done
removing everything.  Will look at sorting that out.

-- 
Removal does not clean up after dkms, l-r-m(?)
https://bugs.launchpad.net/bugs/300773
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to