|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.