Building the 2.6.10 Kernel
Some of you blaggers may not like the idea of having a standard,run of the mill kernel (I certainly don't). So I decided to roll out my own kernel from the source bz2. First,get yourself the full source code from kernel.org http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
Next extract the archive by using tar:
tar -xvjf kernel-2.6.10.tar.bz2
Now in the dir you extracted:
NOTE: you will need the ncurses-devel package from the repository. Here is the legend to the modules:
< > = not installed <M> = the driver will be installed as a module <*> = the driver will be installed as part of the kernel
To toggle selection, use the spacebar or type 'n' for no, 'y' for <*>, or 'm' for <M>.
NOTE: some options have  instead of <>. In this guide I reference <*> as a star next to that option, so make sure that option has a star next to it.
First thing you should do is go into the Bus Options menu.
Make sure PCI support, Legacy /proc/pci interface, PCI device name database, and ISA support all have a <*> next to them, otherwise your PCI and ISA cards will not be detected. If you don't have ISA slots on your board, you can ignore the ISA stuff.
Second, go into Device Drivers then Networking Support, then Ethernet (10 or 100MBIT).
Now find your particular ethernet card and make sure it has a <*> next to it (NOTE: if the driver has a <M> next to it doesn't always ensure it will load at startup. You may have to configure that manually in /etc, so make sure critical hardware modules are built into the kernel (<*>).
Now that you have chosen the ethernet card driver, go back into Device Drivers and then go to Graphics Support. Choose the driver you want and make sure it has a <*> next to it.
Next, get back into Device Drivers and go into Sound. Make sure Sound Support has a <*> next to it.
Go into Advanced Linux Sound Architecture. Make sure: Advanced Linux Sound Architecture, Sequencer support, Sequencer dummy client, OSS Mixer API, OSS PCM (digital audio) API, and OSS Sequencer API all have a <*>.
Now scroll down to PCI Devices and go into the submenu.
Choose the sound driver for your device and make sure it has a <*> next to it.
Next, go into Device drivers, then USB support.
Make sure Support for Host-side USB, USB device filesystem EHCI HCD (USB 2.0) support, OHCI HCD support, UHCI HCD (most Intel and VIA) support,and SL811HS HCD support all have a <*> next to them.
NOTE: you can add other modules if you want, but this should be sufficient for basic USB support.
Go back into the main menu and then go into file systems:
Second extended fs support Ext2 extended attributes Ext2 POSIX Access Control Lists Ext2 Security Labels Ext3 journalling file system support Ext3 extended attributes Ext3 POSIX Access Control Lists Ext3 Security Labels Reiserfs support Stats in /proc/fs/reiserfs ReiserFS extended attributes ReiserFS POSIX Access Control Lists ReiserFS Security Labels JFS filesystem support JFS POSIX Access Control Lists Quota format v2 support Kernel automounter support Kernel automounter version 4 support (also supports v3)
These should all have a <*> next to them. If you want to trim it down some, you can leave out filesystems you don't use or plan on using in the future, or just compile them as modules.
NOTE: if there are any other modules that have a <*> next to it, don't worry about it, just remember the old saying "If it aint broke, don't fix it". But if you want to experiment (and you will eventually), read the help file on the module, or have a known-good kernel .config file. Or, heck, a kernel you know works for sure available to boot from in case yours panics.
If you want support for Windows file systems scroll down to the DOS/FAT/NT Filesystems submenu and enter it:
MSDOS fs support VFAT (Windows-95) fs support NTFS file system support NTFS debugging support NTFS write support
all have a <*> or <M> next to them and leave other options on default.
Exit and save the configuration. When you are back on the command prompt, make sure you are root and:
make && make modules_install
Install the kernel and update GRUB:
NOTE: depending on your CPU,this will take between 30 minutes to 3 hours (it took me 2 hours to compile this on my machine, a Duron 1100).
And there, you are done. It may look a little bit complicated at first, but once you get used to it, it's easy. A wonderful thing about the kernel install process: it automatically writes the kernel entry into GRUB, so you don't have to edit grub.conf by hand.
Building a kernel takes time and effort. It gets annoying at times. It makes you want to pull your hair out of your head if it doesn't work. But once you get it running, you get a feeling of accomplishment. I will say it once again, compiling a kernel is not for newbies. You have to know a bit about how the commandline and how the kernel works. I'm not saying you can't do it but it can be frustrating.