Kubuntu 9.04 64-Bit, Kernel 2.6.30.1, and NVIDIA…

I went ahead and decided to upgrade my kernel, and to go to the latest NVIDIA driver (180.51).  I downloaded the kernel and the nvidia driver file, built the kernel, and removed the nvidia restricted driver.  This is on a 64-bit build of Kubuntu 9.04.

However, I was not done.

When I tried to install the kernel image file, I kept getting dkms errors relating to nvidia-common.  I eventually removed the nvidia packages using “apt-get remove --purge nvidia*” (as root), but this still would not allow me to install the kernel. Also my xorg.conf file was empty.

I fixed xorg by typing “dpkg-reconfigure xserver-xorg” and adding in the line “Driver "vesa" ” to the “Device” section, so I would have something when I rebooted.

Only when I removed dkms (“apt-get remove dkms“), was I able to install kernel 2.6.30.1.  I use lilo since I run RAID-10, but did not have to update the /etc/lilo.conf file.  Upon reboot, I stopped X with “/etc/init.d/kdm stop“.

I next installed the NVidia driver first (and chose to install the 32-bit compatibility files as well). After that, I ran “nvidia-xconfig” and my xorg file was ready.  When testing with the “X” command, it just pulled up a blank screen, but I took a chance and started KDM (“/etc/init.d/kdm start“).

Everything came up fine.  Typing “glxgears” in a terminal showed decent enough acceleration (about 3000 fps).

So far, no other ill effects. And no firmware issues.

Kernel 2.6.30.1 Firmware Issues…

Upfront disclaimer:  I am not saying this is a particular issue with the 2.6.30.1 kernel, instead I am saying I ran into this problem for the first time while trying to install this version.  It appears that many others have had this same problem over a wide range of kernel versions, all vanilla/custom-rolled, and not all confined to Debian/Ubuntu systems.  I did not have this problem when installing 2.6.30 on a laptop earlier.

The story:

The system I installed this kernel version on is a 32-bit Athlon XP.  Plenty of RAM and disk space.  What I ran into was that upon running dpkg -i linux-image-2.6.30.1_xxx, it would fail with an error about being unable to overwrite /lib/firmware/xxx.

I tried renaming the offending file, but that made no difference.  I tried removing that firmware from the kernel config (via make menuconfig), and it only caused the failure on another firmware blob in a different firmware directory.

Searching online yielded lots of posts, old and new, about this exact issue, but the only solution has seemed to be to use the --force-overwrite option with dpkg.  I did this, and was able to install the kernel image.  I had no problem with the kernel header package.

In short, if you have this problem and have no other solution, accept the risk, etc., etc., then try dpkg -i --force-overwrite linux-image-2.6.30.1_xxxx.deb.

YMMV.