old-www/HOWTO/SCSI-2.4-HOWTO/kconfig.html

290 lines
5.8 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Kernel Configuration</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The Linux 2.4 SCSI subsystem HOWTO"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Device Names in scsidev"
HREF="dnamesscsidev.html"><LINK
REL="NEXT"
TITLE="Boot Parameters"
HREF="bparams.html"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Linux 2.4 SCSI subsystem HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dnamesscsidev.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="bparams.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="kconfig"
></A
>Chapter 4. Kernel Configuration</H1
><P
>&#13;The Linux kernel configuration is usually found in the kernel source in
the file: <TT
CLASS="filename"
>/usr/src/linux/.config</TT
> . It is not
recommended to edit this file directly but to use one of these configuration
options:
<P
></P
><UL
><LI
><P
><B
CLASS="command"
>make config</B
> - starts a character based
questions and answer session</P
></LI
><LI
><P
><B
CLASS="command"
>make menuconfig</B
> - starts a
terminal-oriented configuration tool (using ncurses)</P
></LI
><LI
><P
><B
CLASS="command"
>make xconfig</B
> - starts a
X based configuration tool</P
></LI
></UL
>
</P
><P
>&#13;The descriptions of these selections that is displayed by the associated
help button can be found in the flat ASCII file:
<TT
CLASS="filename"
>/usr/src/linux/Documentation/Configure.help</TT
>
</P
><P
>&#13;Ultimately these configuration tools edit the <TT
CLASS="filename"
>.config</TT
>
file. An option will either indicate some driver is built into the
kernel ("=y") or will be built as a module ("=m") or is not selected.
The unselected state can either be indicated by a line starting with
"#" (e.g. "# CONFIG_SCSI is not set") or by the absence of the relevant
line from the <TT
CLASS="filename"
>.config</TT
> file.
</P
><P
>&#13;The 3 states of the main selection option for the SCSI subsystem (which
actually selects the SCSI mid level driver) follow. Only one of these
should appear in an actual <TT
CLASS="filename"
>.config</TT
> file:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;CONFIG_SCSI=y
CONFIG_SCSI=m
# CONFIG_SCSI is not set
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;Some other common SCSI configuration options are:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;CONFIG_BLK_DEV_SD [disk (sd) driver]
CONFIG_SD_EXTRA_DEVS [extra slots for disks added later]
CONFIG_BLK_DEV_SR [SCSI cdrom (sr) driver]
CONFIG_BLK_DEV_SR_VENDOR [allow vendor specific cdrom commands]
CONFIG_SR_EXTRA_DEVS [extra slots for cdroms added later]
CONFIG_CHR_DEV_ST [tape (st) driver]
CONFIG_CHR_DEV_OSST [OnSteam tape (osst) driver]
CONFIG_CHR_DEV_SG [SCSI generic (sg) driver]
CONFIG_DEBUG_QUEUES [for debugging multiple queues]
CONFIG_SCSI_MULTI_LUN [allow probes above lun 0]
CONFIG_SCSI_CONSTANTS [symbolic decode of SCSI errors]
CONFIG_SCSI_LOGGING [allow logging to be runtime selected]
CONFIG_SCSI_&#60;ll_driver&#62; [numerous lower level adapter drivers]
CONFIG_SCSI_DEBUG [lower level driver for debugging]
CONFIG_SCSI_PPA [older parallel port zip drives]
CONFIG_SCSI_IMM [newer parallel port zip drives]
CONFIG_BLK_DEV_IDESCSI [ide-scsi pseudo adapter]
CONFIG_I2O_SCSI [scsi command set over i2o bus]
CONFIG_SCSI_PCMCIA [for SCSI HBAs on PCMCIA bus]
CONFIG_USB_STORAGE [usb "mass storage" type]
CONFIG_MAGIC_SYSRQ [Alt+SysRq+S for emergency sync]
[Alt+SyrRq+U for emergency remount ro]
</PRE
></FONT
></TD
></TR
></TABLE
>
</P
><P
>&#13;If the root file system is on a SCSI disk then it makes sense
to build into the kernel the SCSI mid level, the sd driver and
the host adapter driver that the disk is connected to. In most cases
it is usually safe to build the sr, st and sg drivers as modules so
that they are loaded as required. If a device like a scanner is on
a separate adapter then its driver may well be built as a module. In
this case, that adapter driver will need to be loaded before the
scanner will be recognized.
</P
><P
>&#13;Linux distributions have many of the SCSI subsystem drivers built as
modules since building all of them in would lead to a very
large kernel that would exceed the capabilities of the boot loader.
This leads to a "chicken and the egg" problem in which the SCSI
drivers are needed to load the root file system and vice versa. The
2 phase load used by the initrd device addresses this problem
(see <A
HREF="modparams.html"
>Chapter 6</A
> for more details).
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dnamesscsidev.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="bparams.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Device Names in scsidev</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Boot Parameters</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>