1AUTOCONFIG(8)               System Manager's Manual              AUTOCONFIG(8)
2
3
4

NAME

6       autoconfig - configure the running system to the hardware
7

SYNOPSIS

9       autoconfig [-i ifile] [-n nfile] [-k kfile] [-v] [-d] [-c]
10

DESCRIPTION

12       Autoconfig is called by init(8) to configure the currently running sys‐
13       tem.  Init checks the exit status of autoconfig  to  determine  if  the
14       configuration  was  successful.   Autoconfig  reads  the  device  table
15       /etc/dtab for a list of devices which may be on the system.   It  first
16       verifies  that  the  kernel  has an attach routine for each device (and
17       therefore has a device handler) and that the kernel has  a  probe  rou‐
18       tine.   It  then  checks each of these devices to see if it is present,
19       and if it is, attempts to make it interrupt  (if  possible)  to  verify
20       that  the interrupt vector is correct.  The interrupt vector is checked
21       to see that it has not previously been used.  An interrupt through  any
22       of the device's consecutive vectors is sufficient.
23
24       Devices  which  use programmable vectors (MSCP and TMSCP) are permitted
25       to have a value of 0 in the dtab  vector  field.   This  special  value
26       tells autoconfig to call the kernel's get next available vector routine
27       and assign that to the device.  For programmable vector devices if  the
28       dtab vector field is non 0 then the value specified in the dtab file is
29       used.  In both cases the driver is called at its xxVec()  routine  with
30       the vector being assigned to the device.
31
32       If  the  address and vector are correct, it then attaches the device by
33       passing the address and unit number to the kernel's attach routine  and
34       setting up the interrupt vector according to the interrupt handlers and
35       priority listed in the device table.  If the unit number is given as  a
36       '?'  in  the  device table, it will be assigned the next available unit
37       number if the device exists.  If the device is not present or the  vec‐
38       tor  is  incorrect,  and  if the unit number was specified (not a '?'),
39       then the kernel is notified that that unit is not  present,  preventing
40       accesses to a nonexistent device address.
41
42       There  are  only  a few flags which are mostly useful for debugging but
43       for completeness, here they are.
44
45       -i ifile  Use ifile instead of /etc/dtab as the device table.
46
47       -n nfile  Use nfile instead of /unix for finding the  namelist  of  the
48                 currently running kernel.
49
50       -k kfile  The  file  kfile should be used instead of /dev/kmem to alter
51                 and read kernel memory.
52
53       -v        Verbose output, indicates reason for rejecting any device  in
54                 the   device  table.   Normally  only  attached  devices  are
55                 reported.
56
57       -c        Report error messages for devices skipped because of problems
58                 with their interrupt vectors.
59
60       -d        Turn  on debugging mode.  Shows many gory details of autocon‐
61                 fig's internal processing.
62

BUGS

64       Devices of the same type must be listed with ascending unit numbers  or
65       with wildcards.
66
67       Disks  that could be root devices must have their addresses and vectors
68       initialized in the kernel; the kernel uses a root attach entry  in  the
69       block  device  switch  to allow disk drivers to do any probes necessary
70       before autoconfiguration.
71
72       Must be run only by init(8).  There is a flag set in  the  kernel  that
73       autoconfig has already run, running autoconfig a second time results in
74       the error:
75
76       "namelist doesn't match running kernel."
77              Autoconfig attempts to open /dev/kmem for write.  If the  kernel
78              is in securelevel 1 or higher the open of /dev/kmem will fail.
79

FILES

81       /etc/dtab           device table
82       /unix
83       /dev/kmem
84

SEE ALSO

86       ucall(2), nlist(3), dtab(5)
87
88
89
903rd Berkeley Distribution      December 30, 1992                 AUTOCONFIG(8)
Impressum