First, a little trick: you can, if you want, customize the version of your kernel. The kernel version is determined by the four first lines of the Makefile:
$ head -4 Makefile VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 10 EXTRAVERSION = |
Further on in the Makefile, you can see that the kernel version is built as:
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) |
All you have to do is modify one of these fields in order to change your version. Preferably, you will only change EXTRAVERSION. Say you set it to -foo, for example. You new kernel version will then become 2.4.10-foo.
Now, on to configuration. You can choose between:
make xconfig for a graphical interface,
make menuconfig for an interface based on ncurses, or
make config for the most rudimentary interface, line by line, section by section.
You will go through the configuration section by section, but you can skip sections and jump to the ones that interest you if you are using menuconfig or xconfig. The choices for options is y for Yes (functionality hard compiled into the kernel), m for Module (functionality compiled as a module), or n for No (do not include it in the kernel).
Both make xconfig and make menuconfig have the options bundled in hierarchical groups. For example, Processor family goes under Processor type and features.
For xconfig, the button Main Menu is to come back to the main menu when in a hierarchical group, Next goes to the next group of options, and Prev returns to the previous group. For menuconfig, use the Enter key to select a section, and switch options with y, m or n to change the options status, or else press the Enter key and make your choice for the multiple choice options. Exit will take you out of a section or out of configuration if you are in the main menu. And there is also Help.
We are not going to enumerate all options here, as there are several hundreds of them. Furthermore, if you have reached this chapter, you probably know what you're doing anyway. So you are left to browse through the kernel configuration and set/unset whichever options you see fit. However, here are some advice so that you don't find yourself with an unusable kernel:
Unless you use an initial ramdisk, never compile the drivers necessary to mount your root filesystem (hardware drivers and filesystem drivers) as modules! And if you use an initial ramdisk, say Y to ext2fs support, as this is the filesystem used for ramdisks.
If you have IDE CD writers on your system, compile support for IDE CD-ROM drives as a module; do the same with SCSI generic support and IDE SCSI emulation. If you say Y to IDE CD-ROM support, your CD writers will be unusable as writers, though you will still be able to use them as normal CD-ROM drives.
If you have network cards on your system, compile their drivers as modules. This way you can define which card will be the first one, which will be the second, and so on, by putting appropriate aliases in /etc/modules.conf. If you compile the drivers into the kernel, the order in which they will be loaded will depend on the linking order, which may not be the order you want.
And finally: if you don't know what an option is about, read the help! If the help text still doesn't inspire you, just leave the option as it was.
You may also consult the file /usr/src/linux/Documentation/Configure.help which gives the help text for every option in order of appearance. You will also find on its header links to many translations.
And voilą! Configuration is finally over. Save your configuration and quit.
Prev | Home | Next |
Unpacking sources, patching the kernel (if necessary) | Up | Saving, reusing your kernel configuration files |