I attach Ivanka's dist-upgrade term.log. Interesting bits: Selecting previously deselected package linux-image-2.6.32-12-generic. Unpacking linux-image-2.6.32-12-generic (from .../linux-image-2.6.32-12-generic_2.6.32-12.16_i386.deb) ... Done. [...] Selecting previously deselected package linux-headers-2.6.32-12. Unpacking linux-headers-2.6.32-12 (from .../linux-headers-2.6.32-12_2.6.32-12.16_all.deb) ... 0.6.25-1ubuntu6_i386.deb) ... Selecting previously deselected package linux-headers-2.6.32-12-generic. Unpacking linux-headers-2.6.32-12-generic (from .../linux-headers-2.6.32-12-generic_2.6.32-12.16_i386.deb) ... Preparing to replace linux-headers-generic 2.6.31.17.30 (using .../linux-headers-generic_2.6.32.12.12_i386.deb) ... Unpacking replacement linux-headers-generic ... .deb) ... -> so it seems that all necessary bits for the new kernel were in place at that time. Preparing to replace bcmwl-kernel-source 5.10.91.9+bdcom-0ubuntu4 (using .../bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu5_i386.deb) ... Removing all DKMS Modules Done. Unpacking replacement bcmwl-kernel-source ... Preparing to replace bcmwl-modaliases 5.10.91.9+bdcom-0ubuntu4 (using .../bcmwl-modaliases_5.10.91.9+bdcom-0ubuntu5_i386.deb) ... all.deb) ... [...] Later on, we get to configuring the new kernel: Setting up linux-image-2.6.32-12-generic (2.6.32-12.16) ... Running depmod. update-initramfs: Generating /boot/initrd.img-2.6.32-12-generic Running postinst hook script /usr/sbin/update-grub. head: cannot open `/boot/grub/video.lst' for reading: No such file or directory Generating grub.cfg ... Found linux image: /boot/vmlinuz-2.6.32-12-generic Found initrd image: /boot/initrd.img-2.6.32-12-generic Found linux image: /boot/vmlinuz-2.6.31-17-generic Found initrd image: /boot/initrd.img-2.6.31-17-generic Found linux image: /boot/vmlinuz-2.6.31-16-generic Found initrd image: /boot/initrd.img-2.6.31-16-generic Found linux image: /boot/vmlinuz-2.6.31-15-generic Found initrd image: /boot/initrd.img-2.6.31-15-generic Found linux image: /boot/vmlinuz-2.6.31-14-generic Found initrd image: /boot/initrd.img-2.6.31-14-generic Found linux image: /boot/vmlinuz-2.6.31-13-generic Found initrd image: /boot/initrd.img-2.6.31-13-generic Found linux image: /boot/vmlinuz-2.6.31-12-generic Found initrd image: /boot/initrd.img-2.6.31-12-generic Found linux image: /boot/vmlinuz-2.6.31-11-generic Found initrd image: /boot/initrd.img-2.6.31-11-generic Found linux image: /boot/vmlinuz-2.6.31-10-generic Found initrd image: /boot/initrd.img-2.6.31-10-generic Found memtest86+ image: /boot/memtest86+.bin Found Windows Vista (loader) on /dev/sda1 Found Windows Vista (loader) on /dev/sda3 done Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/dkms 2.6.32-12-generic /boot/vmlinuz-2.6.32-12-generic run-parts: executing /etc/kernel/postinst.d/nvidia-common 2.6.32-12-generic /boot/vmlinuz-2.6.32-12-generic run-parts: executing /etc/kernel/postinst.d/pm-utils 2.6.32-12-generic /boot/vmlinuz-2.6.32-12-generic -> Shouldn't the postinst.d/dkms run have built the bcmwl module here? Anyway, it has another chance later on: Setting up dkms (2.1.1.1-0ubuntu3) ... Installing new version of config file /etc/dkms/template-dkms-mkdeb/debian/control ... Installing new version of config file /etc/dkms/template-dkms-mkdeb/debian/postinst ... Installing new version of config file /etc/kernel/postinst.d/dkms ... Installing new version of config file /etc/kernel/header_postinst.d/dkms ... Setting up linux-headers-2.6.32-12 (2.6.32-12.16) ... Setting up linux-headers-2.6.32-12-generic (2.6.32-12.16) ... Examining /etc/kernel/header_postinst.d. run-parts: executing /etc/kernel/header_postinst.d/dkms 2.6.32-12-generic /boot/vmlinuz-2.6.32-12-generic run-parts: executing /etc/kernel/header_postinst.d/nvidia-common 2.6.32-12-generic /boot/vmlinuz-2.6.32-12-generic Setting up linux-headers-generic (2.6.32.12.12) ... Setting up bcmwl-kernel-source (5.10.91.9+bdcom-0ubuntu5) ... Adding Module to DKMS build system Doing initial module build Installing initial module Done. Unfortunately it does not tell us here for which kernel versions the module was built. Later on it cleans up a lot of older kernel images, which again calls dkms; this should only remove the old modules, but of course in theory it could also accidentally have removed the 2.6.32 one.