mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-23 11:18:54 +00:00
443 lines
17 KiB
Perl
443 lines
17 KiB
Perl
.\" Copyright (c) 1983, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)4.t 8.1 (Berkeley) 6/8/93
|
|
.\"
|
|
.\".ds RH "Configuration File Syntax
|
|
.ne 2i
|
|
.NH
|
|
CONFIGURATION FILE SYNTAX
|
|
.PP
|
|
In this section we consider the specific rules used in writing
|
|
a configuration file. A complete grammar for the input language
|
|
can be found in Appendix A and may be of use if you should have
|
|
problems with syntax errors.
|
|
.PP
|
|
A configuration file is broken up into three logical pieces:
|
|
.IP \(bu 3
|
|
configuration parameters global to all system images
|
|
specified in the configuration file,
|
|
.IP \(bu 3
|
|
parameters specific to each
|
|
system image to be generated, and
|
|
.IP \(bu 3
|
|
device specifications.
|
|
.NH 2
|
|
Global configuration parameters
|
|
.PP
|
|
The global configuration parameters are the type of machine,
|
|
cpu types, options, timezone, system identifier, and maximum users.
|
|
Each is specified with a separate line in the configuration file.
|
|
.IP "\fBmachine\fP \fItype\fP"
|
|
.br
|
|
The system is to run on the machine type specified. No more than
|
|
one machine type can appear in the configuration file. Legal values
|
|
are
|
|
.B vax
|
|
and
|
|
\fBsun\fP.
|
|
.IP "\fBcpu\fP ``\fItype\fP''"
|
|
.br
|
|
This system is to run on the cpu type specified.
|
|
More than one cpu type specification
|
|
can appear in a configuration file.
|
|
Legal types for a
|
|
.B vax
|
|
machine are
|
|
\fBVAX8600\fP, \fBVAX780\fP, \fBVAX750\fP,
|
|
\fBVAX730\fP
|
|
and
|
|
\fBVAX630\fP (MicroVAX II).
|
|
The 8650 is listed as an 8600, the 785 as a 780, and a 725 as a 730.
|
|
.IP "\fBoptions\fP \fIoptionlist\fP"
|
|
.br
|
|
Compile the listed optional code into the system.
|
|
Options in this list are separated by commas.
|
|
Possible options are listed at the top of the generic makefile.
|
|
A line of the form ``options FUNNY,HAHA'' generates global ``#define''s
|
|
\-DFUNNY \-DHAHA in the resultant makefile.
|
|
An option may be given a value by following its name with ``\fB=\fP'',
|
|
then the value enclosed in (double) quotes.
|
|
The following are major options are currently in use:
|
|
COMPAT (include code for compatibility with 4.1BSD binaries),
|
|
INET (Internet communication protocols),
|
|
NS (Xerox NS communication protocols),
|
|
and
|
|
QUOTA (enable disk quotas).
|
|
Other kernel options controlling system sizes and limits
|
|
are listed in Appendix D;
|
|
options for the network are found in Appendix E.
|
|
There are additional options which are associated with certain
|
|
peripheral devices; those are listed in the Synopsis section
|
|
of the manual page for the device.
|
|
.IP "\fBmakeoptions\fP \fIoptionlist\fP"
|
|
.br
|
|
Options that are used within the system makefile
|
|
and evaluated by
|
|
.I make
|
|
are listed as
|
|
.IR makeoptions .
|
|
Options are listed with their values with the form
|
|
``makeoptions name=value,name2=value2.''
|
|
The values must be enclosed in double quotes if they include numerals
|
|
or begin with a dash.
|
|
.IP "\fBtimezone\fP \fInumber\fP [ \fBdst\fP [ \fInumber\fP ] ]"
|
|
.br
|
|
Specifies the timezone used by the system. This is measured in the
|
|
number of hours your timezone is west of GMT.
|
|
EST is 5 hours west of GMT, PST is 8. Negative numbers
|
|
indicate hours east of GMT. If you specify
|
|
\fBdst\fP, the system will operate under daylight savings time.
|
|
An optional integer or floating point number may be included
|
|
to specify a particular daylight saving time correction algorithm;
|
|
the default value is 1, indicating the United States.
|
|
Other values are: 2 (Australian style), 3 (Western European),
|
|
4 (Middle European), and 5 (Eastern European). See
|
|
\fIgettimeofday\fP\|(2) and \fIctime\fP\|(3) for more information.
|
|
.IP "\fBident\fP \fIname\fP"
|
|
.br
|
|
This system is to be known as
|
|
.IR name .
|
|
This is usually a cute name like ERNIE (short for Ernie Co-Vax) or
|
|
VAXWELL (for Vaxwell Smart).
|
|
This value is defined for use in conditional compilation,
|
|
and is also used to locate an optional list of source files specific
|
|
to this system.
|
|
.IP "\fBmaxusers\fP \fInumber\fP"
|
|
.br
|
|
The maximum expected number of simultaneously active user on this system is
|
|
.IR number .
|
|
This number is used to size several system data structures.
|
|
.NH 2
|
|
System image parameters
|
|
.PP
|
|
Multiple bootable images may be specified in a single configuration
|
|
file. The systems will have the same global configuration parameters
|
|
and devices, but the location of the root file system and other
|
|
system specific devices may be different. A system image is specified
|
|
with a ``config'' line:
|
|
.IP
|
|
\fBconfig\fP\ \fIsysname\fP\ \fIconfig-clauses\fP
|
|
.LP
|
|
The
|
|
.I sysname
|
|
field is the name given to the loaded system image; almost everyone
|
|
names their standard system image ``kernel''. The configuration clauses
|
|
are one or more specifications indicating where the root file system
|
|
is located and the number and location of paging devices.
|
|
The device used by the system to process argument lists during
|
|
.IR execve (2)
|
|
calls may also be specified, though in practice this is almost
|
|
always selected by
|
|
.I config
|
|
using one of its rules for selecting default locations for
|
|
system devices.
|
|
.PP
|
|
A configuration clause is one of the following
|
|
.IP
|
|
.nf
|
|
\fBroot\fP [ \fBon\fP ] \fIroot-device\fP
|
|
\fBswap\fP [ \fBon\fP ] \fIswap-device\fP [ \fBand\fP \fIswap-device\fP ] ...
|
|
\fBdumps\fP [ \fBon\fP ] \fIdump-device\fP
|
|
\fBargs\fP [ \fBon\fP ] \fIarg-device\fP
|
|
.LP
|
|
(the ``on'' is optional.) Multiple configuration clauses
|
|
are separated by white space;
|
|
.I config
|
|
allows specifications to be continued across multiple lines
|
|
by beginning the continuation line with a tab character.
|
|
The ``root'' clause specifies where the root file system
|
|
is located, the ``swap'' clause indicates swapping and paging
|
|
area(s), the ``dumps'' clause can be used to force system dumps
|
|
to be taken on a particular device, and the ``args'' clause
|
|
can be used to specify that argument list processing for
|
|
.I execve
|
|
should be done on a particular device.
|
|
.PP
|
|
The device names supplied in the clauses may be fully specified
|
|
as a device, unit, and file system partition; or underspecified
|
|
in which case
|
|
.I config
|
|
will use builtin rules to select default unit numbers and file
|
|
system partitions. The defaulting rules are a bit complicated
|
|
as they are dependent on the overall system configuration.
|
|
For example, the swap area need not be specified at all if
|
|
the root device is specified; in this case the swap area is
|
|
placed in the ``b'' partition of the same disk where the root
|
|
file system is located. Appendix B contains a complete list
|
|
of the defaulting rules used in selecting system configuration
|
|
devices.
|
|
.PP
|
|
The device names are translated to the
|
|
appropriate major and minor device
|
|
numbers on a per-machine basis. A file,
|
|
``/sys/conf/devices.machine'' (where ``machine''
|
|
is the machine type specified in the configuration file),
|
|
is used to map a device name to its major block device number.
|
|
The minor device number is calculated using the standard
|
|
disk partitioning rules: on unit 0, partition ``a'' is minor device
|
|
0, partition ``b'' is minor device 1, and so on; for units
|
|
other than 0, add 8 times the unit number to get the minor
|
|
device.
|
|
.PP
|
|
If the default mapping of device name to major/minor device
|
|
number is incorrect for your configuration, it can be replaced
|
|
by an explicit specification of the major/minor device.
|
|
This is done by substituting
|
|
.IP
|
|
\fBmajor\fP \fIx\fP \fBminor\fP \fIy\fP
|
|
.LP
|
|
where the device name would normally be found. For example,
|
|
.IP
|
|
.nf
|
|
\fBconfig\fP kernel \fBroot\fP \fBon\fP \fBmajor\fP 99 \fBminor\fP 1
|
|
.fi
|
|
.PP
|
|
Normally, the areas configured for swap space are sized by the system
|
|
at boot time. If a non-standard size is to be used for one
|
|
or more swap areas (less than the full partition),
|
|
this can also be specified. To do this, the
|
|
device name specified for a swap area should have a ``size''
|
|
specification appended. For example,
|
|
.IP
|
|
.nf
|
|
\fBconfig\fP kernel \fBroot\fP \fBon\fP hp0 \fBswap\fP \fBon\fP hp0b \fBsize\fP 1200
|
|
.fi
|
|
.LP
|
|
would force swapping to be done in partition ``b'' of ``hp0'' and
|
|
the swap partition size would be set to 1200 sectors. A swap area
|
|
sized larger than the associated disk partition is trimmed to the
|
|
partition size.
|
|
.PP
|
|
To create a generic configuration, only the clause ``swap generic''
|
|
should be specified; any extra clauses will cause an error.
|
|
.NH 2
|
|
Device specifications
|
|
.PP
|
|
Each device attached to a machine must be specified
|
|
to
|
|
.I config
|
|
so that the system generated will know to probe for it during
|
|
the autoconfiguration process carried out at boot time. Hardware
|
|
specified in the configuration need not actually be present on
|
|
the machine where the generated system is to be run. Only the
|
|
hardware actually found at boot time will be used by the system.
|
|
.PP
|
|
The specification of hardware devices in the configuration file
|
|
parallels the interconnection hierarchy of the machine to be
|
|
configured. On the VAX, this means that a configuration file must
|
|
indicate what MASSBUS and UNIBUS adapters are present, and to
|
|
which \fInexi\fP they might be connected.*
|
|
.FS
|
|
* While VAX-11/750's and VAX-11/730 do not actually have
|
|
nexi, the system treats them as having
|
|
.I "simulated nexi"
|
|
to simplify device configuration.
|
|
.FE
|
|
Similarly, devices
|
|
and controllers must be indicated as possibly being connected
|
|
to one or more adapters. A device description may provide a
|
|
complete definition of the possible configuration parameters
|
|
or it may leave certain parameters undefined and make the system
|
|
probe for all the possible values. The latter allows a single
|
|
device configuration list to match many possible physical
|
|
configurations. For example, a disk may be indicated as present
|
|
at UNIBUS adapter 0, or at any UNIBUS adapter which the system
|
|
locates at boot time. The latter scheme, termed
|
|
.IR wildcarding ,
|
|
allows more flexibility in the physical configuration of a system;
|
|
if a disk must be moved around for some reason, the system will
|
|
still locate it at the alternate location.
|
|
.PP
|
|
A device specification takes one of the following forms:
|
|
.IP
|
|
.nf
|
|
\fBmaster\fP \fIdevice-name\fP \fIdevice-info\fP
|
|
\fBcontroller\fP \fIdevice-name\fP \fIdevice-info\fP [ \fIinterrupt-spec\fP ]
|
|
\fBdevice\fP \fIdevice-name\fP \fIdevice-info\fP \fIinterrupt-spec\fP
|
|
\fBdisk\fP \fIdevice-name\fP \fIdevice-info\fP
|
|
\fBtape\fP \fIdevice-name\fP \fIdevice-info\fP
|
|
.fi
|
|
.LP
|
|
A ``master'' is a MASSBUS tape controller; a ``controller'' is a
|
|
disk controller, a UNIBUS tape controller, a MASSBUS adapter, or
|
|
a UNIBUS adapter. A ``device'' is an autonomous device which
|
|
connects directly to a UNIBUS adapter (as opposed to something
|
|
like a disk which connects through a disk controller). ``Disk''
|
|
and ``tape'' identify disk drives and tape drives connected to
|
|
a ``controller'' or ``master.''
|
|
.PP
|
|
The
|
|
.I device-name
|
|
is one of the standard device names, as
|
|
indicated in section 4 of the UNIX Programmers Manual,
|
|
concatenated with the
|
|
.I logical
|
|
unit number to be assigned the device (the
|
|
.I logical
|
|
unit number may be different than the
|
|
.I physical
|
|
unit number indicated on the front of something
|
|
like a disk; the
|
|
.I logical
|
|
unit number is used to refer to the UNIX device, not
|
|
the physical unit number). For example, ``hp0'' is logical
|
|
unit 0 of a MASSBUS storage device, even though it might
|
|
be physical unit 3 on MASSBUS adapter 1.
|
|
.PP
|
|
The
|
|
.I device-info
|
|
clause specifies how the hardware is
|
|
connected in the interconnection hierarchy. On the VAX,
|
|
UNIBUS and MASSBUS adapters are connected to the internal
|
|
system bus through
|
|
a \fInexus\fP.
|
|
Thus, one of the following
|
|
specifications would be used:
|
|
.IP
|
|
.ta 1.5i 2.5i 4.0i
|
|
.nf
|
|
\fBcontroller\fP mba0 \fBat\fP \fBnexus\fP \fIx\fP
|
|
\fBcontroller\fP uba0 \fBat\fP \fBnexus\fP \fIx\fP
|
|
.fi
|
|
.LP
|
|
To tie a controller to a specific nexus, ``x'' would be supplied
|
|
as the number of that nexus; otherwise ``x'' may be specified as
|
|
``?'', in which
|
|
case the system will probe all nexi present looking
|
|
for the specified controller.
|
|
.PP
|
|
The remaining interconnections on the VAX are:
|
|
.IP \(bu 3
|
|
a controller
|
|
may be connected to another controller (e.g. a disk controller attached
|
|
to a UNIBUS adapter),
|
|
.IP \(bu 3
|
|
a master is always attached to a controller (a MASSBUS adapter),
|
|
.IP \(bu 3
|
|
a tape is always attached to a master (for MASSBUS
|
|
tape drives),
|
|
.IP \(bu 3
|
|
a disk is always attached to a controller, and
|
|
.IP \(bu 3
|
|
devices
|
|
are always attached to controllers (e.g. UNIBUS controllers attached
|
|
to UNIBUS adapters).
|
|
.LP
|
|
The following lines give an example of each of these interconnections:
|
|
.IP
|
|
.ta 1.5i 2.5i 4.0i
|
|
.nf
|
|
\fBcontroller\fP hk0 \fBat\fP uba0 ...
|
|
\fBmaster\fP ht0 \fBat\fP mba0 ...
|
|
\fBdisk\fP hp0 \fBat\fP mba0 ...
|
|
\fBtape\fP tu0 \fBat\fP ht0 ...
|
|
\fBdisk\fP rk1 \fBat\fP hk0 ...
|
|
\fBdevice\fP dz0 \fBat\fP uba0 ...
|
|
.fi
|
|
.LP
|
|
Any piece of hardware which may be connected to a specific
|
|
controller may also be wildcarded across multiple controllers.
|
|
.PP
|
|
The final piece of information needed by the system to configure
|
|
devices is some indication of where or how a device will interrupt.
|
|
For tapes and disks, simply specifying the \fIslave\fP or \fIdrive\fP
|
|
number is sufficient to locate the control status register for the
|
|
device.
|
|
\fIDrive\fP numbers may be wildcarded
|
|
on MASSBUS devices, but not on disks on a UNIBUS controller.
|
|
For controllers, the control status register must be
|
|
given explicitly, as well the number of interrupt vectors used and
|
|
the names of the routines to which they should be bound.
|
|
Thus the example lines given above might be completed as:
|
|
.IP
|
|
.ta 1.5i 2.5i 4.0i
|
|
.nf
|
|
\fBcontroller\fP hk0 \fBat\fP uba0 \fBcsr\fP 0177440 \fBvector\fP rkintr
|
|
\fBmaster\fP ht0 \fBat\fP mba0 \fBdrive\fP 0
|
|
\fBdisk\fP hp0 \fBat\fP mba0 \fBdrive\fP ?
|
|
\fBtape\fP tu0 \fBat\fP ht0 \fBslave\fP 0
|
|
\fBdisk\fP rk1 \fBat\fP hk0 \fBdrive\fP 1
|
|
\fBdevice\fP dz0 \fBat\fP uba0 \fBcsr\fP 0160100 \fBvector\fP dzrint dzxint
|
|
.fi
|
|
.PP
|
|
Certain device drivers require extra information passed to them
|
|
at boot time to tailor their operation to the actual hardware present.
|
|
The line printer driver, for example, needs to know how many columns
|
|
are present on each non-standard line printer (i.e. a line printer
|
|
with other than 80 columns). The drivers for the terminal multiplexors
|
|
need to know which lines are attached to modem lines so that no one will
|
|
be allowed to use them unless a connection is present. For this reason,
|
|
one last parameter may be specified to a
|
|
.IR device ,
|
|
a
|
|
.I flags
|
|
field. It has the syntax
|
|
.IP
|
|
\fBflags\fP \fInumber\fP
|
|
.LP
|
|
and is usually placed after the
|
|
.I csr
|
|
specification. The
|
|
.I number
|
|
is passed directly to the associated driver. The manual pages
|
|
in section 4 should be consulted to determine how each driver
|
|
uses this value (if at all).
|
|
Communications interface drivers commonly use the flags
|
|
to indicate whether modem control signals are in use.
|
|
.PP
|
|
The exact syntax for each specific device is given in the Synopsis
|
|
section of its manual page in section 4 of the manual.
|
|
.NH 2
|
|
Pseudo-devices
|
|
.PP
|
|
A number of drivers and software subsystems
|
|
are treated like device drivers without any associated hardware.
|
|
To include any of these pieces, a ``pseudo-device'' specification
|
|
must be used. A specification for a pseudo device takes the form
|
|
.IP
|
|
.DT
|
|
.nf
|
|
\fBpseudo-device\fP \fIdevice-name\fP [ \fIhowmany\fP ]
|
|
.fi
|
|
.PP
|
|
Examples of pseudo devices are
|
|
\fBpty\fP, the pseudo terminal driver (where the optional
|
|
.I howmany
|
|
value indicates the number of pseudo terminals to configure, 32 default),
|
|
and \fBloop\fP, the software loopback network pseudo-interface.
|
|
Other pseudo devices for the network include
|
|
\fBimp\fP (required when a CSS or ACC imp is configured)
|
|
and \fBether\fP (used by the Address Resolution Protocol
|
|
on 10 Mb/sec Ethernets).
|
|
More information on configuring each of these can also be found
|
|
in section 4 of the manual.
|