Kernel compiling, what’s really needed?

If you’ve followed my guide for compiling a kernel and have spent any amount of time looking at the .config file…..I’m curious if anyone has experimented with what’s really needed or not?  I launched VirtualBox the other day, booted my Centos setup for compiling the Amithlon kernel and dumped one out and tested on my actual system.  I made very few changes, mostly removing all the modules [m] options since I don’t use any modules.  I’m more curious if some of the modules are expected to be loaded (depending on hardware) that I could be missing that would be better off compiled in to the kernel ([*] instead of [m]).  Honestly the only things I remember ever using modules for were network drivers, audio drivers and/or network drivers.  A lot of character/keyboard/serial selections are designated at modules in Milan’s .config file.

After booting and testing the first one I went back to Centos and stripped out all the IDE drivers, just leaving generic and Intel (my motherboard uses an Intel SouthBridge and NorthBridge) IDE, enabling SATA support and adding the drivers for a possible SCSI card (I have) if I feel like giving it a try.  My kernel wasn’t much smaller than the one I compiled and have been using.   I’d like to strip out more unneeded tags or drivers.

I have to admit, I was trying to make a more generic kernel while being specific at the same time…one I can use in VirtualBox as well as on my hardware system.  Adding NIC and Sound drivers for options VB presents and such.  I could strip those out to be leaner I suppose.

Anyone else compiling their own Amithlon kernel and discovering what can be left out and what is absolutely required?

Leave a Reply