Commit | Line | Data |
---|---|---|
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 | |
15 | This file documents the configuration options available in the FreeBSD | |
16 | operating system. | |
17 | ||
18 | @display | |
19 | Copyright @copyright{} 1993, 1994, 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 | |
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 | ||
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. 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. | |
51 | ||
52 | Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved. | |
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 | |
74 | FreeBSD operating system between versions 1.1 and 1.2. It is intended | |
75 | for readers who already have a general understanding of the process of | |
76 | configuring a BSD kernel and wish to get a general overview of the | |
77 | meaning of various configuration options. This document covers | |
78 | configurable options and pseudo-devices; it is intended that devices may | |
79 | be 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 | ||
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 | ||
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 | ||
00c2ba06 GW |
121 | This 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 | |
129 | This option is used to disable UDP checksumming. Under ordinary | |
130 | circumstances it should never ever ever be defined; however, if you are | |
131 | stuck trying to communicate with an old 4.2BSD machine, or one running | |
132 | something derived from 4.2 like SunOS 3.5 or Ultrix 2.0, this may be | |
133 | necessary in order to successfully receive UDP packets. | |
134 | ||
00c2ba06 GW |
135 | This option will be replaced by run-time configuration in a future |
136 | release of FreeBSD. | |
137 | ||
d30b4617 GW |
138 | @item options "COMPAT_43" |
139 | @findex COMPAT_43 | |
140 | @cindex 4.3 Compatibility | |
141 | @cindex Compatibility options | |
142 | This option controls a whole host of features, mostly relating to | |
143 | system-call compatibilty with 4.3BSD. At the present time, it should | |
144 | not be turned off, as many utilities and library routines still depend | |
145 | on these obsolescent system calls being present. At some future date, | |
146 | this will probably be split up into two separate options, one for binary | |
147 | compatibility 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 | |
154 | This option, which is not yet implemented, will control whether certain | |
155 | entry points which were system calls in FreeBSD 1.0.2 but have been | |
156 | replaced with library routines, are supported in the kernel for | |
157 | backwards compatiblity. | |
158 | ||
d30b4617 GW |
159 | @item options "DIRECTED_BROADCAST" |
160 | @findex DIRECTED_BROADCAST | |
161 | @cindex IP | |
162 | @cindex UDP | |
163 | If this option is enabled, the kernel will support sending IP broadcast | |
164 | packets to subnets other than the one that the machine is on, and when | |
165 | forwarding will accept such packets. That is to say, if your host lives | |
166 | on 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 | |
169 | subnet. | |
170 | ||
00c2ba06 GW |
171 | This option will likely be replaced by run-time configuration in a |
172 | future release of FreeBSD. | |
173 | ||
d30b4617 GW |
174 | @item pseudo-device ether |
175 | @findex ether | |
176 | @cindex Ethernet | |
177 | @cindex Network interfaces | |
178 | This pseudo-device provides link-layer support for Ethernet device | |
179 | drivers. It is mandatory for all systems which include Ethernet or | |
180 | Ethernet-like devices, such as @samp{ed}, @samp{ie}, and @samp{is}. | |
181 | This 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 | |
188 | The @samp{eon} network interface supports the ISO 8473 | |
189 | Connectionless-Mode Network Protocol, tunnelled through IP version 4. | |
190 | @samp{eon} interfaces are created automatically once initially | |
191 | configured by adding ISO routes with IP destinations. At present, both | |
192 | the pseudo-device and option declaration are necessary. | |
193 | ||
00c2ba06 GW |
194 | This 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 | |
199 | This option enables support for System V-- and POSIX-style named pipes | |
200 | or 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 | |
211 | These three options control whether FreeBSD's IP forwarding functions | |
212 | are enabled. Technically speaking, because FreeBSD does not meet the | |
213 | standards set out in the ``Router Requirements'' document (RFC 1009), | |
214 | these should not be enabled, but sometimes it is necessary to enable | |
215 | this function. The @samp{GATEWAY} option turns on @samp{IPFORWARDING}, | |
216 | and 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} | |
219 | defined, 0 otherwise), which controls whether packets are acutally | |
220 | forwarded 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 | |
223 | to zero); its @var{value} should also be either @samp{0} or @samp{1}. | |
224 | ||
00c2ba06 GW |
225 | This option will be replaced by run-time configuration in a future |
226 | release 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 | |
235 | This option controls the inclusion of the Internet protocol suite, | |
236 | including IP version 4, TCP, UDP, and ICMP. Support for IP multicast, | |
237 | IP next generation, and IGMP will be provided at a future date. It is | |
238 | not recommended to even attempt to generate a system with this option | |
239 | turned off, as many parts of the system depend on Internet networking in | |
240 | important 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 | |
252 | These options control the inclusion of ISO OSI networking protocols. | |
253 | The TPIP option includes just enough support to run ISO Transport | |
254 | Protocol class 4 over IP, supporing the @samp{SOCK_SEQPACKET} | |
255 | abstraction. The ISO option includes support for CLNP, TP class 0, | |
00c2ba06 GW |
256 | ISO 9542 ESIS, and IEEE 802.2 logical link control class 0 (for CLNP |
257 | only). | |
258 | ||
259 | This 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 | |
267 | The @samp{ISOFS} option enables kernel support for the ISO 9660 CD-ROM | |
268 | filesystem, including RockRidge extensions. | |
269 | ||
270 | @item options "ISO_X25ESIS" | |
271 | @findex ISO_X25ESIS | |
272 | @cindex ISO 9542 ESIS | |
273 | @cindex X.25 | |
274 | This option controls whether ISO 9542 ESIS is run over ITU-T X.25 link | |
275 | layers. This requires the @samp{CCITT} option to be enabled as well. | |
276 | ||
00c2ba06 GW |
277 | This 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 | |
282 | This option enables the tracing of several classes of internal kernel | |
00c2ba06 | 283 | events. 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 | |
288 | The @samp{log} pseudo-device provides kernel support to send kernel | |
289 | messages to @samp{syslog}. It is mandatory. | |
290 | ||
291 | @item pseudo-device loop | |
292 | @findex loop | |
293 | @cindex Network interfaces | |
294 | The @samp{loop} pseudo-device provides the trivial network interface. | |
295 | It is required when any networking options are enabled. | |
296 | ||
297 | @item options MACHVMCOMPAT | |
298 | @findex MACHVMCOMPAT | |
299 | @cindex Mach virtual memory | |
300 | This option enables a Mach-compatible interface to the virtual memory | |
301 | subsystem, 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 | |
304 | Mach-style @samp{vm_region} call, and in every case the `map' argument | |
305 | is 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 | |
311 | This option enables support for the memory filesystem, an in-core | |
312 | filesystem which lives in the swap area. Using MFS as a @file{/tmp} | |
313 | filesystem can dramatically increase the speed of | |
314 | temporary-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 | |
321 | The @samp{NFS} option enables support for Sun's Network File System. | |
322 | (Also called ``Nightmare'' or ``Not a''@dots{}.) This presently includes | |
323 | both client-- and server-side kernelized NFS support; it may in the | |
324 | future be broken into separate options. This NFS implmentation comes to | |
325 | BSD courtesy of Rick Macklem of the University of Guelph, and is not | |
326 | derived from Sun licensed source code. As a result, there are sometimes | |
327 | interoperability problems where the published specification is vague, | |
328 | and this option supports several new and useful features compared to | |
329 | Sun'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 | |
340 | Service protocol family. At the present time, it is not known whether | |
341 | this code even works; testers are welcome. The @samp{NSIP} option | |
342 | enables encapsulation of XNS IDP over IP. | |
343 | ||
00c2ba06 GW |
344 | These 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 |
349 | This option controls how long the system waits after a panic before it |
350 | reboots. If a @var{time} of zero is specified, it reboots immediately; | |
351 | otherwise, @var{time} is the number of seconds to wait before rebooting. | |
352 | If, during the waiting period, a key is hit on the console, the | |
353 | countdown stops and the system will wait for the user to copy down the | |
354 | panic 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 | |
360 | This option controls support for mounting MS-DOS disks and disk | |
361 | partitions under FreeBSD. The @samp{pcfs} manual page is presently very | |
362 | bogus. | |
363 | ||
364 | @item pseudo-device ppp @var{number} | |
365 | @findex ppp | |
366 | @cindex Point-To-Point Protocol | |
367 | @cindex Network interfaces | |
368 | The @samp{ppp} pseudo-device provides support for the Internet | |
369 | Point-to-Point protocol (RFC 1351 @i{et seq}), implemented as a line | |
370 | discipline over standard serial links. @var{number} should be the | |
371 | number of simultaneous PPP interfaces which will be configured. | |
372 | ||
373 | @item pseudo-device pty @var{number} | |
374 | @findex pty | |
375 | @cindex Pseudo-terminals | |
376 | This pseudo-device provides support for pseudo-ttys, which are required | |
377 | for @samp{rlogin}, @samp{telnet}, and @samp{xterm} to operate correctly; | |
378 | @var{number} should be set to the total number of these programs you | |
379 | expect to have running at any given time. Because pty's are not as yet | |
380 | dynamically allocated, and the underlying structures are large, it is | |
381 | best to keep this value as small as feasible, until this deficiency is | |
382 | remedied. | |
383 | ||
384 | @item options QUOTA | |
385 | @findex QUOTA | |
386 | @cindex Disk quotas | |
387 | @cindex Filesystems | |
388 | The @samp{QUOTA} option enables support for disk quotas. Note that NFS | |
389 | quota 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 | |
398 | This pseudo-device provides support for the Serial Line Internet | |
399 | Protocol (RFC 1055), implemented as a line discipline over standard | |
400 | serial links. It includes support for Van Jacobson header compression. | |
401 | @var{number} should be the number of simultaneous SLIP interfaces which | |
402 | will 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 | |
420 | The @samp{SYSVSHM} option enables kernel-side emulation of System | |
421 | V-compatible shared memory. The @samp{SHMMAXPGS} option (default 64 | |
422 | pages or 256K) determines the maximum amount of shared memory available | |
423 | under this mechanism. The @samp{SYSVSEM} option provides emulation of | |
424 | System V-compatible semaphores, and likewise @samp{SYSVMSG} for message | |
425 | queues. | |
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 | |
432 | This option controls the perpetuation of several bugs inherited from the | |
433 | 4.2BSD implementation of TCP. It should only be defined in the | |
434 | circumstances outlined for @samp{COMPAT_42}, above. | |
435 | ||
00c2ba06 GW |
436 | This option will likely be replaced by run-time configuration in a |
437 | future release of FreeBSD. | |
438 | ||
d30b4617 GW |
439 | @item pseudo-device tun |
440 | @findex tun | |
441 | @cindex Network interfaces | |
442 | The @samp{tun} driver provides a network interface which is attached to | |
443 | a character device. In this way, a user-mode program can grab packets | |
444 | out of the networking system, fiddle with them or move them around, and | |
445 | pass stuff packets back up into the kernel. It is not known if this | |
446 | device either compiles or operates correctly, although it was believed | |
447 | to do both at some time in the past. | |
448 | ||
449 | @item options UCONSOLE | |
450 | @findex UCONSOLE | |
451 | @cindex Console redirection | |
452 | This option allows any old user to grab kernel output away from the | |
453 | console and send it to the tty of their choice. It presents an | |
454 | incredile security hole for some systems, but is necessary in order to | |
00c2ba06 | 455 | allow programs like @samp{xconsole} to operate. |
d30b4617 GW |
456 | |
457 | @item options XSERVER | |
458 | @findex XSERVER | |
459 | @cindex X Window System | |
460 | This obsolescent option enables support in the @samp{pc} console | |
461 | driver 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 | ||
469 | The following options are provided for system performace optimization. | |
470 | Note that kernel profiling is supported via the @samp{-p} option to the | |
471 | @samp{config} command; for more information see the @samp{config} manual | |
472 | page. | |
473 | ||
474 | @table @code | |
475 | @item psuedo-device ddb | |
476 | @findex ddb | |
477 | @cindex Kernel debugger | |
478 | @cindex Debugger, kernel | |
479 | This 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 | |
481 | of 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 | |
490 | These debugging options reduce performace. They are intended to enable | |
491 | certain internal consistency checks which are not supposed to fail | |
492 | during correct operation, and so are normally disabled for performace | |
493 | reasons. | |
494 | ||
495 | @item options FASTLINKS | |
496 | @findex FASTLINKS | |
497 | @cindex Symbolic links | |
498 | @cindex Filesystems | |
499 | The @samp{FASTLINKS} option enables the creation of symbolic links whose | |
500 | target names reside entirely within the i-node of the link, when | |
501 | possible. This results in faster access for those links which are short | |
502 | enough (in practice, most of them). All kernels can read such links, | |
503 | but only @samp{FASTLINKS} kernels will create them, for compatibility | |
504 | with older kernels lacking such support. | |
505 | ||
506 | @item options ICMPPRINTFS | |
507 | @findex ICMPPRINTFS | |
508 | @cindex Debugging options | |
509 | @cindex ICMP | |
510 | This option is defined to allow debugging of ICMP (@dfn{Internet Control | |
511 | Message Protocol}) packets in the kernel. When defined and the | |
512 | @samp{icmpprintfs} kernel variable (default false) is set to true, ICMP | |
513 | packets will be printed out to the console when received. Note that it | |
514 | is 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 | |
521 | The @samp{KGDB} option enables certain bits of kernel code which will | |
522 | eventually be able to talk to a remote copy of the @samp{gdb} debugger | |
523 | over a serial connection. The present code does not work, but users are | |
524 | invited to hack on it and contribute the changes back to the FreeBSD | |
525 | team. | |
526 | ||
00c2ba06 GW |
527 | @item options MAXMEM=@var{size} |
528 | @findex MAXMEM | |
529 | The @samp{MAXMEM} option controls how much memory the kernel will | |
530 | recognize on bootup, specified in kilobytes. This may be useful for | |
531 | dealing with certain broken attachment busses (or the adapters thereon) | |
532 | which 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 | |
538 | This option controls whether the TCP system believes that machines on | |
539 | other subnets of your network are considered to be ``local'' to your | |
540 | host. For most systems, this option should be on (the default); if you | |
541 | are directly connected to a class A network, however, then it may need | |
542 | to 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 | |
548 | This obsolescent option controls the amount of space that will be | |
549 | statically allocated in the debugger source code to hold the kernel | |
550 | symbol table that @samp{dbsym} sticks there. Eventually this will be | |
551 | dynamically allocated at load time. The default @var{value} is 63000 | |
552 | bytes. | |
00c2ba06 GW |
553 | |
554 | @item options "UPDATE_INTERVAL=@var{value}" | |
555 | @findex UPDATE_INTERVAL | |
556 | @cindex Update process | |
557 | This option controls the wait time between successive @samp{sync} | |
558 | operations run by the @samp{update} system process (pid 3). This option | |
559 | will be replaced by run-time configuration in a future release of | |
560 | FreeBSD. | |
561 | ||
24d784a6 GR |
562 | @item options DUMMY_NOPS |
563 | @findex DUMMY_NOPS | |
564 | @cindex Fast i/o bus operations | |
565 | This option controls the use of real Nops for bus operations. | |
566 | This 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 | ||
574 | There are different device selections available depending on the type of | |
575 | bus present in your computer. We will cover generic FreeBSD devices, | |
576 | ISA-bus devices, and EISA-bus devices. A separate section describes the | |
577 | devices 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 | ||
591 | The following devices and options are available in all FreeBSD | |
592 | configurations. In addition to these devices, a selection of ISA | |
593 | devices (@pxref{ISA}) is required in order to generate a workable | |
594 | system. | |
595 | ||
596 | @table @code | |
597 | @item machine "i386" | |
598 | @findex i386 | |
599 | This mandatory declaration informs the @samp{config} program that you | |
600 | are using an i386 or compatible CPU, and enables the selection of all | |
601 | the other devices listed here. | |
602 | ||
603 | @item cpu "I386_CPU" | |
604 | @itemx cpu "I486_CPU" | |
605 | @findex I386_CPU | |
606 | @findex I486_CPU | |
607 | These two options control which specific CPUs will be supported by the | |
608 | generated kernel. If the kernel detects that it is not running on a CPU | |
609 | for which support was enabled, it will panic quickly upon startup. If | |
610 | you do not expect to need to run your kernel on an i386 or similar CPU, | |
611 | leaving 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 | |
617 | When this option is defined, the math coprocessor emulator is compiled | |
618 | into the kernel. When it is not defined and the coprocessor is absent, | |
619 | programs 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 | |
624 | The @samp{npx} device provides support for the i387 numeric coprocessor | |
625 | and the floating-point portions of the i486 CPU. This will eventually | |
626 | be fixed to not require ISA to be configured. | |
627 | ||
628 | @item pseudo-device speaker | |
629 | @findex speaker | |
630 | The @samp{speaker} pseudo-device provides support for rudimentary access | |
631 | to the PC's speaker via @file{/dev/spkr}. It provides a | |
632 | character-device interface which interprets @samp{PLAY} strings similar | |
633 | to IBM PC Advanced BASIC, as well as an @samp{ioctl} interface with more | |
634 | fine-grained control. See the @samp{spkr} manual page for more | |
635 | information. | |
636 | @end table | |
637 | ||
638 | @node ISA, EISA, Generic, Devices | |
639 | @section ISA-bus Devices and Options | |
640 | ||
641 | The following options are specific to ISA-bus devices and systems. | |
642 | Since the EISA bus is backwards-compatible with the ISA bus, all these | |
643 | options 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 | |
649 | This @strong{mandatory} declaration must precede any other devices | |
650 | listed in this section. It provides the basic support for the ISA-bus | |
651 | glue 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 | |
659 | The @samp{aha} device supports the Adaptec 154x series of SCSI | |
660 | controllers, and attempts to support other vendors' controllers which | |
661 | claim compatibility with the Adaptec 1542, such as the BusLogic 545. | |
662 | This device is included in the @samp{GENERICAH} distribution kernel. | |
663 | The @samp{scbus} device (@pxref{SCSI}) is a prerequisite for this | |
664 | device. | |
665 | ||
81d3597c GW |
666 | Some older versions of this code would attempt to set the controller's |
667 | bus access speed to the fastest possible without losing data; we have | |
668 | found that this makes the driver unusable for some users. If you wish | |
669 | to enable this optimization, or if you suspect that your SCSI transfers | |
670 | are running slower than they should, then you can use the @samp{TUNE_1542} | |
671 | option 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 | |
677 | This device supports the Bustek 742 SCSI controller. It is included in | |
678 | the @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 | |
685 | This option enables bi-directional support in the @samp{sio} serial | |
686 | driver. This option is slated for removal, at which time bi-directional | |
687 | support will always be enabled. See the @samp{comcontrol} manual page | |
688 | for more information. | |
689 | ||
690 | @item options COM_MULTIPORT | |
691 | @findex COM_MULTIPORT | |
692 | @cindex Multi-port serial boards | |
693 | @cindex Serial ports | |
694 | This option enables support in the @samp{sio} serial driver for certain | |
695 | multi-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 | |
705 | The @samp{ed} network interface driver provides support for the Western | |
706 | Digital/SMC 80x3 series, the 3Com 3c503, and Novell NE1000 and NE2000 | |
707 | series of Ethernet controllers. It automatically detects differences | |
708 | among the various versions of these controllers and adapts | |
709 | appropriately. 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 | |
726 | The @samp{fdc} driver provides support for the standard PC floppy-disk | |
727 | controller. The @samp{fd} sub-driver supports 3.5-- and 5.25-inch | |
728 | floppy disks in the standard 360KB, 720KB, 1200KB, 1440KB, and 2880KB | |
729 | formats, 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. | |
731 | The drivers support formatting of both tapes and disks. This driver is | |
732 | substantially improved from that shipped in previous releases of | |
733 | FreeBSD. | |
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 | |
742 | This network interface driver provides support for the AT&T StarLAN 10 | |
743 | and EN100 family of controllers. Note that the configuration specified | |
744 | here is not the default configuration, but one which attempts to deal | |
745 | with the conflicts that arise in more modern systems. (It is expected | |
746 | that this driver will be expanded in the future to support other similar | |
747 | cards 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 | |
755 | The @samp{is} network interface driver supports the Isolan 4141-0 and | |
756 | Isolink 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 | |
776 | The @samp{lpt} driver provides support for the parallel printer driver | |
777 | accessed as @file{/dev/lpt@var{N}} (@var{N}=0, 1, @dots{}). The current | |
778 | version of this driver provides support for either polled or | |
779 | interrupt-driven ports, a unification of the @samp{lpt} and @samp{lpa} | |
780 | drivers from FreeBSD 1.1. | |
781 | ||
782 | The first and second examples show explicit selection of a port address. | |
783 | If the port is not specified, as in the third and fourth examples, the | |
784 | driver defaults to whatever address the BIOS printer driver would have | |
785 | used. The second and third examples select interrupt-driven I/O; if | |
786 | polled mode is specified, as in the first and fourth examples, it is | |
787 | impossible to enable interrupt-driven access at run time. | |
788 | ||
789 | If you receive ``ISA strayintr 7'' messages correlated with the use of | |
790 | the polled mode of @samp{lpt}, chances are that your controller supports | |
791 | interrupt-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 | |
798 | This device provides support for the Mitsumi non-SCSI CD-ROM drive. | |
799 | Performance 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 | |
816 | The @samp{pc} and @samp{sc} devices provide support for the system | |
817 | display and keyboard, which is the default console. There might | |
818 | actually be documentation somewhere for both of these. The @samp{sc} | |
819 | device requires the @samp{NCONS} option to be defined to some value; it | |
820 | represents the number of virtual consoles to be provided by the driver; | |
821 | a reasonable value is 8. One of @samp{pc} or @samp{sc} is presently | |
822 | required unless @samp{COMCONSOLE} is enabled, in which case a serial | |
823 | port 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 | |
836 | The @samp{sio} driver provides support for high-speed serial | |
837 | communications using the standard 8250, 16450, and 16550 UART chips. It | |
838 | provides a standard tty interface for these devices as | |
839 | @file{/dev/tty@var{unit}}, and, when enabled with the @samp{comcontrol} | |
840 | program, a call-out capability as @file{/dev/cua@var{unit}} (@var{unit} | |
841 | is two digits, zero-padded in both cases). Certain multi-port systems | |
842 | are 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 | |
849 | This device supports the Ultrastor 14F and related SCSI controllers. It | |
850 | is included in the @samp{GENERICBT} distribution kernel, and requires | |
851 | @samp{scbus} (@pxref{SCSI}) as a prerequisite. The Ultrastor 24F is not | |
852 | supported. | |
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 | |
864 | The @samp{wd} device supports standard ST-506, RLL, ESDI, and IDE hard | |
865 | disks, as controlled by the Western Digital WD100x series of controllers | |
866 | (and compatible hardware). This version is substantially improved from | |
867 | that 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 | |
878 | This driver supports Archive QIC-02 and Wangtek QIC-02 and QIC-36 | |
879 | cartridge tape controllers. | |
880 | @end table | |
881 | ||
882 | @node EISA, MCA, ISA, Devices | |
883 | @section EISA-bus Devices and Options | |
884 | ||
885 | There 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 | |
892 | The @samp{ahb} driver provides support for the Adaptec AHA-174x series | |
893 | of SCSI controllers. This controller is included in the | |
894 | @samp{GENERICAH} distribution kernel, and requires the @samp{scbus} | |
895 | driver (@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 | |
902 | We don't support Micro Channel right now. Anyone interested in working | |
903 | on Micro Channel support should send mail to | |
904 | @samp{FreeBSD-Questions@@freefall.cdrom.com} for information on how to | |
905 | help. | |
906 | ||
907 | @node PCI, SCSI, MCA, Devices | |
908 | @section PCI Devices and Options | |
909 | ||
910 | @cindex PCI | |
911 | We don't support PCI, either. Anyone interested in working on PCI | |
912 | support should send mail to @samp{FreeBSD-Questions@@freefall.cdrom.com} | |
913 | for information on how to help. | |
914 | ||
915 | @node SCSI,, PCI, Devices | |
916 | @section The SCSI Subsystem | |
917 | ||
918 | The SCSI subsystem consists of a set of adaptor-specific driver | |
919 | routines, which were described in the previous sections, and the generic | |
920 | SCSI device drivers, which handle the standardized interactions with | |
921 | devices 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 | |
930 | The @samp{cd} device provides support for CD-ROM drives. Only one | |
931 | @samp{cd} device need be configured, as the driver automatically | |
932 | allocates units for each CD-ROM drive found. Playing of audio CDs is | |
933 | also supported, on drives which support it, through @code{ioctl} calls. | |
934 | Support for retrieval of CD audio over the SCSI bus is not presently | |
935 | available. | |
936 | ||
937 | @item device ch0 | |
938 | @findex ch | |
939 | @cindex Media changers | |
940 | @cindex SCSI devices | |
941 | The @samp{ch} driver supports SCSI media changers; this may include | |
942 | tape, removable disk, and CD changers. One @samp{ch} device should be | |
943 | configured for each changer you expect to support. | |
944 | ||
945 | @item device scbus0 | |
946 | @findex scbus | |
947 | @cindex SCSI bus management | |
948 | This driver forms the core of the SCSI subsystem. It provides the | |
949 | device-independent routines that manage SCSI transactions, keep track of | |
950 | attached devices, and act as glue between SCSI-device-specific drivers | |
951 | and system-specific host adaptors. This device is @emph{mandatory} for | |
952 | all SCSI systems. | |
953 | ||
954 | @item device sd0 | |
955 | @findex sd | |
956 | @cindex SCSI devices | |
957 | @cindex Disk drives | |
958 | The @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 | |
960 | simultaneously 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 | |
977 | The @samp{st} driver supports generic SCSI tape drives. One @samp{st} | |
978 | device should be defined for each tape drive you wish to access. See | |
979 | the @samp{st} manual page for information about how to manipulate the | |
980 | parameters of this device. | |
981 | ||
982 | @item device uk0 | |
983 | @findex uk | |
984 | @cindex SCSI devices | |
985 | @cindex Unknown SCSI devices | |
986 | The @samp{uk} driver provides an attachment point for all otherwise | |
987 | unrecognized SCSI devices. You can't actually do anything with such a | |
988 | device, except perhaps send it an inquiry command using the @samp{scsi} | |
989 | program (q.v.). | |
990 | @end table | |
991 | ||
992 | @node Internals, Index, Devices, Top | |
993 | ||
994 | @chapter Internal Use Only | |
995 | ||
996 | Eventually, this chapter will document some of the kernel manifest | |
997 | constants which are not defines, but which can be tweaked in various | |
998 | header files. | |
999 | ||
1000 | @node Index,, Internals, Top | |
1001 | @appendix General Index | |
1002 | ||
1003 | Items in @code{typewriter} font are option or device names. | |
1004 | ||
1005 | @printindex cp | |
1006 | ||
1007 | @bye |