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