-->

Previous | Table of Contents | Next

Page 60


Figure 5.2.
The Code maturity
level options menu.

At the top of the window is the title of the menu, and below the title is the list of options. This menu has only one option, Prompt for development and/or incomplete code/drivers.

To the left of this window are your choices for this particular option. The three choices for each option are y for Yes, m for Module, and n for No. Selecting Yes means that the option will be compiled into the kernel and always be loaded. If you choose Module, the kernel will load that segment of code on demand. (For example, when you initiate a PPP connection, the corresponding PPP code is loaded.) As you can imagine, choosing the No option excludes this option from the kernel altogether.

As you can see in the current window, the Module option is faded out (grayed or dimmed). In this case, this particular option by itself doesn't add or remove anything from the kernel but instead serves as a guide to the rest of the configuration options. Because the kernel you are compiling is going for use in a server, you should not try any experimental code, so be sure this option is set to No. Any experimental sections of the kernel will then be automatically grayed, thus making them not available for use.

As you go through the configuration, you'll likely come across options that you don't know. As you upgrade kernels, you will find that these options are typically new ones that someone has recently added but that are not well publicized. You can select a help option that is located at the right of each option. Clicking the Help button opens another window describing the option. Simply click the OK button to close the help window.

After you finish working with this menu, you can take one of three actions. You can click the Main Menu button to close the current window and return to the menu shown in Figure 5.1, you can click the Next button to go to the next configuration submenu, or you can click the Prev button to go to the previous configuration submenu. Because Code maturity level options is the first configuration submenu, the Prev button is faded out in this window, leaving you access only to the Main Menu and Next buttons. Go ahead and click Next now.

Loadable Module Support

As I discussed earlier, loadable modules are chunks of the kernel that are loaded on demand. This feature gives you the benefit of being able to support features not often used without taking up additional memory during periods of non-use.

The Loadable module support submenu in this particular kernel version consists of three options, as you can see in Figure 5.3.

Page 61


Figure 5.3.
The Loadable module
support menu.

You need to choose the first option, Enable loadable module support, if you want to be able to make lesser-used features of the kernel loadable modules. Leave this option marked as Yes unless you have a specific reason not to have moduleless kernel. Tagging it No dims the other two options.

The next option, Set version information on all symbols for modules, allows you to use modules that were originally compiled for a different version of the kernel in the current kernel if they are compatible. You should leave this option tagged Yes.

The last option, Kernel daemon support, you'll definitely want to leave tagged Yes if you are using modules. This way, the kerneld program can automatically load modules on demand instead of forcing you to explicitly load and unload modules by hand.

General Setup

On the General setup submenu, shown in Figure 5.4, you can configure several key elements of the kernel. With these options, assume that they should be tagged Yes with the notable exception of Limit memory to low 16MB, which should be tagged No.


Figure 5.4.
The General setup
menu.

You should turn on the first option, Kernel math emulation, only if you are compiling a kernel on a CPU with no math coprocessor chip. This feature is applicable only to systems with i386dx,

Page 62

i386sx, or i486sx chips and no corresponding math coprocessors. All Pentium class machines have math coprocessor support built into them. Selecting Yes for this option increases the kernel size by 45 kilobytes. Kernel math support cannot be compiled as a module.

If you plan to attach your machine to any kind of network, whether a LAN or via modem, you need to select Yes for Networking support. Because Networking support determines whether other options will be presented to you later and is not a feature in itself, you cannot select the Module option for it.

Some older motherboards had problems working with memory greater than 16MB. If your system exhibits this behavior, you should set Limit memory to low 16MB to Yes. Otherwise, leave it tagged No.

TIP
If you have over 64MB of memory in your system, you need to pass this information explicitly to the kernel. You do so by using the mem=XXXM option at the boot: prompt, where XXX is the amount of RAM you have in megabytes. See Chapter 3, "LILO," on configuring LILO to set this option as part of your default boot process.

Unless you know for sure that all the programs you plan to run on the system do not require InterProcess Communication (IPC, a method by which two programs running concurrently on one system can communicate with one another), you should set System V IPC to Yes. Many programs do not work unless this option is turned on. Because of the tight integration that is required between IPC and the kernel, this option cannot be compiled as a module.

When Linux was first created, programs that it could run had to in a.out format. (Programs are known as binaries in UNIX.) This format specifies how each program is structured internally and how the kernel needs to process the program while loading it into memory. For several reasons, the Linux development community decided to move to the ELF format. All
recent development has been using the ELF with a.out quickly fading out of use. However, to ensure maximum compatibility with other programs, you should set both the Kernel support for a.out binaries and Kernel support for ELF binaries to Yes.

Because you opted not to use any experimental code in the Code maturity level options submenu, the option for kernel support of Java binaries is dimmed here.

The next-to-last option, Compile kernel as ELF - if your GCC is ELF-GCC, should be tagged Yes. GCC, which is the GNU C compiler, has supported the generation for ELF binaries for quite some time now. The version that ships with this book definitely has support.

The last option on this window, Processor type, is a little different from the others. As you can imagine, this option doesn't require a Yes/No answer but instead a list of processors for which

Previous | Table of Contents | Next