Configuration is the most tedious, time-consuming part of the process. Howerver, it's extremely important, so don't gloss over it. If you leave things out, you'll have to go through all this again.
Before we leap into the fun stuff, we need to review a couple of items from Part 1 of our trilogy. Remember the command for unpacking the compressed kernel archive:
$ bzcat linux-2.6.3.tar.bz2 | tar -xvf -
Yes, this is the olden way, as a kind reader pointed out. Use it if you have an elderly tar that does not support bzip2 archives. Modern editions of tar support bzip2 directly. The modern way:
$ tar xvjf linux-2.6.3.tar.bz2
Part 1 says to use gcc 2.95.3. I have received reports of using gcc versions up to 3.3 successfully. Your mileage may vary.
The Steps So Far
$ lsusb -v | lpr
lsusb is part of usbutils.
This is the most tedious, time-consuming part. Howerver, it's extremely important, so don't gloss over it. If you leave things out, you'll have to go through all this again. It is tempting to recycle your 2.4 .config, and run make oldconfig, but don't. The 2.4 and 2.6 kernels are quite different, this is asking for trouble.
Configure From Scratch
There are two nice graphical configuration utilities: menuconfig, and xconfig. menuconfig is ncurses-based, so you don't need X. xconfig in 2.6 requires Qt and X. Let's use xconfig, because it is sleek and fast, and completely redesigned for 2.6:
$ make xconfig
This will putter and mutter for a bit, then spit out a menu. Have your printouts handy, because now you have to select the right drivers for your hardware, decide what features your kernel will have, and whether to load drivers as modules, or build them into the kernel. menuconfig and xconfig generate loads of information — read all of it. Many things will be selected by default. The worst thing that can happen by saying "yes" too many times is you'll enable features that won't be used. This is not a bad thing. In contrast, if you leave something out that you need, you may need to rebuild the kernel. Here are few things which should be built into the kernel:
These depend on your hardware; whatever you select should be built into the kernel, not a loadable module:
These are OK to have as loadable modules:
There are help files on almost every item.
By Carla Schroder