293 - Smaller kernels for more fun

Experimentation has provided further insight in yesterday’s don’t compile everything into the kernel advice. I removed as much as possible from the kernel itself into modules, leaving only essential filesystems and a few other bits in. I then added my VIA IDE chipset controller driver into the kernel and removed the default setting from the kernel. This resulted in a smaller kernel which boots, rather than failing in the decompression stage.

Without the IDE driver compiled into the kernel, the IDE does not have DMA enabled. Even when compiled as a module, the DMA seems to stay stubbornly off. This slows down hard disk access severely. Before I had a 3.5MB/sec transfer, I now have a 30MB/sec transfer rate.

I’m not sure why the kernel refused to decompress. I have a couple of theories:

  1. The kernel was too large for lilo to boot;
  2. I forgot the /sbin/lilo after a recompile.

In either case, this seems to be telling me I should move to Grub from lilo. However, I am used to how lilo works so I think I shall stick with it for now.

Hopefully now I can stop playing with the kernel and get back to some real work. The 2.6 kernel doesn’t seem to take very long to compile, so there has been less waiti— ahem, revision time. I think this is because I have only compiled the drivers I need, rather than using the genkernel tool. Genkernel compiles a very general kernel which gives you modules for everything it seems, thus taking a long time to compile.

I haven’t found anything that doesn’t work yet. DMA is on, ALSA is sounding good and my graphics card appears to be fine with the Nvidia drivers.