To configure the kernel you have a choice 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.
We 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 in the kernel).
Both make xconfig and make menuconfig have the options bundled by hyerarchical 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 into a hirarchical group, Next is to go to next group of options, and Prev to come back to previous group. For menuconfig, use the Enter key to select a section, and switch options with y, m or n to change its status, or else press the Enter key and make your choice for the multiple choice options. Exit will take you out of a section and out of configuration if you are in the main menu. And there is also Help.
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.
So here is a somewhat rough list of the options and the choices recommended for those options, gilded with explanations when necessary. The options not covered here are left to your discretion. Leaving them "as is" is generally a good idea.
Prompt for development and/or incomplete code/drivers: y.
Processor family: you've guessed it, it is the type of processor you have. Answer PPro/6x86MX if your processor is an Intel Pentium Pro, Pentium II, Celeron or above, or a Cyrix 6x86 or Cyrix MII.
Maximum Physical Memory: if you have less than one GB of RAM, answer 1 GB, and 2 GB otherwise.
Math emulation: n.
MTRR (Memory Type Range Register) support: y. Even if your processor does not support them, it does not matter.
Symmetric multi-processing support: say y only if your machine is multi-processor!
Enable loadable module support: y.
Set version information on all symbols for modules: n.
Kernel module loader: y.
Networking support: y -- even if you are not on a network! You will at least need it for the loopback interface.
PCI support: y -- unless you have no PCI bus on your machine.
PCI access mode: leave as Any.
PCI quirks: y.
Backward-compatible /proc/pci: y.
MCA support: n -- unless you have this kind of bus (e.g. IBM PS/2 machines).
SGI Visual Workstation support: n -- unless you know what you are speaking about!
System V IPC: y.
BSD Process Accounting: y.
Sysctl support: y.
Kernel support for a.out binaries: m.
Kernel support for ELF binaries: y.
Kernel support for MISC binaries: m.
Kernel support for JAVA binaries (obsolete): as stated, it's obsolete -- n.
Parallel port support: y or m, your choice.
PC-style hardware: you can answer y only if you answered y to the Parallel port support option. Otherwise, you must answer m and add the line alias parport_lowlevel parport_pc to the configuration file /etc/conf.modules.
Support foreign hardware: n.
Advanced Power Management BIOS support: y, if your motherboard supports it.
Ignore USER SUSPEND: n.
Enable PM at boot time: n.
Make CPU Idle calls when idle: n.
Enable console blanking using APM: y.
Power off on shutdown: y.
Ignore multiple suspend: y.
Ignore multiple suspend/resume cycle: y.
RTC stores time in GMT: n if your PC is on local time, y if it is on GMT.
Allow interrupts during APM BIOS calls: n (but read help!)
Plug and Play support: y -- but you should realize that all this option does is question the BIOS PNP on the configuration of the PNP boards if there are any (remember that PNP has no sense for PCI devices in the technical sense of the word).
Auto-probe for parallel devices: m if you have parallel port devices, otherwise n.
Normal PC floppy disk support: m.
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support: if you have IDE devices, answer y.
Use old disk-only driver on primary interface: n.
Include IDE/ATA-2 DISK support: if you start on an IDE disk, answer y. If you have IDE disks but start on a SCSI disk, you can answer m.
Include IDE/ATAPI CDROM support: m if you have an IDE CDROM drive.
Include IDE/ATAPI TAPE support: if you have an IDE tape backup device answer y or m.
Include IDE/ATAPI FLOPPY support: answer y or m if you have, for example, an IDE ZIP drive.
SCSI emulation support: answer m if you have an IDE CDROM writer, otherwise n.
Generic PCI IDE chipset support: y.
Generic PCI bus-master DMA support: y.
Boot off-board chipsets first support: n.
Use DMA by default when available: y.
Loopback device support: m.
Network block device support: n.
Multiple devices driver support: n -- unless you want to try out RAID. If so, see the RAID-HOWTO.
RAM disk support: n.
XT hard disk support: n -- what, you still have disks like this? :-)
Parallel port IDE device support: m if you have these sorts of devices, n otherwise. If you answer m, you will then need to select what types of devices you want to support and what protocols. Refer to kernel help to find out more. There are no generic solutions on this point, except to compile everything into modules.
Packet socket: m.
Kernel/User netlink socket: y.
Routing messages: n.
Netlink device emulation: m.
Network firewalls: y, unless you don't want to do IP masquerading (several machines behind one Internet connection) or else simply a firewall, in which case you should answer n.
UNIX domain sockets: y -- otherwise X will not work.
TCP/IP networking: y.
IP: multicasting: n.
IP: advanced router: if you answer y here it means you know what you are doing -- otherwise, answer n.
IP: firewalling: if you are making a firewall or IP masquerading, answer y, otherwise n. For masquerading, you will also need to answer y to IP: always defragment (required for masquerading), IP: masquerading and IP: ICMP masquerading.
IP: optimize as router not host: n, unless the machine is actually a dedicated router.
IP: TCP syncookie support: y if you are on a network -- see also help on this subject.
IP: Allow large windows (not recommended if <16MB of memory): y.
CPU is too slow to handle full bandwidth: n, unless you are connected via a very high throughput interface (gigabit Ethernet, FDDI, etc.)
SCSI support: y if you have one (or more) SCSI adapter(s) and device(s), a parallel port ZIP drive or an IDE writer, n otherwise. Choose y for SCSI disk support if you boot on a SCSI disk, and not m! Also select m for SCSI generic support if you have a CD writer (SCSI or IDE), and answer appropriately for other types of device. When the moment comes to determine what your SCSI adaptor(s) is (are), refer to file /etc/modules.conf: Linux-Mandrake installation will have established which drivers to use.
Probe all LUNs on each SCSI device: see help -- in general, n.
Verbose SCSI error reporting (kernel size +=12K): n.
SCSI logging facility: n.
IOMEGA parallel port (ppa - older drives): m only if you have an old generation ZIP!
IOMEGA parallel port (imm - newer drives): if you have a new ZIP drive, you should answer m here.
Network device support: y if you have a network device, or if you want to connect to the Internet by modem, n otherwise.
Dummy net driver support: m.
ETHERNET (10 or 100Mbit): y if you have one or more Ethernet cards. Then select the appropriate driver(s) for your Ethernet card(s).
PPP (point-to-point) support: y or m if you want to connect to the Internet via a modem.
SLIP (serial line) support: n.
IrDA subsystem support: y or m if you have infrared devices on your PC. If so, answer y or m to the different options proposed: IrLAN protocol if you have an infrared transmitter/receiver to communicate with other PCs with a similar interface (Ethernet emulation), IrCOMM protocol if you have an infrared device emulating a serial port, IrLPT protocol for infrared devices emulating a parallel port. Say y to IrDA protocol options, y to Cache last LSAP, n to Fast RRs (but see help on this subject), n to Debug information, n to IrLAP compression unless you want to try it (see help), y or m to IrTTY (uses Linux serial driver) and IrPORT (IrDA serial driver); then comes the support for the different infrared chips, choose the ones you have (refer to the documentation on your hardware).
ISDN support: answer y if you have an internal ISDN adapter. If you connect to the Internet using this type of connection, also answer y to Support synchronous PPP. You will have to ask your Internet Service Provider if it supports Van Jacobson compression to answer appropriately the option Use VJ-compression with synchronous PPP. Answer n to Support generic MP (RFC 1717) (but see help), n to Support audio via ISDN (but see help) and to Support ISDN diversion services. Then comes the choice of driver for your ISDN card: refer to your hardware documentation.
Support non-SCSI/IDE/ATAPI CDROM drives: n, unless you have a CDROM driver with a proprietary interface. Very rare these days.
Virtual terminal: y.
Support for console on virtual terminal: y.
Standard/generic (dumb) serial support: y.
Support for console on serial port: n.
Extended dumb serial driver options: n.
Non-standard serial port support: n.
Unix98 PTY support: y -- leave the option Maximum number of Unix98 PTYs in use (0-2048) at its default value, 256.
Parallel printer support: m if you have a parallel port printer. In this case, also say y to Support IEEE1284 status readback.
Mouse Support (not serial mice): as its name says. If your mouse is not on a COM port you should answer y here, then y or m to the appropriate mouse type. Refer to help for each of these options. As indicated in help, for any type of strange mouse which is neither serial, nor PS/2, refer to Busmouse-HOWTO. In particular, be careful with laptops.
QIC-02 tape support: y if you have this type of non SCSI tape drive.
Watchdog Timer Support: n.
/dev/nvram support: n.
Enhanced Real Time Clock Support: y.
Video For Linux: if you have a TV card, radio card or QuickCam, answer y. Then answer y or m, as preferred, to the options that apply to your device. Here again, your hardware documentation will be useful.
Joystick support: y or m if you have a joystick and want to use it. Then you must choose the driver which matches your joystick. Refer to help and your hardware documentation.
Ftape (QIC-80/Travan) support: y if you have a tape drive connected to the floppy disk controller. Then refer to help for the different options.
Quota support: n -- if you answer y here, it means you know what you're talking about :-)
Kernel automounter support: n.
DOS FAT fs support: y or m, unless you have no desire at all to access MS-DOS/Windows floppy disks or partitions from GNU/Linux.
MSDOS fs support: m.
UMSDOS: Unix-like filesystem on top of standard MSDOS filesystem: n.
VFAT (Windows-95) fs support: m -- includes FAT32 support.
ISO 9660 CDROM filesystem support: m.
Microsoft Joliet CDROM extensions: y.
/proc filesystem support: y.
/dev/pts filesystem for Unix98 PTYs: y.
Second extended fs support: y.
NFS filesystem support: y if your machine is an NFS client. Otherwise, n.
NFS server support: y if your machine is to act as an NFS server.
SMB filesystem support (to mount WfW shares etc.): y if you want to mount partitions from a file server running Windows (9x or NT), otherwise n. This option is not necessary if you are making an SMB server.
Codepage 437 (United States, Canada): m.
Codepage 850 (Europe): m.
NLS ISO 8859-1: m.
NLS ISO 8859-15: m.
VGA text console: y.
Video mode selection support: if you want to use the framebuffer, say y. The framebuffer gives you virtual consoles which are much more eye candy as well as a pretty logo on startup :-) However, it does not prevent you using a X server. Say y also to Support for frame buffer devices (EXPERIMENTAL), y to VESA VGA graphics console.
Sound card support: say m here if you have a sound card, and refer to your /etc/conf.modules to find out which driver to use. This assumes that you have already configured your sound card, with sndconfig.
Magic SysRq key: n.
And voilą! Configuration is finally over. Save your configuration and quit.
The configuration file is /usr/src/linux/.config. In general, it is a very good idea to make a backup copy! Preferably, put this copy in the personal directory of user root. As the configuration changes very little between kernel revisions (i.e. between two versions 2.2.x or 2.3.x... kernels), you can use it again to configure your future kernels.
Next, time for compilation.
Prev | Home | Next |
Unpacking sources, patching the kernel (if necessary) | Up | Compiling the kernel and modules, installing modules |