Linux Step By Steps

XCONFIG 2.4.3: GENERAL SETUP Part 1  PCMCIA  Part 2

CONFIG_NET:=y

Unless you really know what you are doing, you should say Y here. The reason is that some programs need kernel networking support even when running on a stand-alone machine that isn't connected to any other computer. If you are upgrading from an older kernel, you should consider updating your networking tools too because changes in the kernel and the tools often go hand in hand. The tools are contained in the package net-tools, the location and version number
of which are given in Documentation/Changes.

For a general introduction to Linux networking, it is highly recommended to read the NET-3-HOWTO, available from http://www.linuxdoc.org/docs.html#howto .
 

CONFIG_VISWS:=n

The SGI Visual Workstation series is an IA32-based workstation based on SGI systems chips with some legacy PC hardware attached. Say Y here to create a kernel to run on the SGI 320 or 540.

A kernel compiled for the Visual Workstation will not run on other PC boards and vice versa. See Documentation/sgi-visws.txt for more.

CONFIG_PCI:=y

Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside your box. Other bus systems are ISA, EISA, Microchannel (MCA) or VESA. If you have PCI, say Y, otherwise N.

The PCI-HOWTO, available from http://www.linuxdoc.org/docs.html#howto , contains valuable information about which PCI hardware does work under Linux and which doesn't.
 

CONFIG_PCI_GOBIOS:=any

On PCI systems, the BIOS can be used to detect the PCI devices and determine their configuration. However, some old PCI motherboards have BIOS bugs and may crash if this is done. Also, some embedded PCI-based systems don't have any BIOS at all. Linux can also try to detect the PCI hardware directly without using the BIOS.

With this option, you can specify how Linux should detect the PCI devices. If you choose "BIOS", the BIOS will be used, if you choose "Direct", the BIOS won't be used, and if you choose "Any", the kernel will try the direct access method and falls back to the BIOS if that doesn't work. If unsure, go with the default, which is "Any".

CONFIG_PCI_NAMES:=y

By default, the kernel contains a database of all known PCI device names to make the information in /proc/pci, /proc/ioports and similar files comprehensible to the user. This database increases size of the kernel image by about 80KB, but it gets freed after the system boots up, so it doesn't take up kernel memory. Anyway, if you
are building an installation floppy or kernel for an embedded system where kernel image size really matters, you can disable this feature and you'll get device ID numbers instead of names.

When in doubt, say Y.

CONFIG_EISA:=n

The Extended Industry Standard Architecture (EISA) bus was developed as an open alternative to the IBM MicroChannel bus.

The EISA bus provided some of the features of the IBM MicroChannel bus while maintaining backward compatibility with cards made for the older ISA bus. The EISA bus saw limited use between 1988 and 1995 when it was made obsolete by the PCI bus.

Say Y here if you are building a kernel for an EISA-based machine.

Otherwise, say N.

CONFIG_MCA:=n

MicroChannel Architecture is found in some IBM PS/2 machines and laptops. It is a bus system similar to PCI or ISA. See Documentation/mca.txt (and especially the web page given there) before attempting to build an MCA bus kernel.

CONFIG_HOTPLUG: =y

Say Y here if you want to plug devices into your computer while the system is running, and be able to use them quickly.  In many cases, the devices can likewise be unplugged at any time too.

One well known example of this is PCMCIA- or PC-cards, credit-card size devices such as network cards, modems or hard drives which are plugged into slots found on all modern laptop computers.  Another example, used on modern desktops as well as laptops, is USB.

Enable HOTPLUG and KMOD, and build a modular kernel.  Get agent software (at http://linux-hotplug.sourceforge.net) and install it. Then your kernel will automatically call out to a user mode "policy agent" (/sbin/hotplug) to load modules and set up software needed to use devices as you hotplug them.

PCMCIA SUPPORT
 

CONFIG_SYSVIPC:=y

Inter Process Communication is a suite of library functions and system calls which let processes (running programs) synchronize and exchange information. It is generally considered to be a good thing, and some programs won't run unless you say Y here. In particular, if you want to run the DOS emulator dosemu under Linux (read the DOSEMU-HOWTO, available from
http://www.linuxdoc.org/docs.html#howto ), you'll need to say Y here.

You can find documentation about IPC with "info ipc" and also in section 6.4 of the Linux Programmer's Guide, available from http://www.linuxdoc.org/docs.html#guide .

Shared memory is now implemented using a new (minimal) virtual file system. To mount it automatically at system startup just add the following line to your /etc/fstab:

none /dev/shm shm defaults 0 0

Saying Y here enlarges your kernel by about 18 KB.Just say Y.
 

CONFIG_BSD_PROCESS_ACCT:=y

If you say Y here, a user level program will be able to instruct the kernel (via a special system call) to write process accounting information to a file: whenever a process exits, information about that process will be appended to the file by the kernel. The information includes things such as creation time, owning user, command name, memory usage, controlling terminal etc. (the complete list is in the struct acct in include/linux/acct.h). It is up to the user level program to do useful things with this information. This is generally a good idea, so say Y.

CONFIG_SYSCTL:=y

The sysctl interface provides a means of dynamically changing certain kernel parameters and variables on the fly without requiring a recompile of the kernel or reboot of the system. The primary interface consists of a system call, but if you say Y to "/proc file system support", a tree of modifiable sysctl entries will be generated beneath the /proc/sys directory. They are explained in the files in Documentation/sysctl/. Note that enabling this option will enlarge the kernel by at least 8 KB.

As it is generally a good thing, you should say Y here unless building a kernel for install/rescue disks or your system is very limited in memory.

CONFIG_KCORE_ELF:=y

If you enabled support for /proc file system then the file /proc/kcore will contain the kernel core image. This can be used in gdb:

$ cd /usr/src/linux ; gdb vmlinux /proc/kcore

You have two choices here: ELF and A.OUT. Selecting ELF will make /proc/kcore appear in ELF core format as defined by the Executable and Linking Format specification. Selecting A.OUT will choose the old "a.out" format which may be necessary for some old versions of binutils or on some architectures.

This is especially useful if you have compiled the kernel with the "-g" option to preserve debugging information. It is mainly used for examining kernel data structures on the live kernel so if you don't understand what this means or are not a kernel hacker, just leave it at its default value ELF.