CONFIG(8) System Manager's Manual CONFIG(8)
NAME
config - configuring MINIX 3 tasks and servers
DESCRIPTION
MINIX 3 has a number of configuration files containing parameters that
can be changed to enable or disable a device driver, to change the num-
ber of times a resource can be used, or to tune the performance of the
system. We will name the file that contains the parameter, the name of
the parameter, and the values it can be set to. Some comments are pre-
fixed by "8086" for MINIX 3 running in 16-bit real mode, "286" for
16-bit protected mode, and "386" for 32-bit protected mode. Configura-
tion file names can be <file.h> for a file in /usr/include/, or a sim-
ple file name for a file in /usr/src/.
There may be several definitions for a parameter with only one that is
active. Which one this is is easy to find if you know that (CPU == IN-
TEL) is true, and _WORD_SIZE equals 2 in 16-bit mode, and 4 in 32-bit
mode.
<minix/config.h>
This is the main configuration file for the MINIX 3. It contains lots
of boolean variables to enable or disable drivers and a number of para-
meters that specify the sizes of system data structures:
NR_PROCS
The number of slots in the process table, and thus the maximum
number of processes that can be run concurrently. Should be in-
creased from the default 32 if networking is enabled (add 8 for
deamons), and if more users are using the system (add 4 for each
active session). There are a lot of loops in the kernel scan-
ning the process table, so setting NR_PROCS too high will slow
things down a little bit, so don't overdo it.
NR_BUFS
The number of disk buffers in the file system server. It is
used to keep frequently used disk blocks in memory. 8086 & 286:
The default is 40, and that's about as high as it can be set.
386: The default is 80, which is best increased to 1024 if you
can spare the memory. More will help, but the effect won't be
as pronounced as 1024 is more than enough to contain the working
set of one active user.
NR_CTRLRS
Number of tasks used for disk or tape controllers. By default
2, maximum 4. You need a controller task for each device class
to be handled through a /dev/cn* set of devices.
ENABLE_CACHE2
If set to 1 allows the RAM disk to be used as a second level
file system cache. Any block that is evicted from the normal
cache is both written to disk (if dirty), and copied to the sec-
ond level cache. If it is needed again then the block is re-
loaded from the RAM disk if it is still there. 8086: Forget it,
you don't have any memory for it. 286: Turn it on and set the
boot environment variable ramsize to 512 if you have the memory.
That's enough to contain the working set of one active user, and
is also the maximum FS can handle. 386: The installation
scripts sets ramsize to 1024 if there is enough memory. Your
first point of call is to compile a new kernel with EN-
ABLE_CACHE2 off, NR_BUFS set to a large value, and ramsize set
back to zero. A normal block cache works much better than a two
level arrangement.
ENABLE_AT_WINI
Enables the AT or IDE disk driver. (The IDE interface grew out
of the old AT disk interface.) Any run of the mill PC needs
this driver. You need to assign a driver like this one to a
controller task using one of the cn boot variables. See
boot(8).
ENABLE_BIOS_WINI
Enables the BIOS disk driver. The BIOS driver uses the system
BIOS to read or write disk blocks. 8086: The preferred disk
driver for XT class machines. 286 & 386: Use a native driver if
possible to avoid switching back to real mode to make BIOS
calls. Especially on the 286 this is a painful affair.
ENABLE_ESDI_WINI
Enables the ESDI disk driver. Some PS/2 models have this disk.
ENABLE_XT_WINI
Enables the XT disk driver. Useful for early IBM/AT machines
that have XT disks. In real mode it is best to use the BIOS
driver.
ENABLE_AHA1540_SCSI
Enables the Adaptec 1540 series SCSI driver.
ENABLE_DOSFILE
Enable the "DOS file as disk" driver that is used when MINIX 3
is run from MS-DOS to access a large file as a disk.
ENABLE_FATFILE
Enable the "FAT file as disk" driver that interprets a FAT file
system to find a large file to use as a disk. This driver com-
bined with a fast native MINIX 3 disk driver is a better choice
then the previous driver. (And it works when MINIX 3 is not
started from MS-DOS.) This is the last driver that needs to be
assigned to a controller task.
ENABLE_SB16
Enable the Soundblaster-16 audio driver.
ENABLE_PRINTER
Enable the Printer driver.
DMA_SECTORS
The size of the DMA buffer for drivers that use DMA or other
drivers that can only do I/O to a single chunk of memory.
(BIOS, ESDI, XT, DOSFILE.) Choose a number between 1 and 128
for the sector size of this buffer. The memory cost is twice
this amount, because of trouble getting it aligned in memory
properly. A value of 16 is the minimum to work well, choose 64
if you have enough memory.
NR_CONSOLES
Number of virtual consoles. By default 2, so you can have two
login sessions that can be switched to by ALT-F1, ALT-F2 or ALT-
left/rightarrow. If you have an EGA screen then you can specify
up to 4 virtual consoles, for VGA you can have 8. It is best to
choose one less to leave some video memory to keep text
scrolling fast. You really should read console(4) on this.
Note also the console boot variable, you can use it to put more
characters on the screen, at the cost of video memory.
NR_PTYS
Number of pseudo terminals supported, by default 0, which dis-
ables the driver. Pseudo terminals are used for incoming net-
work logins by telnet or rlogin. One pty is needed per session.
NR_RS_LINES
Number of RS-232 lines supported. By default 2 for a normal
kernel, but 0 for a tiny kernel used for XT installation. You
can save a bit of memory by setting this parameter to zero if
you don't need serial lines.
fs/const.h
This file contains most of the parameters used by the file system code.
Most of these cannot be changed, with the exception of these four:
NR_FILPS
Maximum number of open file descriptors for all processes com-
bined. A "File table overflow" error might indicate that this
number must be increased.
NR_INODES
Maximum number of in-use files for all processes combined. Like
above a "File table overflow" error may also indicate that this
number should be increased. In cases like these one usually
doubles both parameters. (If one table runs out then the other
one is likely to run out also anyway.)
NR_SUPERS
Number of file systems that can be mounted. Again a "file table
overflow" error is given if this table is full, but it will be
produced by the mount command, so you know what's wrong in this
case.
NR_LOCKS
Number of active file locks by fcntl(2). These locks are often
used by programs that update a shared file, like mail programs
do with mail boxes. A "no locks available" error indicates that
this table has run out.
SEE ALSO
controller(4), usage(8), boot(8), MAKEDEV(8).
NOTES
Associated with drivers there are device files to access the devices
controlled by the drivers that may have to be created. Let's simplify
this sentence: Type ls /dev, note that there are only c0* and c1* de-
vices, and only for two disks each. Some devices, like the audio de-
vices, are not even present. So if you enable a driver, or increase
some limits, you also need to use MAKEDEV(8) in /dev to allow programs
to talk to the drivers.
AUTHOR
Kees J. Bot (
[email protected])
CONFIG(8)