Thursday, June 02, 2005

A painless kernel upgrade

The core of any Linux-based computer is the Linux kernel, and like any other operating system, there are multiple versions available. When I first installed Debian, I used their stable distribution, which installed a relatively old version (2.2.x) of the kernel (in hindsight I should have started with the testing distribution, to which I eventually upgraded). If you're curious, the file /proc/version lists the kernel version you're currently using.

Linux powerusers pride themselves on being able to compile their own kernel from the source code; doing this allows the user to eliminate all the elements of the kernel that they don't need (e.g., remove support for hardware they don't have), thus increasing performance.

I didn't want to go through all the work and stress of compiling my own custom kernel (I have no clue what most of the options do), but I did want to upgrade my kernel (2.4 has better sound support, among other things). Debian came to the rescue, as their apt package management system has pre-complied kernels ready to install, via the many kernel-image packages. I had trouble finding good documentation on how the kernel-image upgrade process worked (most sites focus on how to compile a kernel from source), so I'll describe what I did here.

The Debian kernel images come pre-compiled for every processor architecture that Debian supports, so the first step was to choose the image that matched my processor. I wanted to make absolutely certain that I chose the right processor architecture, so I used the command "lspci" to get information on my hardware, and then looked in the file "/proc/cpuinfo" to figure out exactly what my processor was. The hard part was now over.

I determined exactly which package I needed to use (e.g., kernel-image-2.4.27-2-686), and then used "apt-get install" to install it. The install script downloaded the kernel image and all other required files, installed the files, asked me if I wanted to create a link to initrd.img and install a boot block (I went with the default of yes for both), and ended by instructing me to do two very easy things (add a line to my lilo.conf file, and then run lilo).

After rebooting I had a brand-new kernel. There were no problems, and everything seems to work just fine. Why didn't I do this sooner?

As a side note, after upgrading the kernel I was able to get my sound-card to work (which I'd been having trouble with). To do this I downloaded the appropriate kernel modules (e.g. alsa-modules-2.4-686) and then ran "alsaconf" (I already had alsa-utils installed). Now I can now hear all of frozen-bubble's cute noises.

No comments: