Annotation of 43BSDReno/share/doc/smm/02.config/4.t, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1983 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)4.t 6.2 (Berkeley) 6/3/86
        !             6: .\"
        !             7: .\".ds RH "Configuration File Syntax
        !             8: .ne 2i
        !             9: .NH
        !            10: CONFIGURATION FILE SYNTAX
        !            11: .PP
        !            12: In this section we consider the specific rules used in writing
        !            13: a configuration file.  A complete grammar for the input language
        !            14: can be found in Appendix A and may be of use if you should have
        !            15: problems with syntax errors.
        !            16: .PP
        !            17: A configuration file is broken up into three logical pieces:
        !            18: .IP \(bu 3
        !            19: configuration parameters global to all system images 
        !            20: specified in the configuration file,
        !            21: .IP \(bu 3
        !            22: parameters specific to each
        !            23: system image to be generated, and
        !            24: .IP \(bu 3
        !            25: device specifications.
        !            26: .NH 2
        !            27: Global configuration parameters
        !            28: .PP
        !            29: The global configuration parameters are the type of machine,
        !            30: cpu types, options, timezone, system identifier, and maximum users.
        !            31: Each is specified with a separate line in the configuration file.
        !            32: .IP "\fBmachine\fP \fItype\fP"
        !            33: .br
        !            34: The system is to run on the machine type specified.  No more than
        !            35: one machine type can appear in the configuration file.  Legal values
        !            36: are
        !            37: .B vax
        !            38: and
        !            39: \fBsun\fP.
        !            40: .IP "\fBcpu\fP ``\fItype\fP''"
        !            41: .br
        !            42: This system is to run on the cpu type specified.
        !            43: More than one cpu type specification
        !            44: can appear in a configuration file.
        !            45: Legal types for a
        !            46: .B vax
        !            47: machine are
        !            48: \fBVAX8600\fP, \fBVAX780\fP, \fBVAX750\fP,
        !            49: \fBVAX730\fP
        !            50: and
        !            51: \fBVAX630\fP (MicroVAX II).
        !            52: The 8650 is listed as an 8600, the 785 as a 780, and a 725 as a 730.
        !            53: .IP "\fBoptions\fP \fIoptionlist\fP"
        !            54: .br
        !            55: Compile the listed optional code into the system. 
        !            56: Options in this list are separated by commas.
        !            57: Possible options are listed at the top of the generic makefile.
        !            58: A line of the form ``options FUNNY,HAHA'' generates global ``#define''s
        !            59: \-DFUNNY \-DHAHA in the resultant makefile.
        !            60: An option may be given a value by following its name with ``\fB=\fP'',
        !            61: then the value enclosed in (double) quotes.
        !            62: The following are major options are currently in use:
        !            63: COMPAT (include code for compatibility with 4.1BSD binaries),
        !            64: INET (Internet communication protocols),
        !            65: NS (Xerox NS communication protocols),
        !            66: and
        !            67: QUOTA (enable disk quotas).
        !            68: Other kernel options controlling system sizes and limits
        !            69: are listed in Appendix D;
        !            70: options for the network are found in Appendix E.
        !            71: There are additional options which are associated with certain
        !            72: peripheral devices; those are listed in the Synopsis section
        !            73: of the manual page for the device.
        !            74: .IP "\fBmakeoptions\fP \fIoptionlist\fP"
        !            75: .br
        !            76: Options that are used within the system makefile
        !            77: and evaluated by
        !            78: .I make
        !            79: are listed as
        !            80: .IR makeoptions .
        !            81: Options are listed with their values with the form
        !            82: ``makeoptions name=value,name2=value2.''
        !            83: The values must be enclosed in double quotes if they include numerals
        !            84: or begin with a dash.
        !            85: .IP "\fBtimezone\fP \fInumber\fP [ \fBdst\fP [ \fInumber\fP ] ]"
        !            86: .br
        !            87: Specifies the timezone used by the system.  This is measured in the
        !            88: number of hours your timezone is west of GMT.  
        !            89: EST is 5 hours west of GMT, PST is 8.  Negative numbers
        !            90: indicate hours east of GMT. If you specify
        !            91: \fBdst\fP, the system will operate under daylight savings time.
        !            92: An optional integer or floating point number may be included
        !            93: to specify a particular daylight saving time correction algorithm;
        !            94: the default value is 1, indicating the United States.
        !            95: Other values are: 2 (Australian style), 3 (Western European),
        !            96: 4 (Middle European), and 5 (Eastern European).  See
        !            97: \fIgettimeofday\fP\|(2) and \fIctime\fP\|(3) for more information.
        !            98: .IP "\fBident\fP \fIname\fP"
        !            99: .br
        !           100: This system is to be known as
        !           101: .IR name .
        !           102: This is usually a cute name like ERNIE (short for Ernie Co-Vax) or
        !           103: VAXWELL (for Vaxwell Smart).
        !           104: This value is defined for use in conditional compilation,
        !           105: and is also used to locate an optional list of source files specific
        !           106: to this system.
        !           107: .IP "\fBmaxusers\fP \fInumber\fP"
        !           108: .br
        !           109: The maximum expected number of simultaneously active user on this system is
        !           110: .IR number .
        !           111: This number is used to size several system data structures.
        !           112: .NH 2
        !           113: System image parameters
        !           114: .PP
        !           115: Multiple bootable images may be specified in a single configuration
        !           116: file.  The systems will have the same global configuration parameters
        !           117: and devices, but the location of the root file system and other
        !           118: system specific devices may be different.  A system image is specified
        !           119: with a ``config'' line:
        !           120: .IP
        !           121: \fBconfig\fP\ \fIsysname\fP\ \fIconfig-clauses\fP
        !           122: .LP
        !           123: The
        !           124: .I sysname
        !           125: field is the name given to the loaded system image; almost everyone
        !           126: names their standard system image ``vmunix''.  The configuration clauses
        !           127: are one or more specifications indicating where the root file system
        !           128: is located and the number and location of paging devices.
        !           129: The device used by the system to process argument lists during
        !           130: .IR execve (2)
        !           131: calls may also be specified, though in practice this is almost
        !           132: always selected by
        !           133: .I config
        !           134: using one of its rules for selecting default locations for
        !           135: system devices.
        !           136: .PP
        !           137: A configuration clause is one of the following
        !           138: .IP
        !           139: .nf
        !           140: \fBroot\fP [ \fBon\fP ] \fIroot-device\fP
        !           141: \fBswap\fP [ \fBon\fP ] \fIswap-device\fP [ \fBand\fP \fIswap-device\fP ] ...
        !           142: \fBdumps\fP [ \fBon\fP ] \fIdump-device\fP
        !           143: \fBargs\fP [ \fBon\fP ] \fIarg-device\fP
        !           144: .LP
        !           145: (the ``on'' is optional.)  Multiple configuration clauses
        !           146: are separated by white space; 
        !           147: .I config
        !           148: allows specifications to be continued across multiple lines
        !           149: by beginning the continuation line with a tab character.
        !           150: The ``root'' clause specifies where the root file system
        !           151: is located, the ``swap'' clause indicates swapping and paging
        !           152: area(s), the ``dumps'' clause can be used to force system dumps
        !           153: to be taken on a particular device, and the ``args'' clause
        !           154: can be used to specify that argument list processing for
        !           155: .I execve
        !           156: should be done on a particular device.
        !           157: .PP
        !           158: The device names supplied in the clauses may be fully specified
        !           159: as a device, unit, and file system partition; or underspecified
        !           160: in which case
        !           161: .I config
        !           162: will use builtin rules to select default unit numbers and file
        !           163: system partitions.  The defaulting rules are a bit complicated
        !           164: as they are dependent on the overall system configuration.
        !           165: For example, the swap area need not be specified at all if 
        !           166: the root device is specified; in this case the swap area is
        !           167: placed in the ``b'' partition of the same disk where the root
        !           168: file system is located.  Appendix B contains a complete list
        !           169: of the defaulting rules used in selecting system configuration
        !           170: devices.
        !           171: .PP
        !           172: The device names are translated to the
        !           173: appropriate major and minor device
        !           174: numbers on a per-machine basis.  A file,
        !           175: ``/sys/conf/devices.machine'' (where ``machine''
        !           176: is the machine type specified in the configuration file),
        !           177: is used to map a device name to its major block device number.
        !           178: The minor device number is calculated using the standard 
        !           179: disk partitioning rules: on unit 0, partition ``a'' is minor device
        !           180: 0, partition ``b'' is minor device 1, and so on; for units
        !           181: other than 0, add 8 times the unit number to get the minor
        !           182: device.
        !           183: .PP
        !           184: If the default mapping of device name to major/minor device
        !           185: number is incorrect for your configuration, it can be replaced
        !           186: by an explicit specification of the major/minor device.
        !           187: This is done by substituting
        !           188: .IP
        !           189: \fBmajor\fP \fIx\fP \fBminor\fP \fIy\fP
        !           190: .LP
        !           191: where the device name would normally be found.  For example,
        !           192: .IP
        !           193: .nf
        !           194: \fBconfig\fP vmunix \fBroot\fP \fBon\fP \fBmajor\fP 99 \fBminor\fP 1
        !           195: .fi
        !           196: .PP
        !           197: Normally, the areas configured for swap space are sized by the system
        !           198: at boot time.  If a non-standard size is to be used for one
        !           199: or more swap areas (less than the full partition),
        !           200: this can also be specified.  To do this, the
        !           201: device name specified for a swap area should have a ``size''
        !           202: specification appended.  For example,
        !           203: .IP
        !           204: .nf
        !           205: \fBconfig\fP vmunix \fBroot\fP \fBon\fP hp0 \fBswap\fP \fBon\fP hp0b \fBsize\fP 1200
        !           206: .fi
        !           207: .LP
        !           208: would force swapping to be done in partition ``b'' of ``hp0'' and
        !           209: the swap partition size would be set to 1200 sectors.  A swap area
        !           210: sized larger than the associated disk partition is trimmed to the
        !           211: partition size.
        !           212: .PP
        !           213: To create a generic configuration, only the clause ``swap generic''
        !           214: should be specified; any extra clauses will cause an error.
        !           215: .NH 2
        !           216: Device specifications
        !           217: .PP
        !           218: Each device attached to a machine must be specified
        !           219: to
        !           220: .I config
        !           221: so that the system generated will know to probe for it during
        !           222: the autoconfiguration process carried out at boot time.  Hardware
        !           223: specified in the configuration need not actually be present on
        !           224: the machine where the generated system is to be run.  Only the
        !           225: hardware actually found at boot time will be used by the system.
        !           226: .PP
        !           227: The specification of hardware devices in the configuration file
        !           228: parallels the interconnection hierarchy of the machine to be
        !           229: configured.  On the VAX, this means that a configuration file must
        !           230: indicate what MASSBUS and UNIBUS adapters are present, and to
        !           231: which \fInexi\fP they might be connected.* 
        !           232: .FS
        !           233: * While VAX-11/750's and VAX-11/730 do not actually have 
        !           234: nexi, the system treats them as having 
        !           235: .I "simulated nexi"
        !           236: to simplify device configuration.
        !           237: .FE
        !           238: Similarly, devices
        !           239: and controllers must be indicated as possibly being connected
        !           240: to one or more adapters.  A device description may provide a
        !           241: complete definition of the possible configuration parameters
        !           242: or it may leave certain parameters undefined and make the system
        !           243: probe for all the possible values.  The latter allows a single
        !           244: device configuration list to match many possible physical
        !           245: configurations.  For example, a disk may be indicated as present
        !           246: at UNIBUS adapter 0, or at any UNIBUS adapter which the system
        !           247: locates at boot time.  The latter scheme, termed 
        !           248: .IR wildcarding ,
        !           249: allows more flexibility in the physical configuration of a system;
        !           250: if a disk must be moved around for some reason, the system will
        !           251: still locate it at the alternate location.
        !           252: .PP
        !           253: A device specification takes one of the following forms:
        !           254: .IP
        !           255: .nf
        !           256: \fBmaster\fP \fIdevice-name\fP \fIdevice-info\fP
        !           257: \fBcontroller\fP \fIdevice-name\fP \fIdevice-info\fP [ \fIinterrupt-spec\fP ]
        !           258: \fBdevice\fP \fIdevice-name\fP \fIdevice-info\fP \fIinterrupt-spec\fP
        !           259: \fBdisk\fP \fIdevice-name\fP \fIdevice-info\fP
        !           260: \fBtape\fP \fIdevice-name\fP \fIdevice-info\fP
        !           261: .fi
        !           262: .LP
        !           263: A ``master'' is a MASSBUS tape controller; a ``controller'' is a
        !           264: disk controller, a UNIBUS tape controller, a MASSBUS adapter, or
        !           265: a UNIBUS adapter.  A ``device'' is an autonomous device which
        !           266: connects directly to a UNIBUS adapter (as opposed to something
        !           267: like a disk which connects through a disk controller).  ``Disk''
        !           268: and ``tape'' identify disk drives and tape drives connected to
        !           269: a ``controller'' or ``master.''
        !           270: .PP
        !           271: The
        !           272: .I device-name
        !           273: is one of the standard device names, as
        !           274: indicated in section 4 of the UNIX Programmers Manual,
        !           275: concatenated with the
        !           276: .I logical
        !           277: unit number to be assigned the device (the 
        !           278: .I logical
        !           279: unit number may be different than the
        !           280: .I physical
        !           281: unit number indicated on the front of something
        !           282: like a disk; the
        !           283: .I logical
        !           284: unit number is used to refer to the UNIX device, not
        !           285: the physical unit number).  For example, ``hp0'' is logical
        !           286: unit 0 of a MASSBUS storage device, even though it might
        !           287: be physical unit 3 on MASSBUS adapter 1.
        !           288: .PP
        !           289: The
        !           290: .I device-info
        !           291: clause specifies how the hardware is
        !           292: connected in the interconnection hierarchy.  On the VAX,
        !           293: UNIBUS and MASSBUS adapters are connected to the internal
        !           294: system bus through
        !           295: a \fInexus\fP.
        !           296: Thus, one of the following
        !           297: specifications would be used:
        !           298: .IP
        !           299: .ta 1.5i 2.5i 4.0i
        !           300: .nf
        !           301: \fBcontroller\fP       mba0    \fBat\fP \fBnexus\fP \fIx\fP
        !           302: \fBcontroller\fP       uba0    \fBat\fP \fBnexus\fP \fIx\fP
        !           303: .fi
        !           304: .LP
        !           305: To tie a controller to a specific nexus, ``x'' would be supplied
        !           306: as the number of that nexus; otherwise ``x'' may be specified as
        !           307: ``?'', in which
        !           308: case the system will probe all nexi present looking
        !           309: for the specified controller.
        !           310: .PP
        !           311: The remaining interconnections on the VAX are:
        !           312: .IP \(bu 3
        !           313: a controller
        !           314: may be connected to another controller (e.g. a disk controller attached
        !           315: to a UNIBUS adapter),
        !           316: .IP \(bu 3
        !           317: a master is always attached to a controller (a MASSBUS adapter),
        !           318: .IP \(bu 3
        !           319: a tape is always attached to a master (for MASSBUS
        !           320: tape drives),
        !           321: .IP \(bu 3
        !           322: a disk is always attached to a controller, and
        !           323: .IP \(bu 3
        !           324: devices
        !           325: are always attached to controllers (e.g. UNIBUS controllers attached
        !           326: to UNIBUS adapters).
        !           327: .LP
        !           328: The following lines give an example of each of these interconnections:
        !           329: .IP
        !           330: .ta 1.5i 2.5i 4.0i
        !           331: .nf
        !           332: \fBcontroller\fP       hk0     \fBat\fP uba0 ...
        !           333: \fBmaster\fP   ht0     \fBat\fP mba0 ...
        !           334: \fBdisk\fP     hp0     \fBat\fP mba0 ...
        !           335: \fBtape\fP     tu0     \fBat\fP ht0 ...
        !           336: \fBdisk\fP     rk1     \fBat\fP hk0 ...
        !           337: \fBdevice\fP   dz0     \fBat\fP uba0 ...
        !           338: .fi
        !           339: .LP
        !           340: Any piece of hardware which may be connected to a specific
        !           341: controller may also be wildcarded across multiple controllers.
        !           342: .PP
        !           343: The final piece of information needed by the system to configure
        !           344: devices is some indication of where or how a device will interrupt.
        !           345: For tapes and disks, simply specifying the \fIslave\fP or \fIdrive\fP
        !           346: number is sufficient to locate the control status register for the
        !           347: device.
        !           348: \fIDrive\fP numbers may be wildcarded
        !           349: on MASSBUS devices, but not on disks on a UNIBUS controller.
        !           350: For controllers, the control status register must be
        !           351: given explicitly, as well the number of interrupt vectors used and
        !           352: the names of the routines to which they should be bound. 
        !           353: Thus the example lines given above might be completed as:
        !           354: .IP
        !           355: .ta 1.5i 2.5i 4.0i
        !           356: .nf
        !           357: \fBcontroller\fP       hk0     \fBat\fP uba0 \fBcsr\fP 0177440 \fBvector\fP rkintr
        !           358: \fBmaster\fP   ht0     \fBat\fP mba0 \fBdrive\fP 0
        !           359: \fBdisk\fP     hp0     \fBat\fP mba0 \fBdrive\fP ?
        !           360: \fBtape\fP     tu0     \fBat\fP ht0 \fBslave\fP 0
        !           361: \fBdisk\fP     rk1     \fBat\fP hk0 \fBdrive\fP 1
        !           362: \fBdevice\fP   dz0     \fBat\fP uba0 \fBcsr\fP 0160100 \fBvector\fP dzrint dzxint
        !           363: .fi
        !           364: .PP
        !           365: Certain device drivers require extra information passed to them
        !           366: at boot time to tailor their operation to the actual hardware present.
        !           367: The line printer driver, for example, needs to know how many columns
        !           368: are present on each non-standard line printer (i.e. a line printer
        !           369: with other than 80 columns).  The drivers for the terminal multiplexors
        !           370: need to know which lines are attached to modem lines so that no one will
        !           371: be allowed to use them unless a connection is present.  For this reason,
        !           372: one last parameter may be specified to a
        !           373: .IR device ,
        !           374: a 
        !           375: .I flags
        !           376: field.  It has the syntax
        !           377: .IP
        !           378: \fBflags\fP \fInumber\fP
        !           379: .LP
        !           380: and is usually placed after the
        !           381: .I csr
        !           382: specification.  The
        !           383: .I number
        !           384: is passed directly to the associated driver.  The manual pages
        !           385: in section 4 should be consulted to determine how each driver
        !           386: uses this value (if at all).
        !           387: Communications interface drivers commonly use the flags
        !           388: to indicate whether modem control signals are in use.
        !           389: .PP
        !           390: The exact syntax for each specific device is given in the Synopsis
        !           391: section of its manual page in section 4 of the manual.
        !           392: .NH 2
        !           393: Pseudo-devices
        !           394: .PP
        !           395: A number of drivers and software subsystems
        !           396: are treated like device drivers without any associated hardware.
        !           397: To include any of these pieces, a ``pseudo-device'' specification
        !           398: must be used.  A specification for a pseudo device takes the form
        !           399: .IP
        !           400: .DT
        !           401: .nf
        !           402: \fBpseudo-device\fP    \fIdevice-name\fP [ \fIhowmany\fP ]
        !           403: .fi
        !           404: .PP
        !           405: Examples of pseudo devices are
        !           406: \fBpty\fP, the pseudo terminal driver (where the optional
        !           407: .I howmany
        !           408: value indicates the number of pseudo terminals to configure, 32 default),
        !           409: and \fBloop\fP, the software loopback network pseudo-interface.
        !           410: Other pseudo devices for the network include
        !           411: \fBimp\fP (required when a CSS or ACC imp is configured)
        !           412: and \fBether\fP (used by the Address Resolution Protocol
        !           413: on 10 Mb/sec Ethernets).
        !           414: More information on configuring each of these can also be found
        !           415: in section 4 of the manual.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.