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