Don't allow others to run uuconv
[unix-history] / sys / doc / options.texi
CommitLineData
d30b4617
GW
1\input texinfo @c -*- texinfo -*-
2@c %**start of header
3@setfilename options.info
4@settitle Configuration Options for FreeBSD
5@c @setchapternewpage odd
6@c function index is option/pseudo/device names; concept is everything
7@c else
8@syncodeindex fn cp
9@finalout
10@c %**end of header
11
12@ifinfo
24d784a6 13$Id: options.texi,v 1.4 1994/05/25 19:56:48 wollman Exp $
d30b4617
GW
14
15This file documents the configuration options available in the FreeBSD
16operating system.
17
18@display
19Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved.
20
21Redistribution and use in source and printed forms, with or without
22modification, are permitted provided that the following conditions
23are met:
241. Redistributions of source code must retain the above copyright
25 notice and this list of conditions.
262. Redistributions in printed form must reproduce the above copyright
27 notice, this list of conditions and the following notice of
28 authorship.
29
30Trademarks are property of their respective owners.
31@end display
32@end ifinfo
33
34@titlepage
35@title Configuration Options in FreeBSD
c46e821b 36@subtitle for FreeBSD 1.1.5
d30b4617
GW
37@author Garrett A. Wollman
38@author FreeBSD Project
39
40@page
41@vskip 0pt plus 1filll
42
43i386, i387, and i486 are trademarks of Intel Corporation. SunOS is a
44registered trademark and NFS is a trademark of Sun Microsystems, Inc.
45Ultrix is a registered trademark of Digital Equipment Corporation.
46Xerox is a registered trademark and XNS is a trademark of Xerox
47Corporation. VESA is a trademark of the Video Electronics Standards
48Association. System V is a registered trademark of Novell Corporation.
49All other trademarks are property of their respective owners. FreeBSD
50is nobody's trademark, and damn proud of it.
51
52Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved.
53
54Redistribution and use in source and printed forms, with or without
55modification, are permitted provided that the following conditions
56are met:
57
58@enumerate
59@item
60Redistributions of source code must retain the above copyright
61notice and this list of conditions.
62
63@item
64Redistributions in printed form must reproduce the above copyright
65notice, this list of conditions and the preceding notice of
66authorship.
67@end enumerate
68@end titlepage
69
70@node Top, Subsystems, (dir), (dir)
71@top FreeBSD Configuration Options
72
73This document describes kernel configuration options relevant to the
74FreeBSD operating system between versions 1.1 and 1.2. It is intended
75for readers who already have a general understanding of the process of
76configuring a BSD kernel and wish to get a general overview of the
77meaning of various configuration options. This document covers
78configurable options and pseudo-devices; it is intended that devices may
79be added at a later date.
80
81@menu
82* Subsystems:: Controlling subsystems.
83* Performance:: Performance enhancement.
84* Devices:: Device-control options.
85* Internals:: Non-user-serviceable parts.
86
87* Index:: General Index.
88@end menu
89
90@node Subsystems, Performance, Top, Top
91@c node,next,prev,up
92
93@chapter Options for Subsystems
94
95This chapter discusses options controlling the inclusion of various
96subsystems in FreeBSD. These include things like filesystems,
97networking modules, and whatnot. Remember that options containing
98underscores must be quoted.
99
100@table @code
101@item pseudo-device bpfilter @var{number}
102@findex bpfilter
103@cindex Berkeley packet filter
104@cindex Network interfaces
105The @samp{bpfilter} pseudo-device is the Berkeley Packet Filter,
106developed by Lawrence Berkeley Labs and based on an earlier packet
107filter from Stanford. See the @samp{bpf} manual page for more details.
108The @var{number} given is the maximum number of simultaneous users
109permitted. (NB: in previous version of BPF, the @var{number} had to be
110greater than the number of interfaces; this space is now dynamically
111allocated so this requirement is no longer present.)
112
113@item options CCITT
114@findex CCITT
115@cindex X.25
116@cindex Networking domains
117The @samp{CCITT} option enables support for the ITU-T X.25(1980)
118network-layer protocol. Nobody we know has a direct X.25 connection to
119anything, so this code has never been tested.
120
00c2ba06
GW
121This option will likely be removed in a future release of FreeBSD.
122
d30b4617
GW
123@item options "COMPAT_42"
124@findex COMPAT_42
125@cindex UDP Checksums
126@cindex Checksums, UDP
127@cindex 4.2 Compatibility
128@cindex Compatibility options
129This option is used to disable UDP checksumming. Under ordinary
130circumstances it should never ever ever be defined; however, if you are
131stuck trying to communicate with an old 4.2BSD machine, or one running
132something derived from 4.2 like SunOS 3.5 or Ultrix 2.0, this may be
133necessary in order to successfully receive UDP packets.
134
00c2ba06
GW
135This option will be replaced by run-time configuration in a future
136release of FreeBSD.
137
d30b4617
GW
138@item options "COMPAT_43"
139@findex COMPAT_43
140@cindex 4.3 Compatibility
141@cindex Compatibility options
142This option controls a whole host of features, mostly relating to
143system-call compatibilty with 4.3BSD. At the present time, it should
144not be turned off, as many utilities and library routines still depend
145on these obsolescent system calls being present. At some future date,
146this will probably be split up into two separate options, one for binary
147compatibility and one for the old but useful system calls.
148
00c2ba06
GW
149@item options "COMPAT_102"
150@findex COMPAT_102
151@cindex FreeBSD 1.0.2 compatibility
152@cindex 1.0.2 Compatibility
153@cindex Compatibility options
154This option, which is not yet implemented, will control whether certain
155entry points which were system calls in FreeBSD 1.0.2 but have been
156replaced with library routines, are supported in the kernel for
157backwards compatiblity.
158
d30b4617
GW
159@item options "DIRECTED_BROADCAST"
160@findex DIRECTED_BROADCAST
161@cindex IP
162@cindex UDP
163If this option is enabled, the kernel will support sending IP broadcast
164packets to subnets other than the one that the machine is on, and when
165forwarding will accept such packets. That is to say, if your host lives
166on subnets @samp{132.198.3} and @samp{132.198.4}, and the
167@samp{132.198.3} side receives a packet addressed to
168@samp{132.198.4.255}, it will forward the packet as a broadcast on that
169subnet.
170
00c2ba06
GW
171This option will likely be replaced by run-time configuration in a
172future release of FreeBSD.
173
d30b4617
GW
174@item pseudo-device ether
175@findex ether
176@cindex Ethernet
177@cindex Network interfaces
178This pseudo-device provides link-layer support for Ethernet device
179drivers. It is mandatory for all systems which include Ethernet or
180Ethernet-like devices, such as @samp{ed}, @samp{ie}, and @samp{is}.
181This code is due for a redesign.
182
183@item options EON
184@itemx pseudo-device eon
185@findex EON
186@cindex ISO 8473 CLNP
187@cindex Network interfaces
188The @samp{eon} network interface supports the ISO 8473
189Connectionless-Mode Network Protocol, tunnelled through IP version 4.
190@samp{eon} interfaces are created automatically once initially
191configured by adding ISO routes with IP destinations. At present, both
192the pseudo-device and option declaration are necessary.
193
00c2ba06
GW
194This option will likely be removed in a future release of FreeBSD.
195
d30b4617
GW
196@item options FIFO
197@findex FIFO
198@cindex Named pipes
199This option enables support for System V-- and POSIX-style named pipes
200or fifos.
201
202@item options GATEWAY
203@itemx options IPFORWARDING=@var{value}
204@itemx options IPSENDREDIRECTS=@var{value}
205@findex GATEWAY
206@findex IPFORWARDING
207@findex IPSENDREDIRECTS
208@cindex ICMP
209@cindex IP
210@cindex Network parameters
211These three options control whether FreeBSD's IP forwarding functions
212are enabled. Technically speaking, because FreeBSD does not meet the
213standards set out in the ``Router Requirements'' document (RFC 1009),
214these should not be enabled, but sometimes it is necessary to enable
215this function. The @samp{GATEWAY} option turns on @samp{IPFORWARDING},
216and also controls the sizing of certain system tables. The
217@samp{IPFORWARDING} option controls the initial value of the
218@samp{ipforwarding} kernel variable (default 1 if @samp{GATEWAY}
219defined, 0 otherwise), which controls whether packets are acutally
220forwarded or not; @var{value} should be either @samp{0} or @samp{1}.
221@samp{IPSENDREDIRECTS} controls the initial value of the
222@samp{ipsendredirects} variable (default is one, but should be changed
223to zero); its @var{value} should also be either @samp{0} or @samp{1}.
224
00c2ba06
GW
225This option will be replaced by run-time configuration in a future
226release of FreeBSD.
227
d30b4617
GW
228@item options INET
229@findex INET
230@cindex IP
231@cindex TCP
232@cindex UDP
233@cindex ICMP
234@cindex Networking domains
235This option controls the inclusion of the Internet protocol suite,
236including IP version 4, TCP, UDP, and ICMP. Support for IP multicast,
237IP next generation, and IGMP will be provided at a future date. It is
238not recommended to even attempt to generate a system with this option
239turned off, as many parts of the system depend on Internet networking in
240important and subtle ways.
241
242@item options ISO
243@itemx options TPIP
244@findex ISO
245@findex TPIP
246@cindex ISO 8473 CLNP
247@cindex ISO TP4
248@cindex ISO TP0
249@cindex ISO 9542 ESIS
250@cindex IEEE 802.2 LLC
251@cindex Networking domains
252These options control the inclusion of ISO OSI networking protocols.
253The TPIP option includes just enough support to run ISO Transport
254Protocol class 4 over IP, supporing the @samp{SOCK_SEQPACKET}
255abstraction. The ISO option includes support for CLNP, TP class 0,
00c2ba06
GW
256ISO 9542 ESIS, and IEEE 802.2 logical link control class 0 (for CLNP
257only).
258
259This option will likely be removed in a future release of FreeBSD.
d30b4617
GW
260
261@item options ISOFS
262@findex ISOFS
263@cindex ISO 9660 filesystem
264@cindex CD-ROM
265@cindex Rock Ridge filesystem
266@cindex Filesystems
267The @samp{ISOFS} option enables kernel support for the ISO 9660 CD-ROM
268filesystem, including RockRidge extensions.
269
270@item options "ISO_X25ESIS"
271@findex ISO_X25ESIS
272@cindex ISO 9542 ESIS
273@cindex X.25
274This option controls whether ISO 9542 ESIS is run over ITU-T X.25 link
275layers. This requires the @samp{CCITT} option to be enabled as well.
276
00c2ba06
GW
277This option will likely be removed in a future release of FreeBSD.
278
d30b4617
GW
279@item options KTRACE
280@findex KTRACE
281@cindex Kernel tracing
282This option enables the tracing of several classes of internal kernel
00c2ba06 283events. See the @samp{ktrace} command for more details. Recommended.
d30b4617
GW
284
285@item pseudo-device log
286@findex log
287@cindex Kernel message logging
288The @samp{log} pseudo-device provides kernel support to send kernel
289messages to @samp{syslog}. It is mandatory.
290
291@item pseudo-device loop
292@findex loop
293@cindex Network interfaces
294The @samp{loop} pseudo-device provides the trivial network interface.
295It is required when any networking options are enabled.
296
297@item options MACHVMCOMPAT
298@findex MACHVMCOMPAT
299@cindex Mach virtual memory
300This option enables a Mach-compatible interface to the virtual memory
301subsystem, supporting system calls @samp{vm_allocate},
302@samp{vm_deallocate}, @samp{vm_inherit}, and @samp{vm_protect}.
303(Given the nature of the VM system, it is impossible to support a
304Mach-style @samp{vm_region} call, and in every case the `map' argument
305is ignored and replaced with the calling process's own map.)
306
307@item options MFS
308@findex MFS
309@cindex Memory filesystem
310@cindex Filesystems
311This option enables support for the memory filesystem, an in-core
312filesystem which lives in the swap area. Using MFS as a @file{/tmp}
313filesystem can dramatically increase the speed of
314temporary-space-intensive operations such as compilations. See the
315@samp{mount_mfs} manual page for more details.
316
317@item options NFS
318@findex NFS
319@cindex Network File System
320@cindex Filesystems
321The @samp{NFS} option enables support for Sun's Network File System.
322(Also called ``Nightmare'' or ``Not a''@dots{}.) This presently includes
323both client-- and server-side kernelized NFS support; it may in the
324future be broken into separate options. This NFS implmentation comes to
325BSD courtesy of Rick Macklem of the University of Guelph, and is not
326derived from Sun licensed source code. As a result, there are sometimes
327interoperability problems where the published specification is vague,
328and this option supports several new and useful features compared to
329Sun's. See the @samp{mount} manual page for more details.
330
331@item options NS
332@itemx options NSIP
333@findex NS
334@findex NSIP
335@cindex Xerox Network System
336@cindex XNS IDP
337@cindex XNS SPP
338@cindex Network interfaces
339@samp{NS} controls the inclusion of support for the Xerox Network
340Service protocol family. At the present time, it is not known whether
341this code even works; testers are welcome. The @samp{NSIP} option
342enables encapsulation of XNS IDP over IP.
343
00c2ba06
GW
344These options will likely be removed in a future release of FreeBSD.
345
346@item options "PANIC_REBOOT_WAIT_TIME=@var{time}"
347@findex PANIC_REBOOT_WAIT_TIME
d30b4617 348@cindex Kernel panics
00c2ba06
GW
349This option controls how long the system waits after a panic before it
350reboots. If a @var{time} of zero is specified, it reboots immediately;
351otherwise, @var{time} is the number of seconds to wait before rebooting.
352If, during the waiting period, a key is hit on the console, the
353countdown stops and the system will wait for the user to copy down the
354panic message and hit another key before rebooting.
d30b4617
GW
355
356@item options PCFS
357@findex PCFS
358@cindex MS-DOS filesystem
359@cindex Filesystems
360This option controls support for mounting MS-DOS disks and disk
361partitions under FreeBSD. The @samp{pcfs} manual page is presently very
362bogus.
363
364@item pseudo-device ppp @var{number}
365@findex ppp
366@cindex Point-To-Point Protocol
367@cindex Network interfaces
368The @samp{ppp} pseudo-device provides support for the Internet
369Point-to-Point protocol (RFC 1351 @i{et seq}), implemented as a line
370discipline over standard serial links. @var{number} should be the
371number of simultaneous PPP interfaces which will be configured.
372
373@item pseudo-device pty @var{number}
374@findex pty
375@cindex Pseudo-terminals
376This pseudo-device provides support for pseudo-ttys, which are required
377for @samp{rlogin}, @samp{telnet}, and @samp{xterm} to operate correctly;
378@var{number} should be set to the total number of these programs you
379expect to have running at any given time. Because pty's are not as yet
380dynamically allocated, and the underlying structures are large, it is
381best to keep this value as small as feasible, until this deficiency is
382remedied.
383
384@item options QUOTA
385@findex QUOTA
386@cindex Disk quotas
387@cindex Filesystems
388The @samp{QUOTA} option enables support for disk quotas. Note that NFS
389quota support is not available.
390
391@item pseudo-device sl @var{number}
392@findex sl
393@cindex Serial Line Internet Protocol
394@cindex SLIP
395@cindex CSLIP
396@cindex IP
397@cindex Network interfaces
398This pseudo-device provides support for the Serial Line Internet
399Protocol (RFC 1055), implemented as a line discipline over standard
400serial links. It includes support for Van Jacobson header compression.
401@var{number} should be the number of simultaneous SLIP interfaces which
402will be configured. See also the @samp{slattach} manual page.
403
404@item options SYSVSHM
405@item options SYSVSEM
406@item options SYSVMSG
407@itemx options SHMMAXPGS=@var{value}
408@findex SYSVSHM
409@findex SYSVSEM
410@findex SYSVMSG
411@findex SHMMAXPGS
412@cindex System V shared memory
413@cindex System V semaphores
414@cindex System V message queues
415@cindex System V IPC
416@cindex Shared memory, System V
417@cindex Semaphores, System V
418@cindex Message queues, System V
419@cindex IPC, System V
420The @samp{SYSVSHM} option enables kernel-side emulation of System
421V-compatible shared memory. The @samp{SHMMAXPGS} option (default 64
422pages or 256K) determines the maximum amount of shared memory available
423under this mechanism. The @samp{SYSVSEM} option provides emulation of
424System V-compatible semaphores, and likewise @samp{SYSVMSG} for message
425queues.
426
d30b4617
GW
427@item options "TCP_COMPAT_42"
428@findex TCP_COMPAT_42
429@cindex 4.2 Compatibility
430@cindex Compatibility options
431@cindex TCP
432This option controls the perpetuation of several bugs inherited from the
4334.2BSD implementation of TCP. It should only be defined in the
434circumstances outlined for @samp{COMPAT_42}, above.
435
00c2ba06
GW
436This option will likely be replaced by run-time configuration in a
437future release of FreeBSD.
438
d30b4617
GW
439@item pseudo-device tun
440@findex tun
441@cindex Network interfaces
442The @samp{tun} driver provides a network interface which is attached to
443a character device. In this way, a user-mode program can grab packets
444out of the networking system, fiddle with them or move them around, and
445pass stuff packets back up into the kernel. It is not known if this
446device either compiles or operates correctly, although it was believed
447to do both at some time in the past.
448
449@item options UCONSOLE
450@findex UCONSOLE
451@cindex Console redirection
452This option allows any old user to grab kernel output away from the
453console and send it to the tty of their choice. It presents an
454incredile security hole for some systems, but is necessary in order to
00c2ba06 455allow programs like @samp{xconsole} to operate.
d30b4617
GW
456
457@item options XSERVER
458@findex XSERVER
459@cindex X Window System
460This obsolescent option enables support in the @samp{pc} console
461driver for certain operations required by the XFree86 server.
462@end table
463
464@node Performance, Devices, Subsystems, Top
465@c node,next,prev,up
466
467@chapter Performace and Debugging Options
468
469The following options are provided for system performace optimization.
470Note that kernel profiling is supported via the @samp{-p} option to the
471@samp{config} command; for more information see the @samp{config} manual
472page.
473
474@table @code
475@item psuedo-device ddb
476@findex ddb
477@cindex Kernel debugger
478@cindex Debugger, kernel
479This option enables the @samp{ddb} debugger, taken from Mach. See the
480@samp{ddb} and @samp{dbsym} manual pages for more information on the use
481of this debugger.
482
483@item options DIAGNOSTIC
484@itemx options NAMEI_DIAGNOSTIC
485@itemx options PARANOID
486@findex DIAGNOSTIC
487@findex NAMEI_DIAGNOSTIC
488@findex PARANOID
489@cindex Debugging options
490These debugging options reduce performace. They are intended to enable
491certain internal consistency checks which are not supposed to fail
492during correct operation, and so are normally disabled for performace
493reasons.
494
495@item options FASTLINKS
496@findex FASTLINKS
497@cindex Symbolic links
498@cindex Filesystems
499The @samp{FASTLINKS} option enables the creation of symbolic links whose
500target names reside entirely within the i-node of the link, when
501possible. This results in faster access for those links which are short
502enough (in practice, most of them). All kernels can read such links,
503but only @samp{FASTLINKS} kernels will create them, for compatibility
504with older kernels lacking such support.
505
506@item options ICMPPRINTFS
507@findex ICMPPRINTFS
508@cindex Debugging options
509@cindex ICMP
510This option is defined to allow debugging of ICMP (@dfn{Internet Control
511Message Protocol}) packets in the kernel. When defined and the
512@samp{icmpprintfs} kernel variable (default false) is set to true, ICMP
513packets will be printed out to the console when received. Note that it
514is probably better to use @samp{tcpdump} for this kind of debugging.
515
516@item options KGDB
517@findex KGDB
518@cindex Kernel debugger
519@cindex Debugger, kernel
520@cindex Remote debugging
521The @samp{KGDB} option enables certain bits of kernel code which will
522eventually be able to talk to a remote copy of the @samp{gdb} debugger
523over a serial connection. The present code does not work, but users are
524invited to hack on it and contribute the changes back to the FreeBSD
525team.
526
00c2ba06
GW
527@item options MAXMEM=@var{size}
528@findex MAXMEM
529The @samp{MAXMEM} option controls how much memory the kernel will
530recognize on bootup, specified in kilobytes. This may be useful for
531dealing with certain broken attachment busses (or the adapters thereon)
532which are unable to deal with memory beyond a certain address.
d30b4617
GW
533
534@item options SUBNETSARELOCAL
535@findex SUBNETSARELOCAL
536@cindex TCP
537@cindex Network parameters
538This option controls whether the TCP system believes that machines on
539other subnets of your network are considered to be ``local'' to your
540host. For most systems, this option should be on (the default); if you
541are directly connected to a class A network, however, then it may need
542to be turned off. (This is true of networks like the MILNET.)
543
544@item options "SYMTAB_SPACE=@var{value}"
545@findex SYMTAB_SPACE
546@cindex Debugger, kernel
547@cindex Kernel debugger
548This obsolescent option controls the amount of space that will be
549statically allocated in the debugger source code to hold the kernel
550symbol table that @samp{dbsym} sticks there. Eventually this will be
551dynamically allocated at load time. The default @var{value} is 63000
552bytes.
00c2ba06
GW
553
554@item options "UPDATE_INTERVAL=@var{value}"
555@findex UPDATE_INTERVAL
556@cindex Update process
557This option controls the wait time between successive @samp{sync}
558operations run by the @samp{update} system process (pid 3). This option
559will be replaced by run-time configuration in a future release of
560FreeBSD.
561
24d784a6
GR
562@item options DUMMY_NOPS
563@findex DUMMY_NOPS
564@cindex Fast i/o bus operations
565This option controls the use of real Nops for bus operations.
566This might break on older systems so should be used with care.
567
d30b4617
GW
568@end table
569
570@node Devices, Internals, Performance, Top
571
572@chapter Device Options
573
574There are different device selections available depending on the type of
575bus present in your computer. We will cover generic FreeBSD devices,
576ISA-bus devices, and EISA-bus devices. A separate section describes the
577devices available in the SCSI subsystem.
578
579@menu
580* Generic:: Devices available in all FreeBSD systems.
581* ISA:: Devices specific to the ISA bus.
582* EISA:: Devices specific to the EISA bus.
583* MCA:: No support for Micro Channel, yet.
584* PCI:: No support for PCI, yet.
585* SCSI:: The SCSI subsystem.
586@end menu
587
588@node Generic, ISA,, Devices
589@section Generic Devices and Options
590
591The following devices and options are available in all FreeBSD
592configurations. In addition to these devices, a selection of ISA
593devices (@pxref{ISA}) is required in order to generate a workable
594system.
595
596@table @code
597@item machine "i386"
598@findex i386
599This mandatory declaration informs the @samp{config} program that you
600are using an i386 or compatible CPU, and enables the selection of all
601the other devices listed here.
602
603@item cpu "I386_CPU"
604@itemx cpu "I486_CPU"
605@findex I386_CPU
606@findex I486_CPU
607These two options control which specific CPUs will be supported by the
608generated kernel. If the kernel detects that it is not running on a CPU
609for which support was enabled, it will panic quickly upon startup. If
610you do not expect to need to run your kernel on an i386 or similar CPU,
611leaving out that support can increase virtual memory system performance.
612
613@item options "MATH_EMULATE"
614@findex MATH_EMULATE
615@cindex Floating-point emulator
616@cindex i387
617When this option is defined, the math coprocessor emulator is compiled
618into the kernel. When it is not defined and the coprocessor is absent,
619programs which use floating-point operations are automatically killed.
620
621@item device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
622@findex npx
623@cindex i386
624The @samp{npx} device provides support for the i387 numeric coprocessor
625and the floating-point portions of the i486 CPU. This will eventually
626be fixed to not require ISA to be configured.
627
628@item pseudo-device speaker
629@findex speaker
630The @samp{speaker} pseudo-device provides support for rudimentary access
631to the PC's speaker via @file{/dev/spkr}. It provides a
632character-device interface which interprets @samp{PLAY} strings similar
633to IBM PC Advanced BASIC, as well as an @samp{ioctl} interface with more
634fine-grained control. See the @samp{spkr} manual page for more
635information.
636@end table
637
638@node ISA, EISA, Generic, Devices
639@section ISA-bus Devices and Options
640
641The following options are specific to ISA-bus devices and systems.
642Since the EISA bus is backwards-compatible with the ISA bus, all these
643options also apply to EISA systems. The same goes for VESA Local Bus
644(VL-Bus) systems.
645
646@table @code
647@item controller isa0
648@findex isa
649This @strong{mandatory} declaration must precede any other devices
650listed in this section. It provides the basic support for the ISA-bus
651glue logic, including DMA and autoconfiguration.
652
653@item controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr
81d3597c 654@item options "TUNE_1542"
d30b4617 655@findex aha
81d3597c 656@findex TUNE_1542
d30b4617
GW
657@cindex Adaptec 154x
658@cindex SCSI host adaptors
659The @samp{aha} device supports the Adaptec 154x series of SCSI
660controllers, and attempts to support other vendors' controllers which
661claim compatibility with the Adaptec 1542, such as the BusLogic 545.
662This device is included in the @samp{GENERICAH} distribution kernel.
663The @samp{scbus} device (@pxref{SCSI}) is a prerequisite for this
664device.
665
81d3597c
GW
666Some older versions of this code would attempt to set the controller's
667bus access speed to the fastest possible without losing data; we have
668found that this makes the driver unusable for some users. If you wish
669to enable this optimization, or if you suspect that your SCSI transfers
670are running slower than they should, then you can use the @samp{TUNE_1542}
671option to enable bus-timing detection.
672
d30b4617
GW
673@item controller bt0 at isa? port "IO_BT0" bio irq 12 vector btintr
674@findex bt
675@cindex Bustek 742
676@cindex SCSI host adaptors
677This device supports the Bustek 742 SCSI controller. It is included in
678the @samp{GENERICBT} distribution kernel; the @samp{scbus} device
679(@pxref{SCSI}) is a prerequisite.
680
681@item options COM_BIDIR
682@findex COM_BIDIR
683@cindex Bi-directional serial ports
684@cindex Serial ports
685This option enables bi-directional support in the @samp{sio} serial
686driver. This option is slated for removal, at which time bi-directional
687support will always be enabled. See the @samp{comcontrol} manual page
688for more information.
689
690@item options COM_MULTIPORT
691@findex COM_MULTIPORT
692@cindex Multi-port serial boards
693@cindex Serial ports
694This option enables support in the @samp{sio} serial driver for certain
695multi-port serial boards.
696
697@item device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
698@itemx device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr
699@findex ed
700@cindex Western Digital 80x3
701@cindex 3Com 3C503
702@cindex Novel NE1000/NE2000
703@cindex Network interfaces
704@cindex Ethernet
705The @samp{ed} network interface driver provides support for the Western
706Digital/SMC 80x3 series, the 3Com 3c503, and Novell NE1000 and NE2000
707series of Ethernet controllers. It automatically detects differences
708among the various versions of these controllers and adapts
709appropriately. The @samp{ed1} line shown is for the Novell boards; the
710@samp{ed0} line is appropriate for all other supported controllers.
711(The Novell controllers cannot be configured to use port 0x280.)
712
713@item controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
714@itemx disk fd0 at fdc0 drive 0
715@itemx disk fd1 at fdc0 drive 1
716@itemx tape ft0 at fdc0 drive 2
717@findex fd
718@findex ft
719@cindex Floppy disk
720@cindex Floppy tape
721@cindex QIC-80
722@cindex Tape drives
723@cindex Cartridge tape drives
724@cindex Quarter-Inch-Cartridge (QIC) tape drives
725@cindex Disk drives
726The @samp{fdc} driver provides support for the standard PC floppy-disk
727controller. The @samp{fd} sub-driver supports 3.5-- and 5.25-inch
728floppy disks in the standard 360KB, 720KB, 1200KB, 1440KB, and 2880KB
729formats, as well as a number of other formats not supported by DOS. The
730@samp{ft} driver is available for QIC-80 ``floppy tape'' support.
731The drivers support formatting of both tapes and disks. This driver is
732substantially improved from that shipped in previous releases of
733FreeBSD.
734
735@item device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
736@findex ie
737@cindex AT&T EN100
738@cindex AT&T StarLAN 10
739@cindex Network interfaces
740@cindex Ethernet
741@cindex StarLAN
742This network interface driver provides support for the AT&T StarLAN 10
743and EN100 family of controllers. Note that the configuration specified
744here is not the default configuration, but one which attempts to deal
745with the conflicts that arise in more modern systems. (It is expected
746that this driver will be expanded in the future to support other similar
747cards in the manner of @samp{ed}.)
748
749@item device is0 at isa? port 0x280 net irq 10 drq 7 vector isintr
750@findex is
751@cindex Isolan 4141-0
752@cindex Isolink 4110
753@cindex Ethernet
754@cindex Network interfaces
755The @samp{is} network interface driver supports the Isolan 4141-0 and
756Isolink 4110 Ethernet controllers.
757
758@c @item device ix0 at isa? port 0x320 net irq 10 iomem 0xd0000 iosiz 32768 \
759@c @itemx vector ixintr
760@c @findex ix
761@c @cindex Intel EtherEXPRESS
762@c @cindex Ethernet
763@c @cindex Network interfaces
764@c This device is known to exist, but is not presently in the FreeBSD
765@c source tree. When it is made available, this information will be
766@c updated.
767
c46e821b 768@item device lpt0 at isa? port "IO_LPT1" tty
d30b4617 769@itemx device lpt0 at isa? port "IO_LPT1" tty irq 7 vector lptintr
c46e821b
GW
770@itemx device lpt0 at isa? port ? tty irq 7 vector lptintr
771@itemx device lpt0 at isa? port ? tty
d30b4617
GW
772@findex lpa
773@findex lpt
774@cindex Parallel printers
c46e821b
GW
775
776The @samp{lpt} driver provides support for the parallel printer driver
777accessed as @file{/dev/lpt@var{N}} (@var{N}=0, 1, @dots{}). The current
778version of this driver provides support for either polled or
779interrupt-driven ports, a unification of the @samp{lpt} and @samp{lpa}
780drivers from FreeBSD 1.1.
781
782The first and second examples show explicit selection of a port address.
783If the port is not specified, as in the third and fourth examples, the
784driver defaults to whatever address the BIOS printer driver would have
785used. The second and third examples select interrupt-driven I/O; if
786polled mode is specified, as in the first and fourth examples, it is
787impossible to enable interrupt-driven access at run time.
788
789If you receive ``ISA strayintr 7'' messages correlated with the use of
790the polled mode of @samp{lpt}, chances are that your controller supports
791interrupt-driven operation, and you should switch to that mode.
792
d30b4617
GW
793
794@item device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr
795@findex mcd
796@cindex Mitsumi CD-ROM
797@cindex CD-ROM
798This device provides support for the Mitsumi non-SCSI CD-ROM drive.
799Performance is known to be quite slow.
800
801@c mse, anyone?
802
803@item device pc0 at isa? port "IO_KBD" tty irq 1 vector pcrint
804@itemx device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
805@itemx options NCONS=@var{value}
806@itemx options COMCONSOLE
807@findex pc
808@findex sc
809@findex NCONS
810@findex COMCONSOLE
811@cindex Console devices
812@cindex pccons
813@cindex Syscons
814@cindex Virtual consoles
815@cindex X Window System
816The @samp{pc} and @samp{sc} devices provide support for the system
817display and keyboard, which is the default console. There might
818actually be documentation somewhere for both of these. The @samp{sc}
819device requires the @samp{NCONS} option to be defined to some value; it
820represents the number of virtual consoles to be provided by the driver;
821a reasonable value is 8. One of @samp{pc} or @samp{sc} is presently
822required unless @samp{COMCONSOLE} is enabled, in which case a serial
823port is made into the console.
824
825@c sb, anyone?
826
827@item device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
828@itemx device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
829@itemx device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
830@itemx device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
831@findex sio
832@cindex Serial ports
833@cindex National 8250/16450/16550
834@cindex Bi-directional serial ports
835@cindex Multi-port serial boards
836The @samp{sio} driver provides support for high-speed serial
837communications using the standard 8250, 16450, and 16550 UART chips. It
838provides a standard tty interface for these devices as
839@file{/dev/tty@var{unit}}, and, when enabled with the @samp{comcontrol}
840program, a call-out capability as @file{/dev/cua@var{unit}} (@var{unit}
841is two digits, zero-padded in both cases). Certain multi-port systems
842are also supported.
843
844@item device uha0 at isa? port "IO_UHA0" bio irq 14 drq 5 vector uhaintr
845@findex uha
846@cindex Ultrastor 14F
847@cindex Ultrastor 34F
848@cindex SCSI host adaptors
849This device supports the Ultrastor 14F and related SCSI controllers. It
850is included in the @samp{GENERICBT} distribution kernel, and requires
851@samp{scbus} (@pxref{SCSI}) as a prerequisite. The Ultrastor 24F is not
852supported.
853
854@item controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
855@itemx disk wd0 at wdc0 drive 0
856@itemx disk wd1 at wdc0 drive 1
857@findex wd
858@cindex Western Digital WD100x
859@cindex ST-506 hard disks
860@cindex RLL hard disks
861@cindex ESDI hard disks
862@cindex IDE hard disks
863@cindex Disk drives
864The @samp{wd} device supports standard ST-506, RLL, ESDI, and IDE hard
865disks, as controlled by the Western Digital WD100x series of controllers
866(and compatible hardware). This version is substantially improved from
867that provided in FreeBSD 1.0.
868
869@item device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr
870@findex wt
871@cindex Archive QIC-02
872@cindex Wangtek QIC-02
873@cindex Cartridge tape drives
874@cindex QIC-02
875@cindex QIC-36
876@cindex Tape drives
877@cindex Quarter-Inch-Cartridge (QIC) tape drives
878This driver supports Archive QIC-02 and Wangtek QIC-02 and QIC-36
879cartridge tape controllers.
880@end table
881
882@node EISA, MCA, ISA, Devices
883@section EISA-bus Devices and Options
884
885There is presently only one EISA-specific device driver.
886
887@table @code
888@item controller ahb0 at isa? bio irq 11 vector ahbintr
889@findex ahb
890@cindex Adaptec 174x
891@cindex SCSI host adaptors
892The @samp{ahb} driver provides support for the Adaptec AHA-174x series
893of SCSI controllers. This controller is included in the
894@samp{GENERICAH} distribution kernel, and requires the @samp{scbus}
895driver (@pxref{SCSI}) as a prerequisite.
896@end table
897
898@node MCA, PCI, EISA, Devices
899@section Micro Channel Devices and Options
900
901@cindex Micro Channel Architecture
902We don't support Micro Channel right now. Anyone interested in working
903on Micro Channel support should send mail to
904@samp{FreeBSD-Questions@@freefall.cdrom.com} for information on how to
905help.
906
907@node PCI, SCSI, MCA, Devices
908@section PCI Devices and Options
909
910@cindex PCI
911We don't support PCI, either. Anyone interested in working on PCI
912support should send mail to @samp{FreeBSD-Questions@@freefall.cdrom.com}
913for information on how to help.
914
915@node SCSI,, PCI, Devices
916@section The SCSI Subsystem
917
918The SCSI subsystem consists of a set of adaptor-specific driver
919routines, which were described in the previous sections, and the generic
920SCSI device drivers, which handle the standardized interactions with
921devices on the SCSI bus.
922
923@c devices: cd, ch, scbus, sd, sg, st
924
925@table @code
926@item device cd0
927@findex cd
928@cindex CD-ROM
929@cindex SCSI devices
930The @samp{cd} device provides support for CD-ROM drives. Only one
931@samp{cd} device need be configured, as the driver automatically
932allocates units for each CD-ROM drive found. Playing of audio CDs is
933also supported, on drives which support it, through @code{ioctl} calls.
934Support for retrieval of CD audio over the SCSI bus is not presently
935available.
936
937@item device ch0
938@findex ch
939@cindex Media changers
940@cindex SCSI devices
941The @samp{ch} driver supports SCSI media changers; this may include
942tape, removable disk, and CD changers. One @samp{ch} device should be
943configured for each changer you expect to support.
944
945@item device scbus0
946@findex scbus
947@cindex SCSI bus management
948This driver forms the core of the SCSI subsystem. It provides the
949device-independent routines that manage SCSI transactions, keep track of
950attached devices, and act as glue between SCSI-device-specific drivers
951and system-specific host adaptors. This device is @emph{mandatory} for
952all SCSI systems.
953
954@item device sd0
955@findex sd
956@cindex SCSI devices
957@cindex Disk drives
958The @samp{sd} driver provides access to non-removable SCSI disks. One
959@samp{sd} device should be defined for each disk you expect to have
960simultaneously connected to the system.
961
962@c @item device sg0
963@c @findex sg
964@c @cindex SCSI devices
965@c @cindex Generic SCSI
966@c @cindex Unsupported SCSI devices
967@c This driver provides support for development of user-mode drivers and
968@c other programs which access the SCSI bus directly. One @samp{sg} device
969@c should be defined for each @emph{host adaptor} you have installed in
970@c your system.
971
972@item device st0
973@findex st
974@cindex SCSI devices
975@cindex Tape drives
976@cindex Quarter-Inch-Cartridge (QIC) tape drives
977The @samp{st} driver supports generic SCSI tape drives. One @samp{st}
978device should be defined for each tape drive you wish to access. See
979the @samp{st} manual page for information about how to manipulate the
980parameters of this device.
981
982@item device uk0
983@findex uk
984@cindex SCSI devices
985@cindex Unknown SCSI devices
986The @samp{uk} driver provides an attachment point for all otherwise
987unrecognized SCSI devices. You can't actually do anything with such a
988device, except perhaps send it an inquiry command using the @samp{scsi}
989program (q.v.).
990@end table
991
992@node Internals, Index, Devices, Top
993
994@chapter Internal Use Only
995
996Eventually, this chapter will document some of the kernel manifest
997constants which are not defines, but which can be tweaked in various
998header files.
999
1000@node Index,, Internals, Top
1001@appendix General Index
1002
1003Items in @code{typewriter} font are option or device names.
1004
1005@printindex cp
1006
1007@bye