summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjfieber <jfieber@FreeBSD.org>1995-10-07 04:32:03 +0000
committerjfieber <jfieber@FreeBSD.org>1995-10-07 04:32:03 +0000
commit12cae21615bf4dc96eb144dbe073218bafdd9a85 (patch)
tree083613b35f8bc2a6b3dfe938a79d17a118158b1d
parentb000628524e27ef43f92d40f5bffe65e5df95b9f (diff)
downloadFreeBSD-src-12cae21615bf4dc96eb144dbe073218bafdd9a85.zip
FreeBSD-src-12cae21615bf4dc96eb144dbe073218bafdd9a85.tar.gz
Two new sections:
* Kernel configuration, from Jake Hamby <jehamby@lightside.com> I'd like as many people as possible to give this one a good check before 2.1 goes out the door. * Routing, from Coranth Gryphon <gryphon@healer.com> A bazillion formatting tweaks (only 13 bazillion more to go!)
-rw-r--r--share/doc/handbook/Makefile7
-rw-r--r--share/doc/handbook/authors.sgml10
-rw-r--r--share/doc/handbook/booting.sgml4
-rw-r--r--share/doc/handbook/eresources.sgml7
-rw-r--r--share/doc/handbook/esdi.sgml4
-rw-r--r--share/doc/handbook/handbook.sgml28
-rw-r--r--share/doc/handbook/hw.sgml10
-rw-r--r--share/doc/handbook/install.sgml7
-rw-r--r--share/doc/handbook/kernelconfig.sgml1206
-rw-r--r--share/doc/handbook/porting.sgml184
-rw-r--r--share/doc/handbook/relnotes.sgml24
-rw-r--r--share/doc/handbook/routing.sgml279
-rw-r--r--share/doc/handbook/scsi.sgml6
-rw-r--r--share/doc/handbook/sections.sgml3
-rw-r--r--share/doc/handbook/skey.sgml4
-rw-r--r--share/doc/handbook/slipc.sgml8
-rw-r--r--share/doc/handbook/submitters.sgml8
17 files changed, 1640 insertions, 159 deletions
diff --git a/share/doc/handbook/Makefile b/share/doc/handbook/Makefile
index ec54798..86bf210 100644
--- a/share/doc/handbook/Makefile
+++ b/share/doc/handbook/Makefile
@@ -1,12 +1,13 @@
-# $Id: Makefile,v 1.3 1995/09/25 18:23:02 wollman Exp $
+# $Id: Makefile,v 1.4 1995/10/01 04:43:11 jfieber Exp $
SRCS= authors.sgml basics.sgml bibliography.sgml boothelp.sgml
SRCS+= booting.sgml contrib.sgml crypt.sgml ctm.sgml current.sgml dialup.sgml
SRCS+= diskless.sgml dma.sgml eresources.sgml esdi.sgml glossary.sgml
SRCS+= handbook.sgml history.sgml hw.sgml install.sgml kerberos.sgml
-SRCS+= kerneldebug.sgml memoryuse.sgml mirrors.sgml nfs.sgml nutshell.sgml
+SRCS+= kernelconfig.sgml kerneldebug.sgml memoryuse.sgml
+SRCS+= mirrors.sgml nfs.sgml nutshell.sgml
SRCS+= porting.sgml ports.sgml ppp.sgml printing.sgml relnotes.sgml
-SRCS+= scsi.sgml sections.sgml
+SRCS+= routing.sgml scsi.sgml sections.sgml
SRCS+= skey.sgml slipc.sgml slips.sgml submitters.sgml sup.sgml
SRCS+= troubleshooting.sgml userppp.sgml
diff --git a/share/doc/handbook/authors.sgml b/share/doc/handbook/authors.sgml
index 72b0258..0677ad4 100644
--- a/share/doc/handbook/authors.sgml
+++ b/share/doc/handbook/authors.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: authors.sgml,v 1.8 1995/09/25 04:53:27 jfieber Exp $ -->
+<!-- $Id: authors.sgml,v 1.9 1995/10/01 04:43:12 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
@@ -39,6 +39,14 @@ and double quotes.
<tt><htmlurl url='mailto:gpalmer@FreeBSD.org'
name='&lt;gpalmer@FreeBSD.org&gt;'></tt>">
+<!ENTITY a.gryphon "Coranth Gryphon
+ <tt><htmlurl url='mailto:gryphon@healer.com'
+ name='&lt;gryphon@healer.com&gt;'></tt>">
+
+<!ENTITY a.jehamby "Jake Hamby
+ <tt><htmlurl url='mailto:jehamby@lightside.com'
+ name='&lt;jehamby@lightside.com&gt;'></tt>">
+
<!ENTITY a.jfieber "John Fieber
<tt><htmlurl url='mailto:jfieber@FreeBSD.org'
name='&lt;jfieber@FreeBSD.org&gt;'></tt>">
diff --git a/share/doc/handbook/booting.sgml b/share/doc/handbook/booting.sgml
index 77d6ef9..0cce790 100644
--- a/share/doc/handbook/booting.sgml
+++ b/share/doc/handbook/booting.sgml
@@ -3,7 +3,7 @@
This conversion has been made by Ollivier Robert.
- $Id: booting.sgml,v 1.5 1995/08/29 01:42:30 jfieber Exp $
+ $Id: booting.sgml,v 1.6 1995/09/25 04:53:28 jfieber Exp $
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN">
@@ -133,7 +133,7 @@
<tt>/rootfs/bin -&gt; /bin</tt><newline>
<tt>/rootfs/etc -&gt; /etc</tt><newline>
<tt>/rootfs/sbin -&gt; /sbin</tt><newline>
- ...<newline>
+ (etc...)<newline>
</itemize>
Now you run FreeBSD without repartitioning your hard disk...
diff --git a/share/doc/handbook/eresources.sgml b/share/doc/handbook/eresources.sgml
index a9e647e..fa4af98 100644
--- a/share/doc/handbook/eresources.sgml
+++ b/share/doc/handbook/eresources.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: eresources.sgml,v 1.12 1995/09/27 08:39:54 asami Exp $ -->
+<!-- $Id: eresources.sgml,v 1.13 1995/10/03 21:38:20 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<chapt>
@@ -21,10 +21,7 @@
<sect>
<heading>Mailing lists<label id="eresources:mail"></heading>
-<p><em>Contributed by &a.dufalt;.<newline>
- 20 Jun 1995.</em>
-
-Though many of the FreeBSD development members read USENET, we cannot
+<p>Though many of the FreeBSD development members read USENET, we cannot
always guarantee that we'll get to your questions in a timely fashion
(or at all) if you post them only to one of the comp.unix.bsd.*
groups. By addressing your questions to the appropriate mailing list
diff --git a/share/doc/handbook/esdi.sgml b/share/doc/handbook/esdi.sgml
index a30dc05..6d2c3de 100644
--- a/share/doc/handbook/esdi.sgml
+++ b/share/doc/handbook/esdi.sgml
@@ -1,4 +1,4 @@
-<!-- $Id$ -->
+<!-- $Id: esdi.sgml,v 1.1 1995/09/25 04:53:30 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
@@ -23,7 +23,7 @@
<sect><heading>ESDI hard disks and FreeBSD<label id="esdi"></heading>
- <p><em>&copy; 1995, &a.wilko;.<newline>24 September 1995.</em>
+ <p><em>Copyright &copy; 1995, &a.wilko;.<newline>24 September 1995.</em>
ESDI is an acronym that means Enhanced Small Device Interface.
It is loosely based on the good old ST506/412 interface originally
diff --git a/share/doc/handbook/handbook.sgml b/share/doc/handbook/handbook.sgml
index 6235945..012bde1 100644
--- a/share/doc/handbook/handbook.sgml
+++ b/share/doc/handbook/handbook.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: handbook.sgml,v 1.30 1995/09/27 00:46:19 jmz Exp $ -->
+<!-- $Id: handbook.sgml,v 1.31 1995/10/01 04:43:12 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
@@ -24,7 +24,7 @@
<author>
<name>The FreeBSD Documentation Project</name>
</author>
- <date>September 30, 1995</date>
+ <date>October 6, 1995</date>
<abstract>Welcome to FreeBSD! This handbook covers the
installation and day to day use of <bf>FreeBSD Release
@@ -34,7 +34,7 @@ This manual is a <bf>work in progress</bf> and is the
work of many individuals. Many sections do not yet exist
and some of those that do exist need to be updated. If
you are interested in helping with this project, send
-email to &a.jfieber; or to the FreeBSD Documentation
+email to the FreeBSD Documentation
Project mailing list <tt><htmlurl url="mailto:doc@freebsd.org"
name="&lt;doc@freebsd.org&gt;"></tt>.
The latest version of this document is always available from
@@ -65,15 +65,7 @@ Web server">.
<part><heading>System Administration</heading>
- <chapt><heading>Reconfiguring the Kernel<label id="kernelconfig"></heading>
- <p>This section is in progress. Please contact
- Deborah Bennett <htmlurl url="mailto:deborah@gallifrey.microunity.com"
- name="&lt;deborah@gallifrey.microunity.com&gt;"> for more information.
- In the meantime, please refer to
- Kernel Configuration section of the <url url="../FAQ/freebsd-faq.html"
- name="FreeBSD FAQ">.
- <!-- &kernelconfig; -->
-
+ &kernelconfig;
<chapt><heading>Users, groups and security</heading>
&crypt;
&skey;
@@ -81,12 +73,6 @@ Web server">.
<sect><heading>* Firewalls</heading>
&printing;
-<!--
- <chapt><heading>Printing</heading>
- <p>This section is in progress. Please contact
- Sean Kelly <url url="mailto:kelly@fsl.noaa.gov"
- name="kelley@fsl.noaa.gov"> for more information.
--->
<chapt><heading>The X-Window System</heading>
<p>Pending the completion of this section, please refer to
documentation supplied by the <url url="http://www.xfree86.org/"
@@ -127,11 +113,13 @@ Web server">.
&slips;
<chapt><heading>Advanced networking</heading>
+<!--
<sect><heading>Gateways and routing</heading>
<p>This section is in progress. Please contact
Coranth Gryphon <htmlurl url="mailto:gryphon@healer.com"
name="&lt;gryphon@healer.com&gt;"> for more information.
-
+-->
+ &routing;
&nfs;
&diskless;
<sect><heading>* Yellow Pages/NIS</heading>
@@ -164,7 +152,7 @@ Web server">.
&memoryuse;
&dma;
&contrib;
- &glossary;
+<!-- &glossary; -->
</book>
</linuxdoc>
diff --git a/share/doc/handbook/hw.sgml b/share/doc/handbook/hw.sgml
index 35b5f63..a85bfa8 100644
--- a/share/doc/handbook/hw.sgml
+++ b/share/doc/handbook/hw.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: hw.sgml,v 1.6 1995/09/02 11:09:03 ats Exp $ -->
+<!-- $Id: hw.sgml,v 1.7 1995/10/02 15:59:53 wollman Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
@@ -54,14 +54,14 @@
known work around is to turn the cache
off.
- <tag>Saturn-I <em>(ie, 82424ZX at rev 0, 1 or
- 2)</em>:</tag> write back cache coherency
+ <tag>Saturn-I <em>(ie, 82424ZX at rev 0, 1 or 2)</em>:</tag>
+ Write back cache coherency
problems. Hardware flaw, only known work around
is to set the external cache to write-through
mode. Upgrade to Saturn-II.
- <tag>Saturn-II <em>(ie, 82424ZX at rev 3 or
- 4)</em>:</tag> Works fine, but many MB
+ <tag>Saturn-II <em>(ie, 82424ZX at rev 3 or 4)</em>:</tag>
+ Works fine, but many MB
manufactures leave out the external dirty bit
SRAM needed for write back operation. Work
arounds are either run it in write through mode,
diff --git a/share/doc/handbook/install.sgml b/share/doc/handbook/install.sgml
index b46d0ca..076bcf8 100644
--- a/share/doc/handbook/install.sgml
+++ b/share/doc/handbook/install.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: install.sgml,v 1.11 1995/09/26 17:47:02 jfieber Exp $ -->
+<!-- $Id: install.sgml,v 1.12 1995/09/27 00:46:20 jmz Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
@@ -549,8 +549,9 @@ C> XCOPY /S E:\DISTS C:\FREEBSD\
<p>You can do network installations over 3 types of
communications links:
<descrip>
- <tag>Serial port</tag> SLIP or PPP <tag>Parallel
- port</tag> PLIP (laplink cable) <tag>Ethernet</tag> A
+ <tag>Serial port</tag> SLIP or PPP
+ <tag>Parallel port</tag> PLIP (laplink cable)
+ <tag>Ethernet</tag> A
standard ethernet controller (includes some PCMCIA).
</descrip>
diff --git a/share/doc/handbook/kernelconfig.sgml b/share/doc/handbook/kernelconfig.sgml
new file mode 100644
index 0000000..bb8cc08
--- /dev/null
+++ b/share/doc/handbook/kernelconfig.sgml
@@ -0,0 +1,1206 @@
+<!-- $Id: kernelconfig.sgml,v 0.99 1995/10/05 20:14:15 jehamby Exp $ -->
+<!-- The FreeBSD Documentation Project -->
+<!-- <!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> -->
+ <chapt><heading>Configuring the FreeBSD Kernel<label id="kernelconfig"></heading>
+
+ <p><em>Contributed by &a.jehamby;.<newline>6 October 1995.</em>
+
+ This large section of the handbook discusses the basics of
+ building your own custom kernel for FreeBSD. This section
+ is appropriate for both novice system administrators and
+ those with advanced Unix experience.
+
+ <sect><heading>Why build a custom kernel?</heading>
+
+ <p>Building a custom kernel is one of the most important
+ rites of passage every Unix system administrator must
+ learn. This process, while time-consuming, will provide
+ many benefits to your FreeBSD system. Unlike the GENERIC
+ kernel, which must support every possible SCSI and
+ network card, along with tons of other rarely used
+ hardware support, a custom kernel only contains support
+ for <em>your</em> PC's hardware. This has a number of
+ benefits:
+
+ <itemize>
+
+ <item>It will take less time to boot because it does not
+ have to spend time probing for hardware which you
+ do not have.
+
+ <item>A custom kernel often uses less memory, which is
+ important because the kernel is the one process which
+ must always be present in memory, and so all of that
+ unused code ties up pages of RAM that your programs
+ would otherwise be able to use. Therefore, on a
+ system with limited RAM, building a custom kernel is
+ of critical importance.
+
+ <item>Finally, there are several kernel options which
+ you can tune to fit your needs, and device driver
+ support for things like sound cards which you can
+ include in your kernel but are <em>not</em> present
+ in the GENERIC kernel.
+
+ </itemize></p>
+
+ <sect><heading>Building and Installing a Custom Kernel</heading>
+
+ <p>First, let us take a quick tour of the kernel build
+ directory. All directories mentioned will be relative to
+ the main <tt>/usr/src/sys</tt> directory, which is also
+ accessible through <tt>/sys</tt>. There are a number of
+ subdirectories here representing different parts of the
+ kernel, but the most important, for our purposes, are
+ <tt>i386/conf</tt>, where you will edit your custom
+ kernel configuration, and <tt>compile</tt>, which is the
+ staging area where your kernel will be built. Notice the
+ logical organization of the directory tree, with each
+ supported device, filesystem, and option in its own
+ subdirectory. Also, anything inside the <tt>i386</tt>
+ directory deals with PC hardware only, while everything
+ outside the <tt>i386</tt> directory is common to all
+ platforms which FreeBSD could potentially be ported to.
+
+ <quote><em/Note:/ If there is <em>not</em> a
+ <tt>/usr/src/sys</tt> directory on your system, then the
+ kernel source has not been been installed. Follow the
+ instructions for installing packages to add this package
+ to your system.</quote>
+
+ Next, move to the <tt>i386/conf</tt> directory and copy
+ the GENERIC configuration file to the name you want to
+ give your kernel. For example:
+<tscreen><verb>
+# cd /usr/src/sys/i386/conf
+# cp GENERIC MYKERNEL
+</verb></tscreen>
+ Traditionally, this name is in all capital letters and,
+ if you are maintaining multiple FreeBSD machines with
+ different hardware, it's a good idea to name it after
+ your machine's hostname. We will call it MYKERNEL for
+ the purpose of this example.
+
+ <quote><em/Note:/ You must execute these and all of the
+ following commands under the root account or you will get
+ ``permission denied'' errors.</quote>
+
+ Now, edit MYKERNEL with your favorite text editor. If
+ you're just starting out, the only editor available will
+ probably be <tt>vi</tt>, which is too complex to explain
+ here, but is covered well in many books in the <ref
+ id="bibliography" name="bibliography">. Feel free to change the comment
+ lines at the top to reflect your configuration or the
+ changes you've made to differentiate it from GENERIC.
+
+ If you've build a kernel under SunOS or some other BSD
+ operating system, much of this file will be very familiar
+ to you. If you're coming from some other operating
+ system such as DOS, on the other hand, the GENERIC
+ configuration file might seem overwhelming to you, so
+ follow the descriptions in the <ref
+ id="kernelconfig:config" name="Configuration File">
+ section slowly and carefully.
+
+ When you're finished, type the following to compile and
+ install your kernel:
+<tscreen><verb>
+# /usr/sbin/config MYKERNEL
+# cd ../../compile/MYKERNEL
+# make
+# make install
+</verb></tscreen>
+ The new kernel will be copied to the root directory as
+ <tt>/kernel</tt> and the old kernel will be moved to
+ <tt>/kernel.old</tt>. Now, shutdown the system and
+ reboot to use your kernel. In case something goes wrong,
+ there are some <ref id="kernelconfig:trouble" name=
+ "troubleshooting"> instructions at the end of this
+ document. Be sure to read the section which explains how
+ to recover in case your new kernel <ref
+ id="kernelconfig:noboot" name="does not boot">.
+
+ <quote><em/Note:/ If you've added any new devices (such
+ as sound cards) you may have to add some <ref
+ id="kernelconfig:nodes" name="device nodes"> to your
+ <tt>/dev</tt> directory before you can use them.</quote>
+
+ <sect><heading>The Configuration File<label id="kernelconfig:config"></heading>
+
+ <p>The general format of a configuration file is quite
+ simple. Each line contains a keyword and one or more
+ arguments. For simplicity, most lines only contain one
+ argument. Anything following a <tt>#</tt> is considered
+ a comment and ignored. The following sections describe
+ each keyword, generally in the order they are listed in
+ GENERIC, although some related keywords have been grouped
+ together in a single section (such as Networking) even
+ though they are actually scattered throughout the GENERIC
+ file. An exhaustive list of options is present in the
+ LINT configuration file, located in the same directory as
+ GENERIC.
+
+ <sect1><heading>Mandatory Keywords</heading>
+
+ <p>These keywords are required in every kernel you build.
+
+ <descrip>
+
+ <tag>machine ``i386''</tag>
+
+ <p>The first keyword is <tt>machine</tt>, which,
+ since FreeBSD only runs on Intel 386 and compatible
+ chips, is i386.
+
+ <quote><em>Note:</em> that any keyword which
+ contains numbers used as text must be enclosed in
+ quotation marks, otherwise <tt>config</tt> gets
+ confused and thinks you mean the actual number
+ 386.</quote>
+
+ <tag>cpu ``<em>cpu_type</em>''</tag>
+
+ <p>The next keyword is <tt>cpu</tt>, which includes
+ support for each CPU supported by FreeBSD. The
+ possible values of <tt><em>cpu_type</em></tt>
+ include:
+ <itemize>
+ <item>I386_CPU
+ <item>I486_CPU
+ <item>I586_CPU
+ </itemize>
+ and multiple instances of the <tt>cpu</tt> line may
+ be present with different values of
+ <tt><em>cpu_type</em></tt> as are present in the
+ GENERIC kernel. For a custom kernel, it is best to
+ specify only the cpu you have. If, for example,
+ you have an Intel Pentium, use <tt>I586_CPU</tt>
+ for <tt><em>cpu_type</em></tt>.
+
+ <tag>ident <em>machine_name</em></tag>
+
+ <p>Next, we have <tt>ident</tt>, which is the
+ identification of the kernel. You should change
+ this from GENERIC to whatever you named your
+ kernel, in this example, MYKERNEL. The value you
+ put in <tt>ident</tt> will print when you boot up
+ the kernel, so it's useful to give a kernel a
+ different name if you want to keep it separate from
+ your usual kernel (if you want to build an
+ experimental kernel, for example). Note that, as
+ with <tt>machine</tt> and <tt> cpu</tt>, enclose
+ your kernel's name in quotation marks if it
+ contains any numbers.
+
+ <tag>maxusers <em>number</em></tag>
+
+ <p>This file sets the size of a number of important
+ system tables. This number is supposed to be
+ roughly equal to the number of simultaneous users
+ you expect to have on your machine. However, under
+ normal circumstances, you will want to set
+ <tt>maxusers</tt> to at least four, especially if
+ you're using X Windows or compiling software. The
+ reason is that the most important table set by
+ <tt>maxusers</tt> is the maximum number of
+ processes, which is set to <bf><tt>20 + 16 *
+ maxusers</tt></bf>, so if you set <tt>maxusers</tt>
+ to one, then you can only have 36 simultaneous
+ processes, including the 18 or so that the system
+ starts up at boot time, and the 15 or so you will
+ probably create when you start X Windows. Even a
+ simple task like reading a <tt>man</tt> page will
+ start up nine processes to filter, decompress, and
+ view it. Setting <tt>maxusers</tt> to 4 will allow
+ you to have up to 84 simultaneous processes, which
+ should be enough for anyone. If, however, you see
+ the dreaded ``proc table full'' error when trying
+ to start another program, or are running a server
+ with a large number of simultaneous users (like
+ Walnut Creek CDROM's FTP site!), you can always
+ increase this number and rebuild.
+
+ <quote><em/Note:/ <tt>maxuser</tt> does
+ <em>not</em> limit the number of users which can
+ log into your machine. It simply sets various
+ table sizes to reasonable values considering the
+ maximum number of users you will likely have on
+ your system and how many processes each of them
+ will be running. One keyword which
+ <em>does</em> limit the number of simultaneous
+ <em>remote logins</em> is <ref
+ id="kernelconfig:ptys" name="pseudo-device pty
+ 16">.</quote>
+
+ <tag>config <em>kernel_name</em> root on <em>root_device</em></tag>
+
+ <p>This line specifies the location and name of the
+ kernel. Traditionally the kernel is called
+ <tt>vmunix</tt> but in FreeBSD, it is aptly named
+ <tt>kernel</tt>. You should always use
+ <tt>kernel</tt> for <em>kernel_name</em> because
+ changing it will render numerous system utilities
+ inoperative. The second part of the line specifies
+ the disk and partition where the root filesystem
+ and kernel can be found. Typically this will be
+ <tt>wd0</tt> for systems with non-SCSI drives, or
+ <tt>sd0</tt> for systems with SCSI drives.
+
+ </descrip>
+
+ <sect1><heading>General Options</heading>
+
+ <p>These lines provide kernel support for various
+ filesystems and other options.
+
+ <descrip>
+
+ <label id="kernelconfig:mathemu">
+
+ <tag>options MATH_EMULATE</tag>
+
+ <p>This line allows the kernel to simulate a math
+ coprocessor if your computer does not have one (386
+ or 486SX). If you have a Pentium, a 486DX, or a
+ 386 or 486SX with a separate 387 or 487 chip, you
+ can comment this line out.
+
+ <quote><em>Note:</em> The normal math coprocessor
+ emulation routines that come with FreeBSD are
+ <em>not</em> very accurate. If you do not have a
+ math coprocessor, and you need the best accuracy,
+ I recommend that you change this option to
+ <tt>GPL_MATH_EMULATE</tt> to use the superior GNU
+ math support, which is not included by default
+ for licensing reasons.</quote>
+
+ <tag>options ``COMPAT_43''</tag>
+
+ <p>Compatibility with BSD 4.3. Leave this in; some
+ programs will act strangely if you comment this
+ out.
+
+ <tag>options BOUNCE_BUFFERS</tag>
+
+ <p>ISA devices and EISA devices operating in an ISA
+ compatibilty mode can only perform DMA (Direct
+ Memory Access) to memory below 16 megabytes. This
+ option enables such devices to work in systems with
+ more than 16 megabytes of memory.
+
+ <tag>options UCONSOLE</tag>
+
+ <p>Allow users to grab the console, useful for X
+ Windows. For example, you can create a console
+ xterm by typing <tt>xterm -C</tt>, which will
+ display any `write', `talk', and other messages you
+ receive.
+
+ <tag>options SYSVSHM</tag>
+
+ <p>This option
+ provides for System V shared memory. The most
+ common use of this is the XSHM extension in X
+ Windows, which many graphics-intensive programs
+ (such as the movie player XAnim, and Linux DOOM)
+ will automatically take advantage of for extra
+ speed. If you use X Windows, you'll definitely
+ want to include this.
+
+ <tag>options SYSVSEM</tag>
+
+ <p>Support for System V
+ semaphores. Less commonly used but only adds a few
+ hundred bytes to the kernel.
+
+ <tag>options SYSVMSG</tag>
+
+ <p>Support for System V
+ messages. Again, only adds a few hundred bytes to
+ the kernel.
+
+ <quote><em/Note:/ The <tt>ipcs(1)</tt> command will
+ tell will list any processes using using each of
+ these System V facilities.</quote>
+
+ </descrip>
+
+ <sect1><heading>Filesystem Options</heading>
+
+ <p>These options add support for various filesystems.
+ You must include at least one of these to support the
+ device you boot from; typically this will be
+ <tt>FFS</tt> if you boot from a hard drive, or
+ <tt>NFS</tt> if you are booting a diskless workstation
+ from Ethernet. You can include other commonly-used
+ filesystems in the kernel, but feel free to comment out
+ support for filesystems you use less often (perhaps the
+ MS-DOS filesystem?), since they will be dynamically
+ loaded from the Loadable Kernel Module directory
+ <tt>/lkm</tt> the first time you mount a partition of
+ that type.
+
+ <descrip>
+
+ <tag>options FFS</tag>
+
+ <p>The basic hard drive
+ filesystem; leave it in if you boot from the hard
+ disk.
+
+ <tag>options NFS</tag>
+
+ <p>Network Filesystem. Unless
+ you plan to mount partitions from a Unix file
+ server over Ethernet, you can comment this out.
+
+ <tag>options MSDOSFS</tag>
+
+ <p>MS-DOS Filesystem. Unless
+ you plan to mount a DOS formatted hard drive
+ partition at boot time, you can safely comment this
+ out. It will be automatically loaded the first
+ time you mount a DOS partition, as described above.
+ Also, the excellent <tt>mtools</tt> software (in
+ the ports collection) allows you to access DOS
+ floppies without having to mount and unmount them
+ (and does not require MSDOSFS at all).
+
+ <tag>options ``CD9660''</tag>
+
+ <p>ISO 9660 filesystem for
+ CD-ROMs. Comment it out if you do not have a
+ CD-ROM drive or only mount data CD's occasionally
+ (since it will be dynamically loaded the first time
+ you mount a data CD). Audio CD's do not need this
+ filesystem.
+
+ <tag>options PROCFS</tag>
+
+ <p>Process filesystem. This
+ is a pretend filesystem mounted on /proc which
+ allows programs like <tt>ps(1)</tt> to give you
+ more information on what processes are running.
+ Leave it in.
+
+ <tag>options MFS</tag>
+
+ <p>Memory-mapped file system.
+ This is basically a RAM disk for fast storage of
+ temporary files, useful if you have a lot of swap
+ space that you want to take advantage of. A
+ perfect place to mount an MFS partition is on the
+ <tt>/tmp</tt> directory, since many programs store
+ temporary data here. To mount an MFS RAM disk on
+ <tt>/tmp</tt>, add the following line to
+ <tt>/etc/fstab</tt> and then reboot or type
+ <tt>mount /tmp</tt>:
+<tscreen><verb>
+/dev/wd1s2b /tmp mfs rw 0 0
+</verb></tscreen>
+
+ <quote><em/Note:/ Replace the <tt>/dev/wd1s2b</tt>
+ with the name of your swap partition, which will
+ be listed in your <tt>/etc/fstab</tt> as follows:
+<tscreen><verb>
+/dev/wd1s2b none swap sw 0 0
+</verb></tscreen>
+ </quote>
+
+ <quote><em/Note:/ <!-- MFS is currently a bit
+ limited (for example, I noticed that two programs
+ ca not access the <tt>/tmp</tt> device
+ simultaneously). As such, you may want to avoid
+ it for now. --> Also, the <tt>MFS</tt> filesystem
+ can <em>not</em> be dynamically loaded, so you
+ <em>must</em> compile it into your kernel if you
+ want to experiment with it.</quote>
+
+ <tag>options QUOTA</tag>
+
+ <p>Enable disk quotas. If you
+ have a public access system, and do not want users
+ to be able to overflow the <tt>/home</tt>
+ partition, you can establish disk quotas for each
+ user. This code is a little buggy, so do not
+ enable it unless you have to. View the manual page
+ for <tt>quota(1)</tt> to learn more about disk
+ quotas.
+
+ </descrip>
+
+ <sect1><heading>Basic Controllers and Devices</heading>
+
+ <p>These sections describe the basic disk, tape, and
+ CD-ROM controllers supported by FreeBSD. There are
+ separate sections for <ref id="kernelconfig:scsi"
+ name="SCSI"> controllers and <ref
+ id="kernelconfig:network" name="network"> cards.
+
+ <descrip>
+
+ <tag>controller isa0</tag>
+
+ <p>All PC's supported by
+ FreeBSD have one of these. If you have an IBM PS/2
+ (Micro Channel Architecture), then you cannot run
+ FreeBSD at this time.
+
+ <tag>controller pci0</tag>
+
+ <p>Include this if you have a
+ PCI motherboard. This enables auto-detection of
+ PCI cards and gatewaying from the PCI to the ISA
+ bus.
+
+ <tag>controller fdc0</tag>
+
+ <p>Floppy drive controller:
+ <tt>fd0</tt> is the ``A:'' floppy drive, and
+ <tt>fd1</tt> is the ``B:'' drive. <tt>ft0</tt> is
+ a QIC-80 tape drive attached to the floppy
+ controller. Comment out any lines corresponding to
+ devices you do not have.
+
+ <quote><em/Note:/ QIC-80 tape support requires a
+ separate filter program called <tt>ft(8)</tt>, see
+ the manual page for details.</quote>
+
+ <tag>controller wdc0</tag>
+
+ <p>This is the primary IDE
+ controller. <tt>wd0</tt> and <tt>wd1</tt> are the
+ master and slave hard drive, respectively.
+ <tt>wdc1</tt> is a secondary IDE controller where
+ you might have a third or fourth hard drive, or an
+ IDE CD-ROM. Comment out the lines which do not
+ apply (if you have a SCSI hard drive, you'll
+ probably want to comment out all six lines, for
+ example).
+
+ <tag>controller wcd0<label id="kernelconfig:atapi"></tag>
+
+ <p>This device
+ provides IDE CD-ROM support. Be sure to leave
+ <tt>wdc1</tt> uncommented if your CD-ROM is on
+ its own controller card. To use this, you must
+ also include the line <tt>options ATAPI</tt>.
+
+ <tag>device npx0 at isa? port ``IO_NPX'' irq 13 vector npxintr</tag>
+
+ <p><tt>npx0</tt> is the interface to the
+ math coprocessor. If you have one then make sure
+ you've commented out <ref id="kernelconfig:mathemu"
+ name="MATH_EMULATE"> above. If you do not have a
+ math coprocessor, you can comment this out.
+
+ <tag>device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr</tag>
+
+ <p>Wangtek and Archive
+ QIC-02/QIC-36 tape drive support
+
+ <tag>Proprietary CD-ROM support</tag>
+
+ <p>The following
+ drivers are for the so-called <em>proprietary</em>
+ CD-ROM drives. These drives have their own
+ controller card or might plug into a sound card
+ such as the Soundblaster 16. They are <em>not</em>
+ IDE or SCSI. Most older single-speed and
+ double-speed CD-ROMs use these interfaces, while
+ newer quad-speeds are likely to be <ref
+ id="kernelconfig:atapi" name="IDE"> or <ref
+ id="kernelconfig:scsi" name="SCSI">.
+
+ <descrip>
+
+ <tag>device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr</tag>
+
+ <p>Mitsumi CD-ROM (LU002,
+ LU005, FX001D).
+
+ <tag>device scd0 at isa? port 0x230 bio</tag>
+
+ <p>Sony CD-ROM (CDU31, CDU33A).
+
+ <tag>controller matcd0 at isa? port ? bio</tag>
+
+ <p>Matsushita/Panasonic CD-ROM (sold by Creative
+ Labs for Soundblaster).
+
+ </descrip>
+
+ </descrip>
+
+ <sect1><heading>SCSI Device Support<label id="kernelconfig:scsi"></heading>
+
+ <p>This section describes the various SCSI controllers
+ and devices supported by FreeBSD.
+
+ <descrip>
+
+ <tag>SCSI Controllers</tag>
+
+ <p>The next ten or so lines include support for
+ different kinds of SCSI controllers. Comment out
+ all except for the one(s) you have:
+
+ <descrip>
+
+ <tag>controller bt0 at isa? port ``IO_BT0'' bio irq ? vector btintr</tag>
+
+ <p>Most Buslogic controllers
+
+ <tag>controller uha0 at isa? port ``IO_UHA0'' bio irq ? drq 5 vector uhaintr</tag>
+
+ <p>UltraStor 14F and 34F
+
+ <tag>controller ahc0</tag>
+
+ <p>Adaptec 274x/284x/294x
+
+ <tag>controller ahb0 at isa? bio irq ? vector ahbintr</tag>
+
+ <p>Adaptec 174x
+
+ <tag>controller aha0 at isa? port ``IO_AHA0'' bio irq ? drq 5 vector ahaintr</tag>
+
+ <p>Adaptec 154x
+
+ <tag>controller aic0 at isa? port 0x340 bio irq 11 vector aicintr
+</tag>
+
+ <p>Adaptec 152x and sound cards using Adaptec AIC-6360 (slow!)
+
+ <tag>controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr
+</tag>
+
+ <p>ProAudioSpectrum cards using NCR 5380 or Trantor T130
+
+ <tag>controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr</tag>
+
+ <p>Seagate ST01/02 8 bit controller (slow!)
+
+ <tag>controller wds0 at isa? port 0x350 bio irq 15 drq 6 vector wdsintr</tag>
+
+ <p>Western Digital WD7000 controller
+
+ <tag>controller ncr0</tag>
+
+ <p>NCR 53C810 and 53C825 PCI SCSI controller
+
+ </descrip>
+
+ <tag>options ``SCSI_DELAY=15''</tag>
+
+ <p>This causes the
+ kernel to pause 15 seconds before probing each SCSI
+ device in your system. If you only have IDE hard
+ drives, you can ignore this, otherwise you'll
+ probably want to lower this number, perhaps to 5
+ seconds, to speed up booting. Of course if you do
+ this, and FreeBSD has trouble recognizing your SCSI
+ devices, you'll have to raise it back up.
+
+ <tag>controller scbus0</tag>
+
+ <p>If you have any SCSI
+ controllers, this line provides generic SCSI
+ support. If you do not have SCSI, you can comment
+ this, and the following three lines, out.
+
+ <tag>device sd0</tag>
+
+ <p>Support for SCSI hard
+ drives.
+
+ <tag>device st0</tag>
+
+ <p>Support for SCSI tape
+ drives.
+
+ <tag>device cd0</tag>
+
+ <p>Support for SCSI CD-ROM
+ drives.
+
+ </descrip>
+
+ <sect1><heading>Console, Bus Mouse, and X Server Support</heading>
+
+ <p>You must choose one of these two console types, and, if you plan
+ to use X Windows, enable the XSERVER option and optionally, a bus
+ mouse or PS/2 mouse device.
+
+ <descrip>
+
+ <tag>device sc0 at isa? port ``IO_KBD' tty irq 1 vector scintr</tag>
+
+ <p><tt>sc0</tt> is the default
+ console driver, which resembles an SCO console.
+ Since most full-screen programs access the console
+ through a terminal database library like
+ <em>termcap</em>, it should not matter much whether
+ you use this or <tt>vt0</tt>, the VT220 compatible
+ console driver. When you log in, set your TERM
+ variable to ``scoansi'' if full-screen programs
+ have trouble running under this console.
+
+ <tag>device vt0 at isa? port ``IO_KBD'' tty irq 1 vector pcrint</tag>
+
+ <p>This is a VT220-compatible
+ console driver, backwards compatible to VT100/102.
+ It works well on some laptops which have hardware
+ incompatibilities with <tt>sc0</tt>. Also, set
+ your TERM variable to ``vt220'' when you log in if
+ full-screen programs do not run correctly on this
+ console.
+
+ <descrip>
+
+ <tag>options ``PCVT_FREEBSD=210''</tag>
+
+ <p>Required
+ with the <tt>vt0</tt> console driver.
+
+ <tag>options XSERVER</tag>
+
+ <p>This includes code
+ required to run the <tt>XFree86</tt> X Window
+ Server.
+
+ </descrip>
+
+ <tag>device mse0 at isa? port 0x23c tty irq 5 vector ms</tag>
+
+ <p>Use this device if you have a Logitech or
+ ATI InPort bus mouse card.
+
+ <quote><em/Note:/ If you have a serial mouse,
+ ignore these two lines, and instead, make sure
+ the appropriate <ref id="kernelconfig:serial"
+ name="serial"> port is enabled (probably
+ COM1).</quote>
+
+ <tag>device psm0 at isa? port ``IO_KBD'' conflicts tty irq 12 vector psmintr</tag>
+
+ <p>Use this device if your
+ mouse plugs into the PS/2 mouse port.
+
+ </descrip>
+
+ <sect1><heading>Serial and Parallel Ports</heading>
+
+ <p>Nearly all systems have these. If you are attaching a
+ printer to one of these ports, the <ref id="printing"
+ name="Printing"> section of the handbook is very
+ useful. If you are using modem, <ref id="dialup"
+ name="Dialup access"> provides extensive detail on
+ serial port configuration for use with such devices.
+
+ <descrip>
+
+ <tag>device sio0 at isa? port ``IO_COM1'' tty irq 4 vector siointr<label id="kernelconfig:serial"></tag>
+
+ <p><tt>sio0</tt>
+ through <tt>sio3</tt> are the four serial ports
+ referred to as COM1 through COM4 in the MS-DOS
+ world. Note that if you have an internal modem on
+ COM4 and a serial port at COM2 you will have to
+ change the IRQ of the modem to 2 (for obscure
+ technical reasons IRQ 2 = IRQ 9) in order to access
+ it from FreeBSD. If you have a multiport serial
+ card, check the manual page for <tt>sio(4)</tt> for
+ more information on the proper values for these
+ lines.
+
+ <tag>device lpt0 at isa? port? tty irq 7 vector lptintr</tag>
+
+ <p><tt>lpt0</tt> through <tt>lpt2</tt>
+ are the three printer ports you could conceivably
+ have. Most people just have one, though, so feel
+ free to comment out the other two lines if you do
+ not have them.
+
+ </descrip>
+
+ <sect1><heading>Networking<label id="kernelconfig:network"></heading>
+
+ <p>FreeBSD, as with Unix in general, places a
+ <em>big</em> emphasis on networking. Therefore, even
+ if you do not have an Ethernet card, pay attention to
+ the mandatory options and the dial-up networking
+ support.
+
+ <descrip>
+
+ <tag>options INET</tag>
+ Networking support. Leave it in even if you do not plan
+ to be connected to a network. Most programs require at least
+ loopback networking (i.e. making network connections within your
+ PC) so this is essentially mandatory.
+
+ <tag>Ethernet cards</tag>
+
+ <p>The next lines enable support for various Ethernet
+ cards. If you do not have a network card, you can
+ comment out all of these lines. Otherwise, you'll
+ want to leave in support for your particular
+ Ethernet card(s):
+
+ <descrip>
+
+ <tag>device de0</tag>
+
+ <p>Digital Equipment DC21040 PCI Ethernet adapter
+
+ <tag>device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr</tag>
+
+ <p>Cronyx/Sigma multiport
+ sync/async (with Cisco or PPP framing)
+
+ <tag>device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr</tag>
+
+ <p>Western Digital and SMC 80xx; Novell NE1000
+ and NE2000; 3Com 3C503
+
+ <tag>device el0 at isa? port 0x300 net irq 9 vector elintr</tag>
+
+ <p>3Com 3C501 (slow!)
+
+ <tag>device eg0 at isa? port 0x310 net irq 5 vector egintr</tag>
+
+ <p>3Com 3C505
+
+ <tag>device ep0 at isa? port 0x300 net irq 10 vector epintr</tag>
+
+ <p>3Com 3C509 (buggy)
+
+ <tag>device fe0 at isa? port 0x240 net irq ? vector feintr</tag>
+
+ <p>Fujitsu MB86960A/MB86965A Ethernet
+
+ <tag>device fea0 at isa? net irq ? vector feaintr</tag>
+
+ <p>DEC DEFEA EISA FDDI adapter
+
+ <tag>device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr</tag>
+
+ <p>AT&amp;T StarLAN 10 and EN100; 3Com 3C507;
+ unknown NI5210
+
+ <tag>device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr</tag>
+
+ <p>Intel EtherExpress 16
+
+ <tag>device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr</tag>
+
+ <p>Digital Equipment EtherWorks 2 and EtherWorks
+ 3 (DEPCA, DE100, DE101, DE200, DE201, DE202,
+ DE203, DE204, DE205, DE422)
+
+ <tag>device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr</tag>
+
+ <p>Lance/PCnet cards (Isolan, Novell NE2100,
+ NE32-VL)
+
+ <tag>device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr</tag>
+
+ <p>IBM/National Semiconductor PCMCIA ethernet
+ controller.
+
+ <tag>device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr</tag>
+
+ <p>3Com PCMCIA Etherlink III
+
+ </descrip>
+
+ <quote><em/Note:/ With certain cards (notably the
+ NE2000) you'll have to change the port and/or IRQ
+ since there is no ``standard'' location for these
+ cards.</quote>
+
+ <tag>pseudo-device loop</tag>
+
+ <p><tt>loop</tt> is the
+ generic loopback device for TCP/IP. If you telnet
+ or FTP to <em>localhost</em>
+ (a.k.a. <tt>127.0.0.1</tt>) it will come back at
+ you through this pseudo-device. Mandatory.
+
+ <tag>pseudo-device ether</tag>
+
+ <p><tt>ether</tt> is only
+ needed if you have an Ethernet card and includes
+ generic Ethernet protocol code.
+
+ <tag>pseudo-device sl <em>number</em></tag>
+
+ <p><tt>sl</tt> is for SLIP (Serial Line Internet
+ Protocol) support. This has been almost entirely
+ supplanted by PPP, which is easier to set up,
+ better suited for modem-to-modem connections, as
+ well as more powerful. The <em>number</em> after
+ <tt>sl</tt> specifies how many simultaneous SLIP
+ sessions to support. This handbook has more
+ information on setting up a SLIP <ref id="slipc"
+ name="client"> or <ref id="slips" name="server">.
+
+ <tag>pseudo-device ppp <em>number</em></tag>
+
+ <p><tt>ppp</tt> is for kernel-mode PPP (Point-to-Point
+ Protocol) support for dial-up Internet connections.
+ There is also version of PPP implemented as a user
+ application that uses the <tt>tun</tt> and offers
+ more flexibility and features such as demand
+ dialing. If you still want to use this PPP driver,
+ read the <ref id="ppp" name="kernel-mode PPP">
+ section of the handbook. As with the <tt>sl</tt>
+ device, <em>number</em> specifies how many
+ simultaneous PPP connections to support.
+
+ <tag>pseudo-device tun <em>number</em></tag>
+
+ <p><tt>tun</tt> is used by the user-mode PPP software.
+ This program is easy to set up and very fast. It
+ also has special features such as automatic
+ dial-on-demand. The number after <tt>tun</tt>
+ specifies the number of simultaneous PPP sessions
+ to support. See the <ref id="userppp"
+ name="user-mode PPP"> section of the handbook for
+ more information.
+
+ <tag>pseudo-device bpfilter <em>number</em></tag>
+
+ <p>Berkeley packet filter. This pseudo-device allows
+ network interfaces to be placed in promiscuous
+ mode, capturing every packet on a broadcast network
+ (e.g. an ethernet). These packets can be captured
+ to disk and/or examined with the
+ <tt>tcpdump(1)</tt> program. Note that
+ implementation of this capability can seriously
+ compromise your overall network security.
+ The <em>number</em> after bpfilter is the number of
+ interfaces that can be examined
+ simultaneously. Optional, not recommended except
+ for those who are fully aware of the potential
+ pitfalls. Not all network cards support this
+ capability.
+
+ </descrip>
+
+ <sect1><heading>Sound cards</heading>
+
+ <p>This is the first section containing lines that are
+ not in the GENERIC kernel. To include sound card
+ support, you'll have to copy the appropriate lines from
+ the LINT kernel (which contains support for
+ <em>every</em> device) as follows:
+
+ <descrip>
+
+ <tag>controller snd0</tag>
+
+ <p>Generic sound driver code.
+ Required for all of the following sound cards
+ except <tt>pca</tt>.
+
+ <tag>device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr</tag>
+
+ <p>ProAudioSpectrum digital audio and MIDI.
+
+ <tag>device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr</tag>
+
+ <p>SoundBlaster digital audio.
+
+ <quote><em/Note:/ If your Soundblaster is on a
+ different IRQ (such as 5), change <tt>irq 7</tt>
+ to, for example, <tt>irq 5</tt> and remove the
+ <tt>conflicts</tt> keyword. Also, you must add
+ the line: <tt>options ``SBC_IRQ=5''</tt></quote>
+
+ <tag>device sbxvi0 at isa? drq 5</tag>
+
+ <p>SoundBlaster 16 digital 16-bit audio.
+
+ <quote><em/Note:/ If your SB16 is on a different
+ 16-bit DMA channel (such as 6 or 7), change the
+ <tt>drq 5</tt> keyword appropriately, and then
+ add the line: <tt>options
+ "SB16_DMA=6"</tt></quote>
+
+ <tag>device sbmidi0 at isa? port 0x330</tag>
+
+ <p>SoundBlaster 16 MIDI interface. If you have a
+ SoundBlaster 16, you must include this line, or the
+ kernel will not compile.
+
+ <tag>device gus0 at isa? port 0x220 irq 10 drq 1 vector gusintr</tag>
+
+ <p>Gravis Ultrasound.
+
+ <tag>device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr</tag>
+
+ <p>Microsoft Sound System.
+
+ <tag>device opl0 at isa? port 0x388 conflicts</tag>
+
+ <p>AdLib FM-synthesis audio. Include this line for
+ AdLib, SoundBlaster, and ProAudioSpectrum users, if
+ you want to play MIDI songs with a program such as
+ <tt>playmidi</tt> (in the ports collection).
+
+ <tag>device mpu0 at isa? port 0x330 irq 6 drq 0</tag>
+
+ <p>Roland MPU-401 stand-alone card.
+
+ <tag>device uart0 at isa? port 0x330 irq 5 vector ``m6850intr''</tag>
+
+ <p>Stand-alone 6850 UART for MIDI.
+
+ <tag>device pca0 at isa? port ``IO_TIMER1'' tty</tag>
+
+ <p>Digital audio through PC speaker. This is going to
+ be very poor sound quality and quite CPU-intensive,
+ so you have been warned (but it does not require a
+ sound card)!
+
+ </descrip>
+
+ <quote><em/Note:/ There is some additional
+ documentation in
+ <tt>/usr/src/sys/i386/isa/sound/sound.doc</tt>.
+ Also, if you add any of these devices, be sure to
+ create the sound <ref id="kernelconfig:nodes"
+ name="device nodes">.</quote>
+
+ <sect1><heading>Pseudo-devices</heading>
+
+ <p>Pseudo-device drivers are parts of the kernel that act
+ like device drivers but do not correspond to any actual
+ hardware in the machine. The <ref
+ id="kernelconfig:network" name="network-related">
+ pseudo-devices are in that section, while the remainder
+ are here.
+
+ <descrip>
+
+ <tag>pseudo-device gzip</tag>
+
+ <p><tt>gzip</tt> allows you to run FreeBSD programs
+ that have been compressed with <tt>gzip</tt>. This
+ is really only useful when you need to compress
+ FreeBSD programs to fit on a boot floppy. You will
+ probably never need to compress programs on your
+ hard drive in this fashion, so you'll probably want
+ to comment out this line.
+ <tag>pseudo-device log</tag>
+
+ <p><tt>log</tt> is used for logging of kernel error
+ messages. Mandatory.
+
+
+ <tag>pseudo-device pty <em>number</em><label id="kernelconfig:ptys"></tag>
+
+ <p><tt>pty</tt> is a ``pseudo-terminal'' or simulated
+ login port. It's used by incoming <bf>telnet</bf>
+ and <bf>rlogin</bf> sessions, xterm, and some other
+ applications such as emacs. The <em>number</em>
+ indicates the number of <tt>pty</tt>s to create.
+ If you need more than GENERIC default of 16
+ simultaneous xterm windows and/or remote logins, be
+ sure to increase this number accordingly, up to a
+ maximum of 64.
+
+ <tag>pseudo-device snp <em>number</em></tag>
+
+ <p>Snoop device. This pseudo-device allows one
+ terminal session to watch another using the
+ <tt>watch(8)</tt> command. Note that
+ implementation of this capability has important
+ security and privacy implications. The
+ <em>number</em> after snp is the total number of
+ simultaneous snoop sessions. Optional.
+
+ <tag>pseudo-device vn</tag>
+
+ <p>Vnode driver. Allows a file to be treated as a
+ device after being set up with the
+ <tt>vnconfig(8)</tt> command. This driver can be
+ useful for manipulating floppy disk images and
+ using a file as a swap device (e.g. an MS Windows
+ swap file). Optional.
+
+ </descrip>
+
+ <sect1><heading>Joystick, PC Speaker, Miscellaneous</heading>
+
+ <p>This section describes some miscellaneous hardware
+ devices supported by FreeBSD. Note that none of these
+ lines are included in the GENERIC kernel, you'll have
+ to copy them from this handbook or the LINT kernel
+ (which contains support for <em>every</em> device):
+
+ <descrip>
+
+ <tag>device joy0 at isa? port ``IO_GAME''</tag>
+
+ <p>PC joystick device.
+
+ <tag>pseudo-device speaker</tag>
+
+ <p>Supports IBM BASIC-style noises through the PC
+ speaker. Some fun programs which use this are
+ <tt>/usr/sbin/spkrtest</tt>, which is a shell
+ script that plays some simple songs, and
+ <tt>/usr/games/piano</tt> which lets you play songs
+ using the keyboard as a simple piano (this file
+ only exists if you've installed the <em>games</em>
+ package). Also, the excellent text role-playing
+ game NetHack (in the ports collection) can be
+ configured to use this device to play songs when
+ you play musical instruments in the game.
+
+ </descrip>
+
+ <sect><heading>Making Device Nodes<label id="kernelconfig:nodes"></heading>
+
+ <p>Almost every device in the kernel has a corresponding
+ ``node'' entry in the <tt>/dev</tt> directory. These
+ nodes look like regular files, but are actually special
+ entries into the kernel which programs use to access the
+ device. The shell script <tt>/dev/MAKEDEV</tt>, which is
+ executed when you first install the operating system,
+ creates nearly all of the device nodes supported.
+ However, it does not create <em>all</em> of them, so when
+ you add support for a new device, it pays to make sure
+ that the appropriate entries are in this directory, and
+ if not, add them. Here is a simple example:
+
+ Suppose you add the IDE CD-ROM support to the kernel.
+ The line to add is:
+<tscreen><verb>
+controller wcd0
+</verb></tscreen>
+ This means that you should look for some entries that
+ start with <tt>wcd0</tt> in the <tt>/dev</tt> directory,
+ possibly followed by a letter, such as `c', or preceded
+ by the letter 'r', which means a `raw' device. It turns
+ out that those files are not there, so I must change to
+ the <tt>/dev</tt> directory and type:
+<tscreen><verb>
+# sh MAKEDEV wcd0
+</verb></tscreen>
+ When this script finishes, you will find that there are
+ now <tt>wcd0c</tt> and <tt>rwcd0c</tt> entries in
+ <tt>/dev</tt> so you know that it executed correctly.
+
+ For sound cards, the command:
+<tscreen><verb>
+# sh MAKEDEV snd0
+</verb></tscreen>
+ creates the appropriate entries. Follow this simple
+ procedure for any other non-GENERIC devices which do not
+ have entries.
+
+ <quote><em/Note:/ All SCSI controllers use the same set
+ of <tt>/dev</tt> entries, so you do not need to create
+ these. Also, network cards and SLIP/PPP pseudo-devices
+ do not have entries in <tt>/dev</tt> at all, so you do
+ not have to worry about these either.</quote>
+
+<sect><heading>If Something Goes Wrong<label id="kernelconfig:trouble"></heading>
+
+ <p>There are four categories of trouble that can occur when
+ building a custom kernel. They are:
+
+ <descrip>
+
+ <tag>Config command fails</tag>
+
+ <p>If the <tt>config</tt>
+ command fails when you give it your kernel
+ description, you've probably made a simple error
+ somewhere. Fortunately, <tt>config</tt> will print
+ the line number that it had trouble with, so you can
+ quickly skip to it with <tt>vi</tt>. For example, if
+ you see:
+<tscreen><verb>
+config: line 17: syntax error
+</verb></tscreen>
+ you can skip to the problem in <tt>vi</tt> by typing
+ ``17G'' in command mode. Make sure the keyword is
+ typed correctly, by comparing it to the GENERIC
+ kernel or another reference.
+
+ <tag>Make command fails</tag>
+
+ <p>If the <tt>make</tt>
+ command fails, it usually signals an error in your
+ kernel description, but not severe enough for
+ <tt>config</tt> to catch it. Again, look over your
+ configuration, and if you still cannot resolve the
+ problem, send mail to <tt><htmlurl
+ url="mailto:questions@freebsd.org"
+ name="questions@FreeBSD.ORG"></tt> with your kernel
+ configuration, and it should be diagnosed very
+ quickly.
+
+ <tag>Kernel will not boot<label id="kernelconfig:noboot"></tag>
+
+ <p>If your new kernel
+ does not boot, or fails to recognize your devices,
+ do not panic! Fortunately, BSD has an excellent
+ mechanism for recovering from incompatible kernels.
+ Simply type the name of the kernel you want to boot
+ from (i.e. ``kernel.old'') at the FreeBSD boot
+ prompt instead of pressing return. When
+ reconfiguring a kernel, it is always a good idea to
+ keep a kernel that is known to work on hand.
+
+ After booting with a good kernel you can check over
+ your configuration file and try to build it again.
+ One helpful resource is the
+ <tt>/var/log/messages</tt> file which records, among
+ other things, all of the kernel messages from every
+ successful boot. Also, the <tt>dmesg(8)</tt> command
+ will print the kernel messages from the current boot.
+
+ <quote><em/Note:/ If you are having trouble building
+ a kernel, make sure to keep a GENERIC, or some
+ other kernel that is known to work on hand as a
+ different name that will not get erased on the next
+ build. You cannot rely on <tt>kernel.old</tt>
+ because when installing a new kernel,
+ <tt>kernel.old</tt> is overwritten with the last
+ installed kernel which may be non-functional.
+ Also, as soon as possible, move the working kernel
+ to the proper ``kernel'' location or commands such
+ as <tt>ps(1)</tt> will not work properly. The
+ proper command to ``unlock'' the kernel file that
+ <tt>make</tt> installs (in order to move another
+ kernel back permanently) is:
+<tscreen><verb>
+# chflags noschg /kernel
+</verb></tscreen>
+ And, if you want to ``lock'' your new kernel into place, or any file
+ for that matter, so that it cannot be moved or tampered with:
+<tscreen><verb>
+# chflags schg /kernel
+</verb></tscreen>
+ </quote>
+
+ <tag>Kernel works, but <tt>ps</tt> does not work any more!</tag>
+
+ <p>If you've installed a different version
+ of the kernel from the one that the system utilities
+ have been built with, for example, an experimental
+ ``2.2.0'' kernel on a 2.1.0-RELEASE system, many
+ system-status commands like <tt>ps(1)</tt> and
+ <tt>vmstat(8)</tt> will not work any more. You must
+ recompile the <tt>libkvm</tt> library as well as
+ these utilities. This is one reason it is not
+ normally a good idea to use a different version of
+ the kernel from the rest of the operating system.
+
+ </descrip>
diff --git a/share/doc/handbook/porting.sgml b/share/doc/handbook/porting.sgml
index 88597ed..d100ff1 100644
--- a/share/doc/handbook/porting.sgml
+++ b/share/doc/handbook/porting.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: porting.sgml,v 1.5 1995/09/27 00:46:24 jmz Exp $ -->
+<!-- $Id: porting.sgml,v 1.6 1995/10/03 07:11:51 asami Exp $ -->
<!-- The FreeBSD Documentation Project -->
<sect><heading>Porting applications<label id="porting"></heading>
@@ -120,23 +120,23 @@
<p>The minimal <tt>Makefile</tt> would look something like this:
<tscreen><verb>
-# New ports collection makefile for: oneko
-# Version required: 1.1b
-# Date created: 5 December 1994
-# Whom: asami
-#
-# $Id: porting.sgml,v 1.5 1995/09/27 00:46:24 jmz Exp $
-#
-
-DISTNAME= oneko-1.1b
-CATEGORIES+= games
-MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
-
-MAINTAINER= asami@FreeBSD.ORG
-
-USE_IMAKE= yes
-
-.include <bsd.port.mk>
+ # New ports collection makefile for: oneko
+ # Version required: 1.1b
+ # Date created: 5 December 1994
+ # Whom: asami
+ #
+ # $Id: porting.sgml,v 1.6 1995/10/03 07:11:51 asami Exp $
+ #
+
+ DISTNAME= oneko-1.1b
+ CATEGORIES+= games
+ MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
+
+ MAINTAINER= asami@FreeBSD.ORG
+
+ USE_IMAKE= yes
+
+ .include <bsd.port.mk>
</verb></tscreen>
<p>See if you can figure it out. Don't worry about the contents
@@ -725,11 +725,11 @@ FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2
user can set in <tt>/etc/make.conf</tt> to disable man page
compression. Here's an example:
<tscreen><verb>
-post-install:
- strip ${PREFIX}/bin/xdl
-.if !defined(NOMANCOMPRESS)
- gzip -9nf ${PREFIX}/man/man1/xdl.1
-.endif
+ post-install:
+ strip ${PREFIX}/bin/xdl
+ .if !defined(NOMANCOMPRESS)
+ gzip -9nf ${PREFIX}/man/man1/xdl.1
+ .endif
</verb></tscreen>
<p>Use the <tt>file</tt> command on the installed executable
@@ -874,75 +874,75 @@ lib/libtcl.so.7.3
important information is easy to locate.
<tscreen><verb>
-[the header...just to make it easier for us to identify the ports]
-# New ports collection makefile for: xdvi
-# Version required: 2.2 [things like "1.5alpha" are fine here too]
-# Date created: 26 May 1995
-[this is the person who did the original port to FreeBSD, in particular, the
- person who wrote this Makefile]
-# Whom: Satoshi Asami <asami@FreeBSD.ORG>
-#
-# $Id: porting.sgml,v 1.5 1995/09/27 00:46:24 jmz Exp $
-[ ^^^^ don't worry about this...it will be automatically filled in by CVS when
- it is committed to our repository]
-#
-
-[section to describe the package itself and main ftp site - DISTNAME
- is always first, followed by PKGNAME (if necessary), CATEGORIES,
- KEYWORDs (if necessary) and then MASTER_SITES, and optionally
- EXTRACT_SUFX or DISTFILES]
-DISTNAME= xdvi
-PKGNAME= xdvi-pl18
-CATEGORIES+= printing
-[don't forget the trailing slash ("/")!]
-MASTER_SITES= ftp://crl.dec.com/pub/X11/contrib/applications/
-[set this if the source is not in the standard ".tar.gz" form]
-EXTRACT_SUFX= .tar.Z
-
-[section for distributed patches -- can be empty]
-PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/
-PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz
-
-[maintainer; *mandatory*! This is the person (preferably with commit
- privileges) who a user can contact for questions and bug reports - this
- person should be the porter or someone who can forward questions to the
- original porter reasonably promptly. If you really don't want to have your
- address here, set it to "ports@FreeBSD.ORG".]
-MAINTAINER= asami@FreeBSD.ORG
-
-[dependencies -- can be empty]
-RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript
-LIB_DEPENDS= Xpm\\.4\\.:${PORTSDIR}/graphics/xpm
-
-[this section is for other standard bsd.port.mk variables that don't belong to
- any of the above]
-[If it extracts to a directory other than ${DISTNAME}...]
-WRKSRC= ${WRKDIR}/xdvi-new
-[If it asks questions during configure, build, install...]
-IS_INTERACTIVE= yes
-[If it requires "configure" in the distributed source directory to be run...]
-HAS_CONFIGURE= yes
-[If it requires GNU make, not /usr/bin/make, to build...]
-USE_GMAKE= yes
-[If it is an X application and requires "xmkmf -a" to be run...]
-USE_IMAKE= yes
-[et cetera.]
-
-[non-standard variables to be used in the rules below]
-MY_FAVORITE_RESPONSE= "yeah, right"
-
-[then the special rules, in the order they are called]
-pre-fetch:
- i go fetch something, yeah
-
-post-patch:
- i need to do something after patch, great
-
-pre-install:
- and then some more stuff before installing, wow
-
-[and then the epilogue]
-.include <bsd.port.mk>
+ [the header...just to make it easier for us to identify the ports]
+ # New ports collection makefile for: xdvi
+ # Version required: 2.2 [things like "1.5alpha" are fine here too]
+ # Date created: 26 May 1995
+ [this is the person who did the original port to FreeBSD, in particular, the
+ person who wrote this Makefile]
+ # Whom: Satoshi Asami <asami@FreeBSD.ORG>
+ #
+ # $Id: porting.sgml,v 1.6 1995/10/03 07:11:51 asami Exp $
+ [ ^^^^ don't worry about this...it will be automatically filled in by CVS when
+ it is committed to our repository]
+ #
+
+ [section to describe the package itself and main ftp site - DISTNAME
+ is always first, followed by PKGNAME (if necessary), CATEGORIES,
+ KEYWORDs (if necessary) and then MASTER_SITES, and optionally
+ EXTRACT_SUFX or DISTFILES]
+ DISTNAME= xdvi
+ PKGNAME= xdvi-pl18
+ CATEGORIES+= printing
+ [don't forget the trailing slash ("/")!]
+ MASTER_SITES= ftp://crl.dec.com/pub/X11/contrib/applications/
+ [set this if the source is not in the standard ".tar.gz" form]
+ EXTRACT_SUFX= .tar.Z
+
+ [section for distributed patches -- can be empty]
+ PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/
+ PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz
+
+ [maintainer; *mandatory*! This is the person (preferably with commit
+ privileges) who a user can contact for questions and bug reports - this
+ person should be the porter or someone who can forward questions to the
+ original porter reasonably promptly. If you really don't want to have your
+ address here, set it to "ports@FreeBSD.ORG".]
+ MAINTAINER= asami@FreeBSD.ORG
+
+ [dependencies -- can be empty]
+ RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript
+ LIB_DEPENDS= Xpm\\.4\\.:${PORTSDIR}/graphics/xpm
+
+ [this section is for other standard bsd.port.mk variables that don't belong to
+ any of the above]
+ [If it extracts to a directory other than ${DISTNAME}...]
+ WRKSRC= ${WRKDIR}/xdvi-new
+ [If it asks questions during configure, build, install...]
+ IS_INTERACTIVE= yes
+ [If it requires "configure" in the distributed source directory to be run...]
+ HAS_CONFIGURE= yes
+ [If it requires GNU make, not /usr/bin/make, to build...]
+ USE_GMAKE= yes
+ [If it is an X application and requires "xmkmf -a" to be run...]
+ USE_IMAKE= yes
+ [et cetera.]
+
+ [non-standard variables to be used in the rules below]
+ MY_FAVORITE_RESPONSE= "yeah, right"
+
+ [then the special rules, in the order they are called]
+ pre-fetch:
+ i go fetch something, yeah
+
+ post-patch:
+ i need to do something after patch, great
+
+ pre-install:
+ and then some more stuff before installing, wow
+
+ [and then the epilogue]
+ .include <bsd.port.mk>
</verb></tscreen>
<sect1>
diff --git a/share/doc/handbook/relnotes.sgml b/share/doc/handbook/relnotes.sgml
index d85f299..f7a581f 100644
--- a/share/doc/handbook/relnotes.sgml
+++ b/share/doc/handbook/relnotes.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: relnotes.sgml,v 1.3 1995/06/30 17:37:47 jfieber Exp $ -->
+<!-- $Id: relnotes.sgml,v 1.4 1995/08/29 01:42:43 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
@@ -176,8 +176,8 @@
<tt>i386/isa/diskslice_machdep.c</tt> <tt>i386/isa/wd.c</tt>
<tt>scsi/sd.c</tt> <tt>dev/vn/vn.c</tt>
- <tag>Support for Ontrack Disk Manager Version
- 6.0</tag> Support has been added for disks
+ <tag>Support for Ontrack Disk Manager Version 6.0</tag>
+ Support has been added for disks
which use Ontrack Disk Manager. The fdisk
program does <em>not</em> know about it
however, so make all changes using the install
@@ -203,8 +203,8 @@
<p><descrip>
- <tag>Matsushita/Panasonic (Creative) CD-ROM
- driver</tag> The Matsushita/Panasonic CR-562 and
+ <tag>Matsushita/Panasonic (Creative) CD-ROM driver</tag>
+ The Matsushita/Panasonic CR-562 and
CR-563 drives are now supported when connected to
a Sound Blaster or 100% compatible host adapter.
Up to four host adapters are supported for a
@@ -236,8 +236,8 @@
Sources involved: <tt>isa/aic7770.c</tt> <tt>pci/aic7870.c</tt>
<tt>i386/scsi/*</tt> <tt>sys/dev/aic7xxx/*</tt>
- <tag>NCR5380/NCR53400 SCSI (ProAudio Spectrum)
- driver</tag> Owner: core
+ <tag>NCR5380/NCR53400 SCSI (ProAudio Spectrum) driver</tag>
+ Owner: core
Submitted by: Serge Vakulenko (vak@cronyx.ru)
@@ -255,8 +255,8 @@
<p><descrip>
- <tag>SDL Communications Riscom/8 Serial Board
- Driver</tag> Owner: Andrey Chernov
+ <tag>SDL Communications Riscom/8 Serial Board Driver</tag>
+ Owner: Andrey Chernov
(ache@FreeBSD.org)
Sources involved: <tt>isa/rc.c</tt> <tt>isa/rcreg.h</tt>
@@ -375,7 +375,7 @@
Sources involved: <tt>isa/joy.c</tt>
- <tag>National Instruments "LabPC" driver</tag> Owner:
+ <tag>National Instruments ``LabPC'' driver</tag> Owner:
Peter Dufault (dufault@hda.com)
Sources involved: <tt>isa/labpc.c</tt>
@@ -398,8 +398,8 @@
Sources involved: <tt>isa/sound/vat_audio.c</tt>
<tt>isa/sound/vat_audioio.h</tt>
- <tag>National Instruments AT-GPIB and AT-GPIB/TNT
- GPIB driver</tag> Owner: core
+ <tag>National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver</tag>
+ Owner: core
Submitted by: Fred Cawthorne
(fcawth@delphi.umd.edu)
diff --git a/share/doc/handbook/routing.sgml b/share/doc/handbook/routing.sgml
new file mode 100644
index 0000000..5441cce
--- /dev/null
+++ b/share/doc/handbook/routing.sgml
@@ -0,0 +1,279 @@
+<!-- $Id$ -->
+<!-- The FreeBSD Documentation Project -->
+<!-- <!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> -->
+
+ <sect><heading>Gateways and routes<label id="routing"></heading>
+
+ <p><em>Contributed by &a.gryphon;.<newline>6 October 1995.</em>
+
+ For one machine to be able to find another, there must be a
+ mechanism in place to describe how to get from one to the
+ other. This is called Routing. A ``route'' is a defined
+ pair of addresses: a <bf>destination</bf> and a
+ <bf>gateway</bf>. The pair indicates that if you are
+ trying to get to this <em>destination</em>, send along
+ through this <em>gateway</em>. There are three types of
+ destinations: individual hosts, subnets, and ``default''. The
+ ``default route'' is used if none of the other routes
+ apply. We will talk a little bit more about default routes
+ later on. There are also three types of gateways:
+ individual hosts, interfaces (also called ``links''), and
+ ethernet hardware addresses.
+
+ <sect1><heading>An example</heading>
+
+ <p>To illustrate different aspects of routing, we will use
+ the following example which is the output of the command
+ <tt>netstat -r</tt>:
+
+<tscreen><verb>
+Destination Gateway Flags Refs Use Netif Expire
+
+default outside-gw UGSc 37 418 ppp0
+localhost localhost UH 0 181 lo0
+test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
+10.20.30.255 link#1 UHLW 1 2421
+foobar.com link#1 UC 0 0
+host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
+host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
+host2.foobar.com link#1 UC 0 0
+224 link#1 UC 0 0
+</verb></tscreen>
+
+ The first two lines specify the default route (which we
+ will cover in the next section) and the <tt>localhost</tt> route.
+
+ The interface (<tt>Netif</tt> column) that it specifies to use
+ for <tt>localhost</tt> is <tt>lo0</tt>, also known as the
+ loopback device. This says to keep all traffic for this
+ destination internal, rather than sending it out over the
+ LAN, since it will only end up back where it started
+ anyway.
+
+ The next thing that stands out are the
+ ``<tt>0:e0:...</tt>'' addresses. These are ethernet
+ hardware addresses. FreeBSD will automatically identify any
+ hosts (<tt>test0</tt> in the example) on the local ethernet and
+ add a route for that host, directly to it over the ethernet
+ interface, <tt>ed0</tt>. There is also a timeout
+ (<tt>Expire</tt> column) associated with this type of route,
+ which is used if we fail to hear from the host in a
+ specific amount of time. In this case the route will be
+ automatically deleted. These hosts are identified using a
+ mechanism known as RIP (Routing Information Protocol),
+ which figures out routes to local hosts based upon a
+ shortest path determination.
+
+ FreeBSD will also add subnet routes for the local subnet
+ (<tt>10.20.30.255</tt> is the broadcast address for the subnet
+ <tt>10.20.30</tt>, and <tt>foobar.com</tt> is the domain name
+ associated with that subnet). The designation <tt>link&num;1</tt>
+ refers to the first ethernet card in the machine. You'll
+ notice no additional interface is specified for those.
+
+ Both of these groups (local network hosts and local
+ subnets) have their routes automatically configured by a
+ daemon called <tt>routed</tt>. If this is not run, then only
+ routes which are statically defined (ie. entered
+ explicitly) will exist.
+
+ The <tt>host1</tt> line refers to our host, which it knows by
+ ethernet address. Since we are the sending host, FreeBSD
+ knows to use the loopback interface (<tt>lo0</tt>) rather than
+ sending it out over the ethernet interface.
+
+ The two <tt>host2</tt> lines are an example of what happens
+ when we use an ifconfig alias (see the section of ethernet
+ for reasons why we would do this). The <tt>=&gt</tt>
+ symbol after the <tt>lo0</tt> interface says that not only are
+ we using the loopback (since this is address also refers to
+ the local host), but specifically it is an alias. Such
+ routes only show up on the host that supports the alias;
+ all other hosts on the local network will simply have a
+ <tt>link&num;1</tt> line for such.
+
+ The final line (destination subnet <tt>224</tt>) deals with
+ MultiCasting, which will be covered in a another section.
+
+ The other column that we should talk about are the
+ <tt>Flags</tt>. Each route has different attributes that are
+ described in the column. Below is a short table of some of
+ these flags and their meanings:
+
+ <descrip>
+
+ <tag/U/ <bf/Up:/ The route is active.
+
+ <tag/H/ <bf/Host:/ The route destination is a single host.
+
+ <tag/G/ <bf/Gateway:/ Send anything for this destination
+ on to this remote system, which will figure out from
+ there where to send it.
+
+ <tag/S/ <bf/Static:/ This route was configured manually,
+ not automatically generated by the system.
+
+ <tag/C/ <bf/Clone:/ Generates a new route based upon this
+ route for machines we connect to. This type of route is
+ normally used for local networks.
+
+ <tag/W/ <bf/WasCloned/ Indicated a route that was
+ auto-configured based upon a local area network (Clone)
+ route.
+
+ <tag/L/ <bf/Link:/ Route involves references to ethernet
+ hardware.
+
+ </descrip>
+
+
+ <sect1><heading>Default routes</heading>
+
+ <p>When the local system needs to make a connection to
+ remote host, it checks the routing table to determine if
+ a known path exists. If the remote host falls into a
+ subnet that we know how to reach (Cloned routes), then
+ the system checks to see if it can connect along that
+ interface.
+
+ If all known paths fail, the system has one last option:
+ the <bf>default</bf> route. This route is a special type
+ of gateway route (usually the only one present in the
+ system), and is always marked with a ``<tt>c</tt>'' in
+ the flags field. For hosts on a local area network, this
+ gateway is set to whatever machine has a direct
+ connection to the outside world (whether via PPP link, or
+ your hardware device attached to a dedicated data line).
+
+ If you are configuring the default route for a machine
+ which itself is functioning as the gateway to the outside
+ world, then the default route will be the gateway machine
+ at your Internet Service Provider's (ISP) site.
+
+ Let's look at an example of default routes. This is a
+ common configuration:
+<tscreen><verb>
+[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
+</verb></tscreen>
+
+ The hosts <tt>Local1</tt> and <tt>Local2</tt> are at your
+ site, with the formed being your PPP connection to your
+ ISP's Terminal Server. Your ISP has a local network at
+ their site, which has, among other things, the server
+ where you connect and a hardware device (T1-GW) attached
+ to the ISP's internet feed.
+
+ The default routes for each of your machines will be:
+
+<tscreen><verb>
+host default gateway interface
+---- --------------- ---------
+Local2 Local1 ethernet
+Local1 T1-GW PPP
+</verb></tscreen>
+
+ A common question is ``Why (or how) would we set the
+ T1-GW to be the default gateway for Local1, rather than
+ the ISP server it is connected to?''.
+
+ Remember, since the PPP interface is using an address on
+ the ISP's local network for your side of the connection,
+ routes for any other machines on the ISP's local network
+ will be automatically generated. Hence, you will already
+ know how to reach the T1-GW machine, so there is no need
+ for the intermediate step of sending traffic to the ISP
+ server.
+
+ As a final note, it is common to use the address ``<tt>...1</tt>''
+ as the gateway address for your local network. So (using
+ the same example), if your local class-C address space
+ was <tt>10.20.30</tt> and your ISP was using <tt>10.9.9</tt> then the
+ default routes would be:
+
+<tscreen><verb>
+Local2 (10.20.30.2) --> Local1 (10.20.30.1)
+Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1)
+</verb></tscreen>
+
+ <sect1><heading>Dual homed hosts</heading>
+
+ <p>There is one other type of configuration that we should
+ cover, and that is a host that sits on two different
+ networks. Technically, any machine functioning as a
+ gateway (in the example above, using a PPP connection)
+ counts as a dual-homed host. But the term is really only
+ used to refer to a machine that sits on two local-area
+ networks.
+
+ In one case, the machine as two ethernet cards, each
+ having an address on the seperate subnets. Alternately,
+ the machine may only have one ethernet card, and be using
+ ifconfig aliasing. The former is used if two physically
+ separate ethernet networks are in use, the latter if
+ there is one physical network segment, but two logically
+ seperate subnets.
+
+ Either way, routing tables are set up so that each subnet
+ knows that this machine is the defined gateway (inbound
+ route) to the other subnet. This configuration, with the
+ machine acting as a Bridge between the two subnets, is
+ often used when we need to implement packet filtering or
+ firewall security in either or both directions.
+
+ <sect1><heading>Routing propogation</heading>
+
+ <p>We have already talked about how we define our routes to
+ the outside world, but not about how the outside world
+ finds us.
+
+ We already know that routing tables can be set up so that
+ all traffic for a particular address space (in our
+ examples, a class-C subnet) can be sent to a particular
+ host on that network, which will forward the packets
+ inbound.
+
+ When you get an address space assigned to your site, your
+ service provider will set up their routing tables so that
+ all traffic for your subnet will be sent down your PPP
+ link to your site. But how do sites across the country
+ know to send to your ISP?
+
+ There is a system (much like the distributed DNS
+ information) that keeps track of all assigned
+ address-spaces, and defines their point of connection to
+ the Internet Backbone. The ``Backbone'' are the main
+ trunk lines that carry internet traffic across the
+ country, and around the world. Each backbone machine has
+ a copy of a master set of tables, which direct traffic
+ for a particular network to a specific backbone carrier,
+ and from there down the chain of service providers until
+ it reaches your network.
+
+ It is the task of your service provider to advertise to
+ the backbone sites that they are the point of connection
+ (and thus the path inward) for your site. This is known
+ as route propogation.
+
+<!--
+ <sect1><heading>Multicast Routing</heading>
+-->
+
+ <sect1><heading>Troubleshooting</heading>
+
+ <p>Sometimes, there is a problem with routing propogation,
+ and some sites are unable to connect to you. Perhaps the
+ most useful command for trying to figure out where a
+ routing is breaking down is the <tt>traceroute(8)</tt>
+ command. It is equally useful if you cannot seem to make
+ a connection to a remote machine (ie. <tt>ping(8)</tt>
+ fails).
+
+ The <tt>traceroute(8)</tt> command is run with the name
+ of the remote host you are trying to connect to. It will
+ show the gateway hosts along the path of the attempt,
+ eventually either reaching the target host, or
+ terminating because of a lack of connection.
+
+ For more information, see the manual page for
+ <tt>traceroute(8)</tt>.
+
diff --git a/share/doc/handbook/scsi.sgml b/share/doc/handbook/scsi.sgml
index 9542f10..2bdbf9a 100644
--- a/share/doc/handbook/scsi.sgml
+++ b/share/doc/handbook/scsi.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: scsi.sgml,v 1.4 1995/09/05 21:07:15 jfieber Exp $ -->
+<!-- $Id: scsi.sgml,v 1.5 1995/09/27 00:46:28 jmz Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
@@ -15,7 +15,7 @@
-->
<sect><heading>SCSI<label id="scsi"></heading>
- <p><em>&copy; 1995, &a.wilko;.<newline>3 September 1995.</em>
+ <p><em>Copyright &copy; 1995, &a.wilko;.<newline>3 September 1995.</em>
SCSI is an acronym for Small Computer Systems Interface. It is an
ANSI standard that has become one of the leading I/O buses in the
@@ -163,7 +163,7 @@
0 Volts (indeed, TTL levels) and are relative to a COMMON
ground reference. A singled ended 8 bit SCSI bus has
approximately 25 ground lines, who are all tied to a single
- 'rail' on all devices. A standard single ended bus has a
+ `rail' on all devices. A standard single ended bus has a
maximum length of 6 meters. If the same bus is used with
fast-SCSI devices, the maximum length allowed drops to 3
meters. Fast-SCSI means that instead of 5Mbytes/sec the bus
diff --git a/share/doc/handbook/sections.sgml b/share/doc/handbook/sections.sgml
index 1312598..33011b3 100644
--- a/share/doc/handbook/sections.sgml
+++ b/share/doc/handbook/sections.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: sections.sgml,v 1.3 1995/09/25 18:23:04 wollman Exp $ -->
+<!-- $Id: sections.sgml,v 1.4 1995/10/01 04:43:15 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Entities containing all the pieces of the handbook are -->
@@ -32,6 +32,7 @@
<!ENTITY ppp SYSTEM "ppp.sgml">
<!ENTITY printing SYSTEM "printing.sgml">
<!ENTITY relnotes SYSTEM "relnotes.sgml">
+<!ENTITY routing SYSTEM "routing.sgml">
<!ENTITY scsi SYSTEM "scsi.sgml">
<!ENTITY skey SYSTEM "skey.sgml">
<!ENTITY slipc SYSTEM "slipc.sgml">
diff --git a/share/doc/handbook/skey.sgml b/share/doc/handbook/skey.sgml
index 4f8149e..865e2ca 100644
--- a/share/doc/handbook/skey.sgml
+++ b/share/doc/handbook/skey.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: skey.sgml,v 1.1 1995/09/25 18:23:05 wollman Exp $ -->
+<!-- $Id: skey.sgml,v 1.2 1995/09/26 19:12:28 wollman Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!--
Copyright 1995 Massachusetts Institute of Technology
@@ -190,7 +190,7 @@ s/key 92 hi52030
Password:
</verb></tscreen>
->Note that, before prompting for a password, the login program
+Note that, before prompting for a password, the login program
prints out the iteration number and seed which you will need in order
to generate the appropriate key. You will also find a useful feature
(not shown here): if you press return at the password prompt, the
diff --git a/share/doc/handbook/slipc.sgml b/share/doc/handbook/slipc.sgml
index 865a43c..0b777d9 100644
--- a/share/doc/handbook/slipc.sgml
+++ b/share/doc/handbook/slipc.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: slipc.sgml,v 1.2 1995/06/30 17:37:49 jfieber Exp $ -->
+<!-- $Id: slipc.sgml,v 1.3 1995/08/09 03:43:48 jfieber Exp $ -->
<!-- The FreeBSD Documentation Project -->
<sect><heading>Setting up a SLIP client<label id="slipc"></heading>
@@ -17,10 +17,10 @@ mileage may vary.
-->
First, determine which serial port your modem is connected to. I have
-a symbolic link /dev/modem -> cuaa1, and only use the modem name in my
+a symbolic link <tt>/dev/modem -&gt; cuaa1</tt>, and only use the modem name in my
configuration files. It can become quite cumbersome when you need to
-fix a bunch of files in /etc and .kermrc's all over the system! (Note
-that /dev/cuaa0 is COM1, cuaa1 is COM2, etc.)
+fix a bunch of files in <tt>/etc</tt> and <tt>.kermrc</tt>'s all over the system! (Note
+that <tt>/dev/cuaa0</tt> is COM1, <tt>cuaa1</tt> is COM2, etc.)
Make sure you have
<verb>
diff --git a/share/doc/handbook/submitters.sgml b/share/doc/handbook/submitters.sgml
index babbea8..8123f0f 100644
--- a/share/doc/handbook/submitters.sgml
+++ b/share/doc/handbook/submitters.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: submitters.sgml,v 1.6 1995/08/12 21:33:24 jkh Exp $ -->
+<!-- $Id: submitters.sgml,v 1.7 1995/09/27 00:46:29 jmz Exp $ -->
<!-- The FreeBSD Documentation Project -->
<chapt><heading>Contributing to FreeBSD<label id="submitters"></heading>
@@ -82,11 +82,11 @@ are each, in their own way, quite significant to the project.
FreeBSD maintainers. This is done with the <tt>diff(1)</tt> command,
with the `context diff' form being preferred. For example:
<tscreen><verb>
-diff -c &lt;oldfile&gt &lt;newfile&gt;
+diff -c oldfile newfile
</verb></tscreen>
or
<tscreen><verb>
-diff -c -r &lt;olddir&gt &lt;newdir&gt;
+diff -c -r olddir newdir
</verb></tscreen>
would generate such a set of context diffs for the given source file
or directory hierarchy. See the man page for <tt>diff(1)</tt> for more
@@ -193,7 +193,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- $Id: submitters.sgml,v 1.6 1995/08/12 21:33:24 jkh Exp $
+ $Id: submitters.sgml,v 1.7 1995/09/27 00:46:29 jmz Exp $
</verb></tscreen>
For your convenience, a copy of this text can be found in
<tt>/usr/share/examples/etc/bsd-style-copyright</tt>.
OpenPOWER on IntegriCloud