BSD 2.11 - man page for autoconfig (bsd section 8)
|Linux & Unix Commands - Search Man Pages
autoconfig - configure the running system to the hardware
autoconfig [-i ifile] [-n nfile] [-k kfile] [-v] [-d] [-c]
Autoconfig is called by init(8) to configure the currently running system. Init checks
the exit status of autoconfig to determine if the configuration was successful. Autocon-
fig reads the device table /etc/dtab for a list of devices which may be on the system. It
first verifies that the kernel has an attach routine for each device (and therefore has a
device handler) and that the kernel has a probe routine. It then checks each of these
devices to see if it is present, and if it is, attempts to make it interrupt (if possible)
to verify that the interrupt vector is correct. The interrupt vector is checked to see
that it has not previously been used. An interrupt through any of the device's consecu-
tive vectors is sufficient.
Devices which use programmable vectors (MSCP and TMSCP) are permitted to have a value of 0
in the dtab vector field. This special value tells autoconfig to call the kernel's get
next available vector routine and assign that to the device. For programmable vector
devices if the dtab vector field is non 0 then the value specified in the dtab file is
used. In both cases the driver is called at its xxVec() routine with the vector being
assigned to the device.
If the address and vector are correct, it then attaches the device by passing the address
and unit number to the kernel's attach routine and setting up the interrupt vector accord-
ing to the interrupt handlers and priority listed in the device table. If the unit number
is given as a '?' in the device table, it will be assigned the next available unit number
if the device exists. If the device is not present or the vector is incorrect, and if the
unit number was specified (not a '?'), then the kernel is notified that that unit is not
present, preventing accesses to a nonexistent device address.
There are only a few flags which are mostly useful for debugging but for completeness,
here they are.
-i ifile Use ifile instead of /etc/dtab as the device table.
-n nfile Use nfile instead of /unix for finding the namelist of the currently running
-k kfile The file kfile should be used instead of /dev/kmem to alter and read kernel mem-
-v Verbose output, indicates reason for rejecting any device in the device table.
Normally only attached devices are reported.
-c Report error messages for devices skipped because of problems with their inter-
-d Turn on debugging mode. Shows many gory details of autoconfig's internal pro-
Devices of the same type must be listed with ascending unit numbers or with wildcards.
Disks that could be root devices must have their addresses and vectors initialized in the
kernel; the kernel uses a root attach entry in the block device switch to allow disk driv-
ers to do any probes necessary before autoconfiguration.
Must be run only by init(8). There is a flag set in the kernel that autoconfig has
already run, running autoconfig a second time results in the error:
"namelist doesn't match running kernel."
Autoconfig attempts to open /dev/kmem for write. If the kernel is in securelevel 1
or higher the open of /dev/kmem will fail.
/etc/dtab device table
ucall(2), nlist(3), dtab(5)
3rd Berkeley Distribution December 30, 1992 AUTOCONFIG(8)
All times are GMT -4. The time now is 06:04 PM.