Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

CONFIG(8)  —  System Manager’s Manual — Maintenance Commands

NAME

config − Build system configuration files

SYNOPSIS

/etc/config [ −p ] config_file

DESCRIPTION

Config builds a set of system configuration files from a short file which describes the sort of system that is being configured.  It also takes as input a file which tells config what files are needed to generate a system.  If the −p option is supplied, config will configure a system for profiling; c.f.  kgmon(8), gprof(1).

Config should be run from the conf subdirectory of the system source (usually /sys/conf).  Config assumes that there is already a directory ../config_file created and it places all its output files in there.  The output of config consists of a number files: ioconf.c which contains a description of what i/o devices are attached to the system, ubglue.s which is a set of interrupt service routines for devices attached to the UNIBUS, makefile for building the system and a set of header files which contain the number of various devices that will be compiled into the system. 

After running config, it is necessary to run "make depend" in the directory where the new makefile was created.  Config reminds you of this when it completes. 

If you get any other error messages from config, you should fix the problems in your configuration file and try again.  If you try to compile a system that had configuration errors, you will meet with failure. 

CONFIG FILE FORMAT

In the following descriptions, a number can be a decimal integer, a whole octal number or a whole hexadecimal number.  Hexadecimal and octal are specified to config in the same way they are specified to the C compiler, a number starting with "0x" is a hexadecimal number and a number starting with just a "0" is an octal number.  When specifying the timezone, you may also use floating point numbers. 

Comments are specified in a config file with the character "#".  All characters from a "#" to the end of a line are ignored. 

Lines beginning with tabs are considered continuations of the previous line. 

Lines of the config file can be one of several types.  First there are lines which describe general things about your system.  Here is a list of the possibilities. 

machine type
This is system is to run on the machine type specified. No more than one machine type can appear in the config file. Legal types are vax and sun. 

cpu "type"
This system is to run on the cpu type specified. More than one cpu type can appear in the config file. Legal types are VAX780, VAX750, and VAX730. 

options optlist
Compile the listed options into the system.  Options in this list are seperated by commas. There is a list of options that you may specify in the generic makefile. A line of the form "options FUNNY,HAHA" yields −DFUNNY −DHAHA to the C compiler. An option may be given a value, by following its name with "=" then the value enclosed in (double) quotes. None of the standard options use such a value. 

timezone number [ dst ]
Specifies the timezone you are in.  This is measured in the number of hours west of GMT you are.  5 is EST, 8 is PST. Negative numbers indicate hours east of GMT. If you specify dst, the system will operate under daylight savings time. 

ident name
This system is to be known as name.  This is usually a cute name like ERNIE (short for Ernie Co-Vax) or VAXWELL (for Vaxwell Smart). 

maxusers number
The maximum expected number of simultaneously active user on this system is number.  This number is used to size several system data structures. 

config device sysname
Generate a system which runs with its root on device and call it sysname.  There may be more than one config specification in a config file. 

The second type of line in the config file describes what devices your system has and what they are connected to (e.g. I have a DZ-11 on UNIBUS Adapter 0).  These lines have the following format. 
dev_typedev_name at con_dev more_info

Dev_type is either master, tape, disk, controller, device, or pseudo-device.  A master is a MASSBUS tape controller.  A controller is a disk controller, a UNIBUS tape controller, an mba (MASSBUS) or a uba (UNIBUS).  A device is usually something which connects to the uba, like a DZ-11 or a DR-11.  Disk and tape should be self-explanatory.  A pseudo-device is something which should be conditionally loaded, but is not really a device.  Current examples are the bk line discipline, the pseudo-tty driver and various network subsystems. (For pseudo-devices, more_info may be specified as an integer, that gives the value of the symbol defined in the header file created for that device, and is generally used to indicate the number of instances of the pseudo-device to create. If you load a subsystem you will probably find it convenient to enable conditional code using an options specification. 

The dev_name is the name of the device you are specifying.  If it is not a pseudo-device, you must give a number afterwards (e.g. dz0, dz1, hp0). 

Con_dev is what the device you are specifying is connected to.  If you have a disk on MASSBUS adapter zero then the proper con_dev is mba0.  For MASSBUS and UNIBUS adapters, you must give nexus?  as the con_dev. 

The more_info field is a sequence of the following:

csr addr
Specifies the csr for a device.  Must be given for UNIBUS tape and disk controllers and all devices connected to the UNIBUS.  Make certain that you put a leading zero on the address so that it will be interpreted as an octal number.

drive number
For a disk or UNIBUS tape, specifies which drive this is.

slave number
For a MASSBUS tape, specifies which tape slave it is.

flags number
These flags are passed to the device driver at system initialization time.

vector addr [ addr ]
For devices which interrupt on the UNIBUS, specifies the interrupt service routine.

The easiest way to understand config files it to look at a working one and modify it to suit your system.  Here is a short sample configuration file for a system with an RM03, a TU45, a DZ-11 and a DH-11. 

#
# Sample configuration file
#
machinevax
cpuVAX780
identSAMPLE
hz60
timezone8 dst
maxusers24
 confighpvmunix
confighkhkvmunix
 controllermba0at nexus ?
controlleruba0at nexus ?
diskhp0at mba0 drive 0
masterht0at mba1 drive 0
tapetu0at ht0 slave 0
pseudo-devicepty16
pseudo-devicebk
controllerhk0at uba0 csr 0177440vector rkintr
diskrk0at hk0 drive 0
diskrk1at hk0 drive 1
devicedh1at uba0 csr 0160040vector dhrint dhxint
devicedz0at uba0 csr 0160100 flags 0xc0vector dzrint dzxint

A ?  may be substituted for a number in three places and the system will figure out what to fill in for the ?  when it boots.  You can put question marks on a con_dev (e.g. at mba?), on a drive number (e.g. drive ?), or on a slave number (e.g. slave ?) (The latter applies to MASSBUS devices only − uba devices don’t have slaves).  This allows redundancy as a single system can be built which will reboot on different hardware configurations. 

FILES

/sys/conf/makefile.vaxgeneric makefile for the VAX
/sys/conf/makefile.sungeneric makefile for the SUN
/sys/conf/fileslist of common files system is built from
/sys/conf/files.vaxlist of VAX specific files
/sys/conf/files.sunlist of SUN specific files

SEE ALSO

The SYNOPSIS portion of each device in section 4. 

BUGS

The line numbers reported in error messages are usually off by one. 

Should describe the format of the “files” file here; you can probably figure it out for yourself in the meantime. 

Configuring multiple MASSBUS drives at spaced intervals generates an incorrect ioconf.c file. 

Sun System Release 0.3  —  27 March 1983

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026