From nobody@FreeBSD.org  Thu Aug 19 19:34:39 2004
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 2E27016A4CE
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 19 Aug 2004 19:34:39 +0000 (GMT)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 275A443D4C
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 19 Aug 2004 19:34:39 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.12.11/8.12.11) with ESMTP id i7JJYcHq045624
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 19 Aug 2004 19:34:38 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.12.11/8.12.11/Submit) id i7JJYcFK045623;
	Thu, 19 Aug 2004 19:34:38 GMT
	(envelope-from nobody)
Message-Id: <200408191934.i7JJYcFK045623@www.freebsd.org>
Date: Thu, 19 Aug 2004 19:34:38 GMT
From: Joel Dahl <joel@automatvapen.se>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [PATCH] Update handbook to match 5.3R (8.4 - The Configuration File)
X-Send-Pr-Version: www-2.3

>Number:         70674
>Category:       docs
>Synopsis:       [PATCH] Update handbook to match 5.3R (8.4 - The Configuration File)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    ceri
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 19 19:40:28 GMT 2004
>Closed-Date:    Fri Sep 10 19:13:54 GMT 2004
>Last-Modified:  Fri Sep 10 19:13:54 GMT 2004
>Originator:     Joel Dahl
>Release:        5.2.1
>Organization:
>Environment:
FreeBSD dude.automatvapen.se 5.2.1-RELEASE-p9 FreeBSD 5.2.1-RELEASE-p9 #1: Sat Jul 10 16:52:28 CEST 2004     root@dude.automatvapen.se:/usr/obj/usr/src/sys/WORKSTATION  i386
>Description:
I have updated chapter "8.4 - The Configuration File". Now it's up-to-date with the 5.X kernel configuration file. The original document was very out of date, so it took me quite a while to fix it. The patch should be applied to handbook/kernelconfig/chapter.sgml.

There are probably errors, and I may have forgotten some things, so feedback on this patch would certainly be very nice. All comments are welcome. I think that we can improve this patch a bit, especially by making some of the descriptions of the new options more informative, but I need some views on this. Good or Bad? Wasted time perhaps?

Note that there are for sure other things in chapter 8 that needs updating, which this patch does not cover.
>How-To-Repeat:
      
>Fix:
http://www.automatvapen.se/freebsd/patches/kernconf.diff
>Release-Note:
>Audit-Trail:

From: Joel Dahl <joel@automatvapen.se>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: docs/70674: [PATCH] Update handbook to match 5.3R (8.4 - The
	Configuration File)
Date: Fri, 20 Aug 2004 18:43:58 +0200

 --=-JG2MxxHv2V9gFmzE28+T
 Content-Type: text/plain
 Content-Transfer-Encoding: 7bit
 
 Attach patch since URL's makes PR's difficult to work with.
 
 -- 
 Joel
 
 --=-JG2MxxHv2V9gFmzE28+T
 Content-Disposition: attachment; filename=kernconf.diff
 Content-Type: text/x-patch; name=kernconf.diff; charset=iso-8859-1
 Content-Transfer-Encoding: 7bit
 
 --- chapter.sgml	Thu Aug 19 16:05:42 2004
 +++ new.chapter.sgml	Thu Aug 19 21:16:12 2004
 @@ -426,19 +426,18 @@
        some related keywords have been grouped together in a single section
        (such as Networking) even though they are actually scattered
        throughout the <filename>GENERIC</filename> file.  <anchor
 -      id="kernelconfig-options"> An exhaustive list of options and more
 -      detailed explanations of the device lines is present in the
 -      <filename>LINT</filename> configuration file, located in the same
 -      directory as <filename>GENERIC</filename>.  If you are in doubt as
 -      to the purpose or necessity of a line, check first in
 -      <filename>LINT</filename>.</para>
 -
 -    <note><para>In &os; 5.X and above the <filename>LINT</filename> is
 -      non-existent.  See the <filename>NOTES</filename> file for
 -      architecture dependent options.  Some options, mainly
 -      architecture independent ones, are stored in the
 -      <filename>/usr/src/sys/conf/NOTES</filename> file.  It is
 -      advisable to review the options in here also.</para></note>
 +      id="kernelconfig-options"> An exhaustive list of architecure
 +      dependent options and more detailed explanations of the device lines
 +      is present in the <filename>NOTES</filename> configuration file,
 +      located in the same directory as <filename>GENERIC</filename>. If you
 +      are in doubt as to the purpose or necessity of a line, check first in
 +      <filename>NOTES</filename>. Architecure independent options are
 +      stored in <filename>/usr/src/sys/conf/NOTES</filename>.</para>
 +
 +    <note><para>In &os; 4.X and earlier <filename>NOTES</filename> is
 +      non-existent. Instead, see the <filename>LINT</filename> file for
 +      detailed explanations of options in <filename>GENERIC</filename>.
 +      </para></note>
  
      <indexterm>
        <primary>kernel</primary>
 @@ -450,27 +449,27 @@
        clarity.  This example should match your copy in
        <filename>/usr/src/sys/i386/conf/GENERIC</filename> fairly
        closely.  For details of all the possible kernel options, see
 -      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
  
      <programlisting>#
 -# GENERIC -- Generic kernel configuration file for &os;/i386
 +# GENERIC -- Generic kernel configuration file for FreeBSD/i386
  #
  # For more information on this file, please read the handbook section on
  # Kernel Configuration Files:
  #
 -#    http://www.&os;.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
 +#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
  #
  # The handbook is also available locally in /usr/share/doc/handbook
  # if you've installed the doc distribution, otherwise always see the
 -# &os; World Wide Web server (http://www.FreeBSD.org/) for the
 +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
  # latest information.
  #
  # An exhaustive list of options and more detailed explanations of the
 -# device lines is also present in the ../../conf/NOTES and NOTES files. 
 -# If you are in doubt as to the purpose or necessity of a line, check first 
 +# device lines is also present in the ../../conf/NOTES and NOTES files.
 +# If you are in doubt as to the purpose or necessity of a line, check first
  # in NOTES.
  #
 -# &dollar;FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $</programlisting>
 +# $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $</programlisting>
  
      <para>The following are the mandatory keywords required in
        <emphasis>every</emphasis> kernel you build:</para>
 @@ -606,14 +605,14 @@
      </note>
      
      <programlisting># Floating point support - do not disable.
 -device          npx0     at nexus? port IO_NPX irq 13</programlisting>
 +device          npx0</programlisting>
      
      <para><literal>npx0</literal> is the interface to the floating point
        math unit in &os;, which is either the hardware co-processor or
        the software math emulator.  This is <emphasis>not</emphasis>
        optional.</para>
  
 -    <programlisting># Pseudo devices - the number indicates how many units to allocate.
 +    <programlisting># Pseudo devices
  device   loop          # Network loopback</programlisting>
  
      <para>This is the generic loopback device for TCP/IP.  If you telnet
 @@ -654,26 +653,10 @@
        you are using the <quote>traditional</quote> way for building your kernels (See the <xref linkend="kernelconfig-building">
        for more informations.).</para>
  
 -    <programlisting>options          MATH_EMULATE      #Support for x87 emulation</programlisting>
 -
 -    <para>This line allows the kernel to simulate a math co-processor if
 -      your computer does not have one (386 or 486SX).  If you have a
 -      486DX, or a 386 or 486SX (with a separate 387 or 487 chip), or
 -      higher (&pentium;, &pentium;&nbsp;II, etc.), you can comment this line
 -      out.</para>
 +    <programlisting>options          SCHED_ULE         # ULE scheduler</programlisting>
  
 -    <note>
 -      <para>The normal math co-processor emulation routines that come with
 -	&os; are <emphasis>not</emphasis> very accurate.  If you do not
 -	have a math co-processor, and you need the best accuracy, it is
 -	recommended that you change this option to
 -	<literal>GPL_MATH_EMULATE</literal> to use the GNU math support,
 -	which is not included by default for licensing reasons.</para>
 -
 -      <para>In &os; 5.X, math emulation is disabled by default,
 -      as older CPUs that do not have native floating point math support
 -      are far less common, and in many cases not supported by the
 -      <filename>GENERIC</filename> kernel without other additional options.</para></note>
 +    <para>The new scheduler for &os; that has been designed for SMP, but
 +      will work just fine on UP systems too.</para>
  
      <programlisting>options          INET          #InterNETworking</programlisting>
  
 @@ -686,15 +669,11 @@
  
      <para>This enables the IPv6 communication protocols.</para>
  
 -    <programlisting>options          FFS          #Berkeley Fast Filesystem
 -options          FFS_ROOT     #FFS usable as root device [keep this!]</programlisting>
 +    <programlisting>options          FFS          #Berkeley Fast Filesystem</programlisting>
  
      <para>This is the basic hard drive Filesystem.  Leave it in if you
        boot from the hard disk.</para>
  
 -    <note><para>In &os; 5.X, <literal>FFS_ROOT</literal> is no longer
 -      required.</para></note>
 -
      <programlisting>options          UFS_ACL      #Support for access control lists</programlisting>
  
      <para>This option, present only in &os;&nbsp;5.X, enables kernel support
 @@ -726,29 +705,10 @@
        filesystems) or &man.newfs.8; (for new filesystems)
        commands.</para>
  
 -    <programlisting>options          MFS          #Memory Filesystem
 -options          MD_ROOT      #MD is a potential root device</programlisting>
 +    <programlisting>options          MD_ROOT      #MD is a potential root device</programlisting>
  
 -    <para>This is the memory-mapped Filesystem.  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 <filename>/tmp</filename>
 -      directory, since many programs store temporary data here.  To mount
 -      an MFS RAM disk on <filename>/tmp</filename>, add the following line
 -      to <filename>/etc/fstab</filename>:</para>
 -
 -    <informalexample>
 -      <programlisting>/dev/ad1s2b	/tmp mfs rw 0 0</programlisting>
 -    </informalexample>
 -
 -    <para>Now you simply need to either reboot, or run the command
 -      <command>mount /tmp</command>.</para>
 -
 -    <note><para>In &os; 5.X, &man.md.4;-backed UFS file systems are
 -      used for memory file systems rather than MFS.  Information on
 -      configuring memory-backed file systems may be found in the manual pages
 -      for &man.mdconfig.8; and &man.mdmfs.8;, and in <xref linkend="disks-virtual">.  As a result, the
 -      <literal>MFS</literal> option is no longer supported.</para></note>
 +    <para>This is option enables support for a memory backed virtual disk
 +      as root device.</para>
  
      <indexterm>
        <primary>kernel options</primary>
 @@ -758,8 +718,9 @@
        <primary>kernel options</primary>
        <secondary>NFS_ROOT</secondary>
      </indexterm>
 -    <programlisting>options          NFS          #Network Filesystem
 -options          NFS_ROOT     #NFS usable as root device, NFS required</programlisting>
 +    <programlisting>options          NFSCLIENT    # Network Filesystem Client
 +options          NFSSERVER    # Network Filesystem Server
 +options          NFS_ROOT     # NFS usable as /, requires NFSCLIENT</programlisting>
  
      <para>The network Filesystem.  Unless you plan to mount partitions
        from a &unix; file server over TCP/IP, you can comment these
 @@ -780,8 +741,7 @@
        unmount them (and does not require <literal>MSDOSFS</literal> at
        all).</para>
  
 -    <programlisting>options          CD9660       #ISO 9660 Filesystem
 -options          CD9660_ROOT  #CD-ROM usable as root, CD9660 required</programlisting>
 +    <programlisting>options          CD9660       #ISO 9660 Filesystem</programlisting>
  
      <para>The ISO 9660 Filesystem for CDROMs.  Comment it out if you do
        not have a CDROM drive or only mount data CDs occasionally (since it
 @@ -793,10 +753,10 @@
      <para>The process filesystem.  This is a <quote>pretend</quote>
        filesystem mounted on <filename>/proc</filename> which allows
        programs like &man.ps.1; to give you more information on what
 -      processes are running.  In &os; 5.X, use of <literal>PROCFS</literal>
 -      is not required under most circumstances, as most
 -      debugging and monitoring tools have been adapted to run without
 -      <literal>PROCFS</literal>.  In addition, 5.X-CURRENT kernels
 +      processes are running.  In &os; 5.X and above, use of
 +      <literal>PROCFS</literal> is not required under most circumstances,
 +      as most debugging and monitoring tools have been adapted to run
 +      without <literal>PROCFS</literal>.  In addition, 6.X-CURRENT kernels
        making use of <literal>PROCFS</literal> must now also include
        support for <literal>PSEUDOFS</literal>:</para>
  
 @@ -829,32 +789,10 @@
        you do this, and &os; has trouble recognizing your SCSI devices,
        you will have to raise it back up.</para>
  
 -    <programlisting>options          UCONSOLE            #Allow users to grab the console</programlisting>
 -
 -    <para>Allow users to grab the console, which is useful for X users.
 -      For example, you can create a console <application>xterm</application>
 -      by typing <command>xterm
 -      -C</command>, which will display any &man.write.1;,
 -      &man.talk.1;, and any other messages you receive, as well
 -      as any console messages sent by the kernel.</para>
 -
 -    <note><para>In &os; 5.X, <literal>UCONSOLE</literal> is no
 -      longer required.</para></note>
 -
 -    <programlisting>options          USERCONFIG          #boot -c editor</programlisting>
 -
 -    <para>This option allows you to boot the configuration editor from the
 -      boot menu.</para>
 -
 -    <programlisting>options          VISUAL_USERCONFIG   #visual boot -c editor</programlisting>
 -
 -    <para>This option allows you to boot the visual configuration editor
 -      from the boot menu.</para>
 +    <programlisting>options          GEOM_GPT            # GUID Partition Tables.</programlisting>
  
 -      <note><para>From &os; versions 5.0 and later, the <literal>USERCONFIG</literal> options has
 -	been deprecated in favor of the new &man.device.hints.5;
 -	method.  For more information on &man.device.hints.5; please
 -	visit <xref linkend="device-hints">.</para></note>
 +    <para>This option brings the ability to have a large number of
 +      partitions on a single disk.</para>
  
      <programlisting>options          KTRACE              #ktrace(1) support</programlisting>
  
 @@ -884,42 +822,29 @@
  	these System V facilities.</para>
      </note>
  
 -    <programlisting>options 	P1003_1B		#Posix P1003_1B real-time extensions
 -options 	_KPOSIX_PRIORITY_SCHEDULING</programlisting>
 +    <programlisting>options          _KPOSIX_PRIORITY_SCHEDULING</programlisting>
  
      <para>Real-time extensions added in the 1993 &posix;.  Certain
        applications in the ports collection use these
        (such as <application>&staroffice;</application>).</para>
  
 -    <note><para>In &os; 5.X, all of this functionality is now
 -      provided by the <literal>_KPOSIX_PRIORITY_SCHEDULING</literal>
 -      option, and <literal>P1003_1B</literal> is no longer
 -      required.</para></note>
 +    <programlisting>options          PFIL_HOOKS          # pfil(9) framework</programlisting>
  
 -    <indexterm>
 -      <primary>kernel options</primary>
 -      <secondary>ICMP_BANDLIM</secondary>
 -    </indexterm>
 -    <indexterm>
 -      <primary>Denial of Service (DoS)</primary>
 -    </indexterm>
 -    <programlisting>options		ICMP_BANDLIM		#Rate limit bad replies</programlisting>
 +    <para>The pfil framework is required by the IPFILTER and IPFIREWALL
 +      options.</para>
  
 -    <para>This option enables ICMP error response bandwidth limiting.  You
 -      typically want this option as it will help protect the machine from
 -      denial of service packet attacks.</para>
 +    <programlisting>options          ADAPTIVE_GIANT      # Giant mutex is adaptive.</programlisting>
  
 -    <note><para>In &os; 5.X, this feature is enabled by default and
 -      the <literal>ICMP_BANDLIM</literal> option is not required.
 -      </para></note>
 +    <para>This option causes Giant to be included in the set of mutexes
 +      adaptively spun on.</para>
  
      <indexterm>
        <primary>kernel options</primary>
        <secondary>SMP</secondary>
      </indexterm>
      <programlisting># To make an SMP kernel, the next two are needed
 -#options        SMP                     # Symmetric MultiProcessor Kernel
 -#options        APIC_IO                 # Symmetric (APIC) I/O</programlisting>
 +options        SMP         # Symmetric MultiProcessor Kernel
 +device         apic        # I/O APIC</programlisting>
  
      <para>The above are both required for SMP support.</para>
  
 @@ -930,7 +855,7 @@
        IBM PS/2 (Micro Channel Architecture), &os; provides some
        limited support at this time.  For more information about the
        MCA support, see
 -      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
  
      <programlisting>device          eisa</programlisting>
  
 @@ -951,14 +876,9 @@
        have these features.</para>
  
      <programlisting># Floppy drives
 -device          fdc0        at isa? port IO_FD1 irq 6 drq 2
 -device          fd0         at fdc0 drive 0
 -device          fd1         at fdc0 drive 1</programlisting>
 -
 -    <para>This is the floppy drive controller.  <literal>fd0</literal> is
 -      the <devicename>A:</devicename> floppy drive, and
 -      <literal>fd1</literal> is the <devicename>B:</devicename>
 -      drive.</para>
 +device          fdc</programlisting>
 +
 +    <para>This is the floppy drive controller.</para>
  
      <programlisting>device          ata</programlisting>
  
 @@ -971,6 +891,11 @@
      <para>This is needed along with <literal>device ata</literal> for
        ATA disk drives.</para>
  
 +    <programlisting>device          ataraid                 # ATA RAID drives</programlisting>
 +
 +    <para>This is needed along with <literal>device ata</literal> for
 +      ATA RAID drives.</para>
 +
      <programlisting><anchor id="kernelconfig-atapi">
  device          atapicd                 # ATAPI CDROM drives</programlisting>
  
 @@ -992,26 +917,26 @@
      <para>This makes the controller number static (like the old driver) or
        else the device numbers are dynamically allocated.</para>
  
 -    <programlisting># ATA and ATAPI devices
 -device          ata0        at isa? port IO_WD1 irq 14
 -device          ata1        at isa? port IO_WD2 irq 15</programlisting>
 -
 -    <para>Use the above for older, non-PCI systems.</para>
 -
      <programlisting># SCSI Controllers
  device          ahb        # EISA AHA1742 family
  device          ahc        # AHA2940 and onboard AIC7xxx devices
 +device          ahd        # AHA39320/29320 and onboard AIC79xx devices
  device          amd        # AMD 53C974 (Teckram DC-390(T))
 -device          dpt        # DPT Smartcache - See LINT for options!
  device          isp        # Qlogic family
 +device          mpt        # LSI-Logic MPT-Fusion
  device          ncr        # NCR/Symbios Logic
 -device          sym        # NCR/Symbios Logic (newer chipsets)
 +device          sym        # NCR/Symbios Logic (newer chipsets + those of `ncr')
 +device          trm        # Tekram DC395U/UW/F DC315U adapters
  
 -device          adv0       at isa?
 -device          adw
 -device          bt0        at isa?
 -device          aha0       at isa?
 -device          aic0       at isa?</programlisting>
 +device          adv        # Advansys SCSI adapters
 +device          adw        # Advansys wide SCSI adapters
 +device          aha        # Adaptec 154x SCSI adapters
 +device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 +device          bt         # Buslogic/Mylex MultiMaster SCSI adapters
 +
 +device          ncv        # NCR 53C500
 +device          nsp        # Workbit Ninja SCSI-3
 +device          stg        # TMC 18C30/18C50</programlisting>
  
      <para>SCSI controllers.  Comment out any you do not have in your
        system.  If you have an IDE only system, you can remove these
 @@ -1019,11 +944,12 @@
  
      <programlisting># SCSI peripherals
  device          scbus      # SCSI bus (required)
 +device          ch         # SCSI media changers
  device          da         # Direct Access (disks)
  device          sa         # Sequential Access (tape etc)
  device          cd         # CD
 -device          pass       # Passthrough device (direct SCSI
 -access)</programlisting>
 +device          pass       # Passthrough device (direct SCSI access)
 +device          ses        # SCSI Environmental Services (and SAF-TE)</programlisting>
  
      <para>SCSI peripherals.  Again, comment out any you do not have, or if
        you have only IDE hardware, you can remove them completely.</para>
 @@ -1035,16 +961,28 @@
  	drivers are included in the kernel configuration.</para>
      </note>
  
 -    <programlisting># RAID controllers
 -device          ida        # Compaq Smart RAID
 +    <programlisting># RAID controllers interfaced to the SCSI subsystem
  device          amr        # AMI MegaRAID
 -device          mlx        # Mylex DAC960 family</programlisting>
 +device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
 +device          ciss       # Compaq Smart RAID 5*
 +device          dpt        # DPT Smartcache III, IV - See NOTES for options
 +device          iir        # Intel Integrated RAID
 +device          ips        # IBM (Adaptec) ServeRAID
 +device          mly        # Mylex AcceleRAID/eXtremeRAID
 +device          twa        # 3ware 9000 series PATA/SATA RAID
 +
 +# RAID controllers
 +device          aac        # Adaptec FSA RAID
 +device          aacp       # SCSI passthrough for aac (requires CAM)
 +device          ida        # Compaq Smart RAID
 +device          mlx        # Mylex DAC960 family
 +device          pst        # Promise Supertrak SX6000
 +device          twe        # 3ware ATA RAID</programlisting>
  
      <para>Supported RAID controllers.  If you do not have any of these,
        you can comment them out or remove them.</para>
  
 -    <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse
 -device          atkbdc0    at isa? port IO_KBD</programlisting>
 +    <programlisting>device          atkbdc	   # AT keyboard controller</programlisting>
  
      <para>The keyboard controller (<literal>atkbdc</literal>) provides I/O
        services for the AT keyboard and PS/2 style pointing devices.  This
 @@ -1052,79 +990,86 @@
        (<literal>atkbd</literal>) and the PS/2 pointing device driver
        (<literal>psm</literal>).</para>
  
 -    <programlisting>device          atkbd0     at atkbdc? irq 1</programlisting>
 +    <programlisting>device          atkbd	   # AT keyboard</programlisting>
  
      <para>The <literal>atkbd</literal> driver, together with
        <literal>atkbdc</literal> controller, provides access to the AT 84
        keyboard or the AT enhanced keyboard which is connected to the AT
        keyboard controller.</para>
  
 -    <programlisting>device          psm0       at atkbdc? irq 12</programlisting>
 +    <programlisting>device          psm	   	# PS/2 mouse</programlisting>
  
      <para>Use this device if your mouse plugs into the PS/2 mouse
        port.</para>
  
 -    <programlisting>device          vga0        at isa?</programlisting>
 +    <programlisting>device          vga	   # VGA video card driver</programlisting>
  
      <para>The video card driver.</para>
  
 -    <programlisting># splash screen/screen saver
 -device          splash</programlisting>
 +    <programlisting>device          splash	   # Splash screen and screen saver support</programlisting>
  
      <para>Splash screen at start up!  Screen savers require this
        too.  Use the line <literal>pseudo-device splash</literal> with
        &os;&nbsp;4.X.</para>
  
      <programlisting># syscons is the default console driver, resembling an SCO console
 -device          sc0          at isa?</programlisting>
 +device          sc</programlisting>
  
 -    <para><literal>sc0</literal> is the default console driver, which
 +    <para><literal>sc</literal> is the default console driver, which
        resembles a SCO console.  Since most full-screen programs access the
        console through a terminal database library like
        <filename>termcap</filename>, it should not matter whether you use
 -      this or <literal>vt0</literal>, the <literal>VT220</literal>
 +      this or <literal>vt</literal>, the <literal>VT220</literal>
        compatible console driver.  When you log in, set your
        <envar>TERM</envar> variable to <literal>scoansi</literal> if
        full-screen programs have trouble running under this console.</para>
  
      <programlisting># Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
 -#device          vt0     at isa?
 +#device          vt
  #options         XSERVER          # support for X server on a vt console
 -#options         FAT_CURSOR       # start with block cursor
 -# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
 -#options         PCVT_SCANSET=2   # IBM keyboards are non-std</programlisting>
 +#options         FAT_CURSOR       # start with block cursor</programlisting>
  
      <para>This is a VT220-compatible console driver, backward compatible to
        VT100/102.  It works well on some laptops which have hardware
 -      incompatibilities with <literal>sc0</literal>.  Also set your
 +      incompatibilities with <literal>sc</literal>.  Also set your
        <envar>TERM</envar> variable to <literal>vt100</literal> or
        <literal>vt220</literal> when you log in.  This driver might also
        prove useful when connecting to a large number of different machines
        over the network, where <filename>termcap</filename> or
 -      <filename>terminfo</filename> entries for the <literal>sc0</literal>
 +      <filename>terminfo</filename> entries for the <literal>sc</literal>
        device are often not available &mdash; <literal>vt100</literal>
        should be available on virtually any platform.</para>
  
 -    <programlisting># Power management support (see LINT for more options)
 -device          apm0     at nexus? disable flags 0x20  # Advanced Power Management</programlisting>
 +    <programlisting># Power management support (see NOTES for more options)
 +#device          apm</programlisting>
  
      <para>Advanced Power Management support.  Useful for laptops.</para>
  
 +    <note>
 +       <para>In &os; 5.X and above this is disabled in
 +	 <filename>GENERIC</filename> by default.</para>
 +    </note>
 +
 +    <programlisting>#Add suspend/resume support for the i8254.
 +device		pmtimer</programlisting>
 +
 +    <para>Timer device driver for power management events, such as APM and
 +      ACPI.</para>
 +
 +
      <programlisting># PCCARD (PCMCIA) support
 -device          card
 -device          pcic0    at isa? irq 10 port 0x3e0 iomem 0xd0000
 -device          pcic1    at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting>
 +# PCMCIA and cardbus bridge support
 +device          cbb             # cardbus (yenta) bridge
 +device          pccard          # PC Card (16-bit) bus
 +device          cardbus         # CardBus (32-bit) bus</programlisting>
  
      <para>PCMCIA support.  You want this if you are using a
        laptop.</para>
  
      <programlisting># Serial (COM) ports
 -device          sio0     at isa? port IO_COM1 flags 0x10 irq 4
 -device          sio1     at isa? port IO_COM2 irq 3
 -device          sio2     at isa? disable port IO_COM3 irq 5
 -device          sio3     at isa? disable port IO_COM4 irq 9</programlisting>
 +device		sio		# 8250, 16[45]50 based serial ports</programlisting>
  
 -    <para>These are the four serial ports referred to as <devicename>COM1</devicename> through <devicename>COM4</devicename>
 +    <para>These are the serial ports referred to as <devicename>COM</devicename> ports
        in the &ms-dos/&windows; world.</para>
  
      <note>
 @@ -1146,7 +1091,7 @@
      </note>
  
      <programlisting># Parallel port
 -device          ppc0    at isa? irq 7</programlisting>
 +device          ppc</programlisting>
  
      <para>This is the ISA-bus parallel port interface.</para>
  
 @@ -1179,12 +1124,18 @@
        <literal>scbus</literal> and <literal>da</literal> support.  Best
        performance is achieved with ports in EPP 1.9 mode.</para>
  
 +    <programlisting>#device          puc</programlisting>
 +
 +    <para>Uncomment this device if you have a <quote>dumb</quote> serial or
 +      parallel PCI card that is supported by the &man.puc.4 glue driver.
 +      </para>
 +
      <programlisting># PCI Ethernet NICs.
  device          de         # DEC/Intel DC21x4x (<quote>Tulip</quote>)
 -device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
 -device          tx         # SMC 9432TX (83c170 <quote>EPIC</quote>)
 -device          vx         # 3Com 3c590, 3c595 (<quote>Vortex</quote>)
 -device          wx         # Intel Gigabit Ethernet Card (<quote>Wiseman</quote>)</programlisting>
 +device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
 +device          ixgb       # Intel PRO/10GbE Ethernet Card
 +device          txp        # 3Com 3cR990 (<quote>Typhoon</quote>)
 +device          vx         # 3Com 3c590, 3c595 (<quote>Vortex</quote>)</programlisting>
  
      <para>Various PCI network card drivers.  Comment out or remove any of
        these not present in your system.</para>
 @@ -1201,43 +1152,43 @@
        by an individual driver.</para>
  
      <programlisting>device          dc         # DEC/Intel 21143 and various workalikes
 +device          bfe        # Broadcom BCM440x 10/100 Ethernet
 +device          bge        # Broadcom BCM570xx Gigabit Ethernet
 +device          dc         # DEC/Intel 21143 and various workalikes
 +device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
 +device          pcn        # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
 +device          re         # RealTek 8139C+/8169/8169S/8110S
  device          rl         # RealTek 8129/8139
  device          sf         # Adaptec AIC-6915 (<quote>Starfire</quote>)
  device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
 +device          sk         # SysKonnect SK-984x & SK-982x gigabit Ethernet
  device          ste        # Sundance ST201 (D-Link DFE-550TX)
 +device          ti         # Alteon Networks Tigon I/II gigabit Ethernet
  device          tl         # Texas Instruments ThunderLAN
 +device          tx         # SMC EtherPower II (83c170 <quote>EPIC</quote>)
  device          vr         # VIA Rhine, Rhine II
  device          wb         # Winbond W89C840F
  device          xl         # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting>
  
      <para>Drivers that use the MII bus controller code.</para>
  
 -    <programlisting># ISA Ethernet NICs.
 -device          ed0    at isa? port 0x280 irq 10 iomem 0xd8000
 -device          ex
 -device          ep
 -# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
 -# exists only as a PCMCIA device, so there is no ISA attachment needed
 -# and resources will always be dynamically assigned by the pccard code.
 -device          wi
 -# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
 -# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
 -# mode (the factory default). If you set the switches on your ISA
 -# card for a manually chosen I/O address and IRQ, you must specify
 -# those parameters here.
 -device          an
 -# The probe order of these is presently determined by i386/isa/isa_compat.c.
 -device          ie0    at isa? port 0x300 irq 10 iomem 0xd0000
 -device          fe0    at isa? port 0x300
 -device          le0    at isa? port 0x300 irq 5 iomem 0xd0000
 -device          lnc0   at isa? port 0x280 irq 10 drq 0
 -device          cs0    at isa? port 0x300
 -device          sn0    at isa? port 0x300 irq 10
 -# requires PCCARD (PCMCIA) support to be activated
 -#device         xe0    at isa?</programlisting>
 +    <programlisting># ISA Ethernet NICs.  pccard NICs included.
 +device          cs         # Crystal Semiconductor CS89x0 NIC
 +# 'device ed' requires 'device miibus'
 +device          ed         # NE[12]000, SMC Ultra, 3c503, DS8390 cards
 +device          ex         # Intel EtherExpress Pro/10 and Pro/10+
 +device          ep         # Etherlink III based cards
 +device          fe         # Fujitsu MB8696x based cards
 +device          ie         # EtherExpress 8/16, 3C507, StarLAN 10 etc.
 +device          lnc        # NE2100, NE32-VL Lance Ethernet cards
 +device          sn         # SMC's 9000 series of Ethernet chips
 +device          xe         # Xircom pccard Ethernet
 +
 +# ISA devices that use the old ISA shims
 +#device		le</programlisting>
  
      <para>ISA Ethernet drivers.  See
 -      <filename>/usr/src/sys/i386/conf/LINT</filename> for which cards are
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename> for which cards are
        supported by which driver.</para>
  
      <programlisting>device   ether         # Ethernet support</programlisting>
 @@ -1247,7 +1198,21 @@
        &os;&nbsp;4.X use the line <literal>pseudo-device
        ether</literal>.</para>
  
 -    <programlisting>device   sl      1     # Kernel SLIP</programlisting>
 +   <programlisting>device   mem            # Memory and kernel memory devices</programlisting>
 +
 +    <para>The system memory devices.</para>
 +
 +   <programlisting>device   io             # I/O device</programlisting>
 +
 +    <para>This is a controlled security hole that allows a process to gain
 +      I/O privileges. This is useful in order to write userland programs
 +      that can handle hardware directly.</para>
 +
 +   <programlisting>device   random         # Entropy device</programlisting>
 +
 +    <para>Cryptographically secure random number generator.</para>
 +
 +    <programlisting>device   sl            # Kernel SLIP</programlisting>
  
      <para><literal>sl</literal> is for SLIP support.  This has been almost
        entirely supplanted by PPP, which is easier to set up, better suited
 @@ -1257,7 +1222,7 @@
        With &os;&nbsp;4.X use the line <literal>pseudo-device
        sl</literal>.</para>
  
 -    <programlisting>device   ppp     1     # Kernel PPP</programlisting>
 +    <programlisting>device   ppp           # Kernel PPP</programlisting>
  
      <para>This is for kernel PPP support for dial-up connections.  There
        is also a version of PPP implemented as a userland application that
 @@ -1334,25 +1299,37 @@
      </note>
  
      <programlisting># USB support
 -#device         uhci          # UHCI PCI-&gt;USB interface
 -#device         ohci          # OHCI PCI-&gt;USB interface
 -#device         usb           # USB Bus (required)
 -#device         ugen          # Generic
 -#device         uhid          # <quote>Human Interface Devices</quote>
 -#device         ukbd          # Keyboard
 -#device         ulpt          # Printer
 -#device         umass         # Disks/Mass storage - Requires scbus and da
 -#device         ums           # Mouse
 +#device         uhci       # UHCI PCI-&gt;USB interface
 +#device         ohci       # OHCI PCI-&gt;USB interface
 +device          usb        # USB Bus (required)
 +#device         udbp       # USB Double Bulk Pipe devices
 +device          ugen       # Generic
 +device          uhid       # <quote>Human Interface Devices</quote>
 +device          ukbd       # Keyboard
 +device          ulpt       # Printer
 +device          umass      # Disks/Mass storage - Requires scbus and da
 +device          ums        # Mouse
 +device          urio       # Diamond Rio 500 MP3 player
 +device          uscanner   # Scanners
  # USB Ethernet, requires mii
 -#device         aue           # ADMtek USB ethernet
 -#device         cue           # CATC USB ethernet
 -#device         kue           # Kawasaki LSI USB ethernet</programlisting>
 +device          aue        # ADMtek USB Ethernet
 +device          axe        # ASIX Electronics USB Ethernet
 +device          cue        # CATC USB Ethernet
 +device          kue        # Kawasaki LSI USB Ethernet
 +device          rue        # RealTek RTL8150 USB Ethernet</programlisting>
  
      <para>Support for various USB devices.</para>
  
 +    <programlisting># FireWire support
 +device          firewire   # FireWire bus code
 +device          sbp        # SCSI over FireWire (Requires scbus and da)
 +device          fwe        # Ethernet over FireWire (non-standard!)</programlisting>
 +
 +    <para>Support for Firewire devices.</para>
 +
      <para>For more information and additional devices supported by
        &os;, see
 -      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
  
        <sect2>
          <title>Large Memory Configurations (<acronym>PAE</acronym>)</title>
 
 --=-JG2MxxHv2V9gFmzE28+T--
 

From: Peter Pentchev <roam@ringlet.net>
To: Joel Dahl <joel@automatvapen.se>
Cc: bug-followup@FreeBSD.org
Subject: Re: docs/70674: [PATCH] Update handbook to match 5.3R (8.4 - The Configuration File)
Date: Wed, 25 Aug 2004 11:05:12 +0300

 --OgqxwSJOaUobr8KG
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Fri, Aug 20, 2004 at 04:50:32PM +0000, Joel Dahl wrote:
 >  --- chapter.sgml	Thu Aug 19 16:05:42 2004
 >  +++ new.chapter.sgml	Thu Aug 19 21:16:12 2004
 
 Great going!  A rewrite (or at least a retouch) of the kernel config
 section is indeed needed, thanks for taking the time to do it!
 But... :) see below for a couple of comments.
 
 >  @@ -426,19 +426,18 @@
 >         some related keywords have been grouped together in a single sect=
 ion
 >         (such as Networking) even though they are actually scattered
 >         throughout the <filename>GENERIC</filename> file.  <anchor
 [snip]
 >  +      id=3D"kernelconfig-options"> An exhaustive list of architecure
 >  +      dependent options and more detailed explanations of the device li=
 nes
 >  +      is present in the <filename>NOTES</filename> configuration file,
 >  +      located in the same directory as <filename>GENERIC</filename>. If=
  you
 >  +      are in doubt as to the purpose or necessity of a line, check firs=
 t in
 >  +      <filename>NOTES</filename>. Architecure independent options are
 >  +      stored in <filename>/usr/src/sys/conf/NOTES</filename>.</para>
 >  +
 >  +    <note><para>In &os; 4.X and earlier <filename>NOTES</filename> is
 >  +      non-existent. Instead, see the <filename>LINT</filename> file for
 >  +      detailed explanations of options in <filename>GENERIC</filename>.
 >  +      </para></note>
 
 Actually, just substituting NOTES for LINT is not quite (or at least not
 completely) correct.  It is true that the sys/conf/NOTES and
 sys/<arch>/conf/NOTES files are the place one should look when choosing
 kernel options to include (or remove) when building a custom kernel
 config, so that much is correct.  However, there is a bit more to be
 said about the NOTES vs LINT issue, and it might need a little detour
 into history :)
 
 The purpose of the LINT kernel config in FreeBSD 4.x and earlier was
 actually twofold: to provide a reference for choosing kernel options
 when building a custom kernel, *and* to provide a kernel configuration
 file with as much drivers/options included as possible and as many
 tweakable knobs tweaked to non-default values as possible.  The idea was
 that such a kernel config should (and does) help a lot in checking
 whether new code or changes to existing code will cause conflicts with
 other parts of the kernel.
 
 Then, about 4 years ago, Peter Wemm borrowed Poul-Henning Kamp's axe and
 took it to the kernel configuration framework, almost turning the thing
 inside out :)  The part of this change that interests us most is the
 fact that the driver configuration options that were so far stored in
 the kernel config (e.g. 'device ppc0 at isa? irq 7') were moved to a
 so-called 'hints' file, so that they could be changed and loaded
 dynamically at boot time.  Among other things, this meant that the LINT
 file could no longer contain those hints (since the syntax had changed
 to just 'device ppc' and a separate line *in a separate file*), so for
 this and other reasons, the file-formerly-known-as-LINT was renamed to
 (nope, not 'Symbol') NOTES and retained mostly the first reason for its
 existence: documenting the available options for user convenience.
 However, the second reason - building a kernel with all the bells and
 whistles and seeing which of those do not play nice with each other -
 was (and is) still very, very important, so in the same change 4 years
 ago Peter Wemm also created sys/<arch>/conf/Makefile with the sole
 purpose of taking sys/<arch>/conf/NOTES and sys/conf/NOTES and
 converting them into a buildable kernel config file named - yep, you
 guessed it - LINT.
 
 So basically, it's not so much that NOTES doesn't exist in 4.x, it's
 more like LINT turned to NOTES in 5.x, but you can still generate a
 buildable LINT:
 
   # cd /sys/i386/conf && make LINT
 
 =2E..and you can later build the LINT kernel:
 
   # cd /usr/src && make KERNCONF=3DLINT NO_MODULES=3Dyes buildkernel
 
 (the NO_MODULES part serves two purposes: first, pretty much all the
 code is *in* the LINT kernel, and second, nobody in their right mind
 would actually try to *boot* the thing :)
 
 Soooo... do you think you could somehow integrate some of those mindless
 ravings of mine (rewording where necessary :) into your changes?  And
 it's okay if you don't want to - sometimes I amaze myself when I look at
 things I've written a couple of months ago and wonder just how could I
 have been so dumb and/or unclear :)
 
 G'luck,
 Peter
 
 --=20
 Peter Pentchev	roam@ringlet.net    roam@cnsys.bg    roam@FreeBSD.org
 PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
 Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
 If this sentence didn't exist, somebody would have invented it.
 
 --OgqxwSJOaUobr8KG
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.5 (FreeBSD)
 
 iD8DBQFBLEg47Ri2jRYZRVMRAtgZAJ0dm0eKcLwKJa03rL5cU+OK0CgaowCfSd60
 ifo6ODijEcpbEk/+EvWnAyA=
 =H6tv
 -----END PGP SIGNATURE-----
 
 --OgqxwSJOaUobr8KG--

From: Joel Dahl <joel@automatvapen.se>
To: Peter Pentchev <roam@ringlet.net>
Cc: bug-followup@FreeBSD.org
Subject: Re: docs/70674: [PATCH] Update handbook to match 5.3R (8.4 - The
	Configuration File)
Date: Wed, 25 Aug 2004 15:13:10 +0200

 >  Soooo... do you think you could somehow integrate some of those
 mindless
 >  ravings of mine (rewording where necessary :) into your changes?
 
 Yes, one way or another. ;)
 
 I've also spotted some minor errors in my patch, so I'll try to submit a
 better one in a few days, as a follow-up to this one.
  
 >  G'luck,
 >  Peter
 
 Thanks,
 Joel
 
Responsible-Changed-From-To: freebsd-doc->ceri 
Responsible-Changed-By: ceri 
Responsible-Changed-When: Thu Aug 26 10:37:10 GMT 2004 
Responsible-Changed-Why:  
Take this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=70674 

From: Joel Dahl <joel@automatvapen.se>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: docs/70674: [PATCH] Update handbook to match 5.3R (8.4 - The
	Configuration File)
Date: Thu, 26 Aug 2004 22:54:24 +0200

 --=-muoGiSqFEkkcjaNplKgf
 Content-Type: text/plain
 Content-Transfer-Encoding: 7bit
 
 This updated patch fixes a few minor errors and adds some descriptions.
 Any thoughts on this? Good or bad?
 
 As a side note, I did not put my name in the "updated by" section at the
 top of chapter 8.1 (Synopsis). I don't know if this is necessary.
 
 -- 
 Joel
 
 --=-muoGiSqFEkkcjaNplKgf
 Content-Disposition: inline; filename=kernconf.diff
 Content-Type: text/x-patch; name=kernconf.diff; charset=iso-8859-1
 Content-Transfer-Encoding: 7bit
 
 --- chapter.sgml	Thu Aug 19 16:05:42 2004
 +++ new.chapter.sgml	Thu Aug 26 22:41:06 2004
 @@ -153,8 +153,8 @@
        potentially be ported.  Notice the logical organization of the
        directory structure, with each supported device, file system, and
        option in its own subdirectory.  &os; 5.X and up has support for
 -      <filename>sparc64</filename>, and a few other architectures under
 -      development.</para>
 +      <filename>sparc64</filename>, <filename>amd64</filename>,
 +      <filename>ia64</filename> and <filename>powerpc</filename>.</para>
  
      <note>
        <para>If there is <emphasis>not</emphasis> a
 @@ -426,19 +426,39 @@
        some related keywords have been grouped together in a single section
        (such as Networking) even though they are actually scattered
        throughout the <filename>GENERIC</filename> file.  <anchor
 -      id="kernelconfig-options"> An exhaustive list of options and more
 -      detailed explanations of the device lines is present in the
 -      <filename>LINT</filename> configuration file, located in the same
 -      directory as <filename>GENERIC</filename>.  If you are in doubt as
 -      to the purpose or necessity of a line, check first in
 -      <filename>LINT</filename>.</para>
 -
 -    <note><para>In &os; 5.X and above the <filename>LINT</filename> is
 -      non-existent.  See the <filename>NOTES</filename> file for
 -      architecture dependent options.  Some options, mainly
 -      architecture independent ones, are stored in the
 -      <filename>/usr/src/sys/conf/NOTES</filename> file.  It is
 -      advisable to review the options in here also.</para></note>
 +      id="kernelconfig-options"> For an exhaustive list of architecture
 +      dependent options and devices, see the <filename>NOTES</filename>
 +      file in the same directory as <filename>GENERIC</filename>. For
 +      architecure independent options, see
 +      <filename>/usr/src/sys/conf/NOTES</filename>.</para>
 +
 +    <note>
 +      <para><filename>NOTES</filename> does not exist in &os;&nbsp;4.X.
 +        Instead, see the <filename>LINT</filename> file for detailed
 +        explanations of options and devices in <filename>GENERIC</filename>.
 +        <filename>LINT</filename> served two purposes in 4.X: to provide a
 +        reference for choosing kernel options when building a custom
 +        kernel, and to provide a kernel configuration with as many
 +        tweakable options tweaked to non-default values as possible. The
 +        reason behind this was that such a configuration helped (and still
 +        does) a lot when testing new code and changes to existing code that
 +        may cause conflicts with other parts of the kernel. However, when
 +        the kernel configuration framework went through some heavy changes
 +        in 5.X, including that the driver configuration options were moved
 +        to a <literal>hints</literal> file so that they could be changed
 +        and loaded dynamically at boot time, <filename>LINT</filename>
 +        could not contain those hints anymore. Because of this and other
 +        reasons, the <filename>LINT</filename> file were renamed to
 +        <filename>NOTES</filename> and retained mostly the first reason for
 +        its existence: documenting the available options for user
 +        convenience.</para>
 +
 +    <para>In 5.X and newer you can still generate a buildable
 +      <filename>LINT</filename> file by typing:</para>
 +
 +    <screen>&prompt.root; <userinput>cd /sys/i386/conf && make LINT</userinput>
 +    </screen>
 +    </note>
  
      <indexterm>
        <primary>kernel</primary>
 @@ -449,8 +469,7 @@
        configuration file with various additional comments where needed for
        clarity.  This example should match your copy in
        <filename>/usr/src/sys/i386/conf/GENERIC</filename> fairly
 -      closely.  For details of all the possible kernel options, see
 -      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
 +      closely.</para>
  
      <programlisting>#
  # GENERIC -- Generic kernel configuration file for &os;/i386
 @@ -470,7 +489,7 @@
  # If you are in doubt as to the purpose or necessity of a line, check first 
  # in NOTES.
  #
 -# &dollar;FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $</programlisting>
 +# &dollar;FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp &dollar;</programlisting>
  
      <para>The following are the mandatory keywords required in
        <emphasis>every</emphasis> kernel you build:</para>
 @@ -526,7 +545,7 @@
        </listitem>
  
        <listitem>
 -        <para>Roll your own release of FreeBSD which includes
 +        <para>Roll your own release of &os; which includes
            <literal>I386_CPU</literal> support in the kernels of the
            installation CD-ROM.</para>
        </listitem>
 @@ -568,7 +587,7 @@
  	<para>The auto-tuning algorithm sets <literal>maxuser</literal> equal
  	  to the amount of memory in the system, with a minimum of 32, and a
  	  maximum of 384.</para></footnote>.
 -      In &os;&nbsp;5.X, <literal>maxusers</literal> will default to
 +      In &os;&nbsp;5.X and above, <literal>maxusers</literal> will default to
        <literal>0</literal> if not specified.  If you are using an
        version of &os; earlier than 4.5, or you want to manage it
        yourself you will want to set
 @@ -606,14 +625,14 @@
      </note>
      
      <programlisting># Floating point support - do not disable.
 -device          npx0     at nexus? port IO_NPX irq 13</programlisting>
 +device          npx0</programlisting>
      
      <para><literal>npx0</literal> is the interface to the floating point
        math unit in &os;, which is either the hardware co-processor or
        the software math emulator.  This is <emphasis>not</emphasis>
        optional.</para>
  
 -    <programlisting># Pseudo devices - the number indicates how many units to allocate.
 +    <programlisting># Pseudo devices
  device   loop          # Network loopback</programlisting>
  
      <para>This is the generic loopback device for TCP/IP.  If you telnet
 @@ -627,7 +646,7 @@
        underneath or next to each option for more information.</para>
  
      <programlisting>#To statically compile in device wiring instead of /boot/device.hints
 -#hints          "GENERIC.hints"         #Default places to look for devices.</programlisting>
 +#hints          "GENERIC.hints"         # Default places to look for devices.</programlisting>
  
      <para>In &os; 5.X and newer versions the &man.device.hints.5; is
        used to configure options of the device drivers.  The default
 @@ -640,7 +659,7 @@
  
      <!-- XXX: Add a comment here that explains when compiling hints into the kernel is a good idea and why. -->
  
 -    <programlisting>#makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols</programlisting>
 +    <programlisting>#makeoptions     DEBUG=-g          # Build kernel with gdb(1) debug symbols</programlisting>
  
      <para>The normal build process of the &os; does not include
        debugging information when building the kernel and strips most
 @@ -654,48 +673,30 @@
        you are using the <quote>traditional</quote> way for building your kernels (See the <xref linkend="kernelconfig-building">
        for more informations.).</para>
  
 -    <programlisting>options          MATH_EMULATE      #Support for x87 emulation</programlisting>
 -
 -    <para>This line allows the kernel to simulate a math co-processor if
 -      your computer does not have one (386 or 486SX).  If you have a
 -      486DX, or a 386 or 486SX (with a separate 387 or 487 chip), or
 -      higher (&pentium;, &pentium;&nbsp;II, etc.), you can comment this line
 -      out.</para>
 +    <programlisting>options          SCHED_ULE         # ULE scheduler</programlisting>
  
 -    <note>
 -      <para>The normal math co-processor emulation routines that come with
 -	&os; are <emphasis>not</emphasis> very accurate.  If you do not
 -	have a math co-processor, and you need the best accuracy, it is
 -	recommended that you change this option to
 -	<literal>GPL_MATH_EMULATE</literal> to use the GNU math support,
 -	which is not included by default for licensing reasons.</para>
 -
 -      <para>In &os; 5.X, math emulation is disabled by default,
 -      as older CPUs that do not have native floating point math support
 -      are far less common, and in many cases not supported by the
 -      <filename>GENERIC</filename> kernel without other additional options.</para></note>
 +    <para>The new scheduler for &os; that has been designed for SMP, but
 +      works just fine on UP systems too. As of &os;&nbsp;5.2.1,
 +      <literal>SCHED_ULE</literal> has replaced
 +      <literal>SCHED_4BSD</literal>.</para>
  
 -    <programlisting>options          INET          #InterNETworking</programlisting>
 +    <programlisting>options          INET              # InterNETworking</programlisting>
  
      <para>Networking support.  Leave this 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.</para>
  
 -    <programlisting>options          INET6          #IPv6 communications protocols</programlisting>
 +    <programlisting>options          INET6             # IPv6 communications protocols</programlisting>
  
      <para>This enables the IPv6 communication protocols.</para>
  
 -    <programlisting>options          FFS          #Berkeley Fast Filesystem
 -options          FFS_ROOT     #FFS usable as root device [keep this!]</programlisting>
 +    <programlisting>options          FFS               # Berkeley Fast Filesystem</programlisting>
  
      <para>This is the basic hard drive Filesystem.  Leave it in if you
        boot from the hard disk.</para>
  
 -    <note><para>In &os; 5.X, <literal>FFS_ROOT</literal> is no longer
 -      required.</para></note>
 -
 -    <programlisting>options          UFS_ACL      #Support for access control lists</programlisting>
 +    <programlisting>options          UFS_ACL           # Support for access control lists</programlisting>
  
      <para>This option, present only in &os;&nbsp;5.X, enables kernel support
        for access control lists.  This relies on the use of extended
 @@ -705,7 +706,7 @@
        system, as this will remove the access control lists changing the
        way files are protected in unpredictable ways.</para>
  
 -    <programlisting>options          UFS_DIRHASH  #Improve performance on big directories</programlisting>
 +    <programlisting>options          UFS_DIRHASH       # Improve performance on big directories</programlisting>
  
      <para>This option includes functionality to speed up disk
        operations on large directories, at the expense of using
 @@ -714,7 +715,7 @@
        using &os; on a smaller system where memory is at a premium and
        disk access speed is less important, such as a firewall.</para>
  
 -    <programlisting>options          SOFTUPDATES  #Enable FFS Soft Updates support</programlisting>
 +    <programlisting>options          SOFTUPDATES       # Enable FFS Soft Updates support</programlisting>
  
      <para>This option enables Soft Updates in the kernel, this will
        help speed up write access on the disks.  Even when this
 @@ -726,29 +727,10 @@
        filesystems) or &man.newfs.8; (for new filesystems)
        commands.</para>
  
 -    <programlisting>options          MFS          #Memory Filesystem
 -options          MD_ROOT      #MD is a potential root device</programlisting>
 +    <programlisting>options          MD_ROOT           # MD is a potential root device</programlisting>
  
 -    <para>This is the memory-mapped Filesystem.  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 <filename>/tmp</filename>
 -      directory, since many programs store temporary data here.  To mount
 -      an MFS RAM disk on <filename>/tmp</filename>, add the following line
 -      to <filename>/etc/fstab</filename>:</para>
 -
 -    <informalexample>
 -      <programlisting>/dev/ad1s2b	/tmp mfs rw 0 0</programlisting>
 -    </informalexample>
 -
 -    <para>Now you simply need to either reboot, or run the command
 -      <command>mount /tmp</command>.</para>
 -
 -    <note><para>In &os; 5.X, &man.md.4;-backed UFS file systems are
 -      used for memory file systems rather than MFS.  Information on
 -      configuring memory-backed file systems may be found in the manual pages
 -      for &man.mdconfig.8; and &man.mdmfs.8;, and in <xref linkend="disks-virtual">.  As a result, the
 -      <literal>MFS</literal> option is no longer supported.</para></note>
 +    <para>This option enables support for a memory backed virtual disk
 +      usable as a root device.</para>
  
      <indexterm>
        <primary>kernel options</primary>
 @@ -758,8 +740,9 @@
        <primary>kernel options</primary>
        <secondary>NFS_ROOT</secondary>
      </indexterm>
 -    <programlisting>options          NFS          #Network Filesystem
 -options          NFS_ROOT     #NFS usable as root device, NFS required</programlisting>
 +    <programlisting>options          NFSCLIENT         # Network Filesystem Client
 +options          NFSSERVER         # Network Filesystem Server
 +options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT</programlisting>
  
      <para>The network Filesystem.  Unless you plan to mount partitions
        from a &unix; file server over TCP/IP, you can comment these
 @@ -769,7 +752,7 @@
        <primary>kernel options</primary>
        <secondary>MSDOSFS</secondary>
      </indexterm>
 -    <programlisting>options          MSDOSFS      #MSDOS Filesystem</programlisting>
 +    <programlisting>options          MSDOSFS           # MSDOS Filesystem</programlisting>
  
      <para>The &ms-dos; Filesystem.  Unless you plan to mount a DOS formatted
        hard drive partition at boot time, you can safely comment this out.
 @@ -780,38 +763,42 @@
        unmount them (and does not require <literal>MSDOSFS</literal> at
        all).</para>
  
 -    <programlisting>options          CD9660       #ISO 9660 Filesystem
 -options          CD9660_ROOT  #CD-ROM usable as root, CD9660 required</programlisting>
 +    <programlisting>options          CD9660            # ISO 9660 Filesystem</programlisting>
  
      <para>The ISO 9660 Filesystem for CDROMs.  Comment it out if you do
        not have a CDROM drive or only mount data CDs occasionally (since it
        will be dynamically loaded the first time you mount a data CD).
        Audio CDs do not need this Filesystem.</para>
  
 -    <programlisting>options          PROCFS       #Process filesystem</programlisting>
 +    <programlisting>options          PROCFS            # Process filesystem</programlisting>
  
      <para>The process filesystem.  This is a <quote>pretend</quote>
        filesystem mounted on <filename>/proc</filename> which allows
        programs like &man.ps.1; to give you more information on what
 -      processes are running.  In &os; 5.X, use of <literal>PROCFS</literal>
 +      processes are running.  In &os; 5.X and above, use of <literal>PROCFS</literal>
        is not required under most circumstances, as most
        debugging and monitoring tools have been adapted to run without
 -      <literal>PROCFS</literal>.  In addition, 5.X-CURRENT kernels
 +      <literal>PROCFS</literal>.  In addition, 6.X-CURRENT kernels
        making use of <literal>PROCFS</literal> must now also include
        support for <literal>PSEUDOFS</literal>:</para>
  
 -    <programlisting>options          PSEUDOFS     #Pseudo-filesystem framework</programlisting>
 +    <programlisting>options          PSEUDOFS          # Pseudo-filesystem framework</programlisting>
  
      <para><literal>PSEUDOFS</literal> is not available in &os; 4.X.
        Unlike in &os; 4.X, new installations of &os; 5.X will not mount
        the process file system by default.</para>
  
 -    <programlisting>options          COMPAT_43    #Compatible with BSD 4.3 [KEEP THIS!]</programlisting>
 +    <programlisting>options          GEOM_GPT          # GUID Partition Tables.</programlisting>
 +
 +    <para>This option brings the ability to have a large number of
 +      partitions on a single disk.</para>
 +
 +    <programlisting>options          COMPAT_43         # Compatible with BSD 4.3 [KEEP THIS!]</programlisting>
  
      <para>Compatibility with 4.3BSD.  Leave this in; some programs will
        act strangely if you comment this out.</para>
  
 -    <programlisting>options          COMPAT_FREEBSD4     #Compatible with &os;4</programlisting>
 +    <programlisting>options          COMPAT_FREEBSD4   # Compatible with &os;4</programlisting>
  
      <para>This option is required on &os;&nbsp;5.X &i386; and Alpha systems
        to support applications compiled on older versions of &os;
 @@ -820,7 +807,7 @@
        run older applications; platforms that gained support only in
        5.X, such as ia64 and &sparc64;, do not require this option.</para>
  
 -    <programlisting>options          SCSI_DELAY=15000    #Delay (in ms) before probing SCSI</programlisting>
 +    <programlisting>options          SCSI_DELAY=15000  # Delay (in ms) before probing SCSI</programlisting>
  
      <para>This causes the kernel to pause for 15 seconds before probing
        each SCSI device in your system.  If you only have IDE hard drives,
 @@ -829,39 +816,12 @@
        you do this, and &os; has trouble recognizing your SCSI devices,
        you will have to raise it back up.</para>
  
 -    <programlisting>options          UCONSOLE            #Allow users to grab the console</programlisting>
 -
 -    <para>Allow users to grab the console, which is useful for X users.
 -      For example, you can create a console <application>xterm</application>
 -      by typing <command>xterm
 -      -C</command>, which will display any &man.write.1;,
 -      &man.talk.1;, and any other messages you receive, as well
 -      as any console messages sent by the kernel.</para>
 -
 -    <note><para>In &os; 5.X, <literal>UCONSOLE</literal> is no
 -      longer required.</para></note>
 -
 -    <programlisting>options          USERCONFIG          #boot -c editor</programlisting>
 -
 -    <para>This option allows you to boot the configuration editor from the
 -      boot menu.</para>
 -
 -    <programlisting>options          VISUAL_USERCONFIG   #visual boot -c editor</programlisting>
 -
 -    <para>This option allows you to boot the visual configuration editor
 -      from the boot menu.</para>
 -
 -      <note><para>From &os; versions 5.0 and later, the <literal>USERCONFIG</literal> options has
 -	been deprecated in favor of the new &man.device.hints.5;
 -	method.  For more information on &man.device.hints.5; please
 -	visit <xref linkend="device-hints">.</para></note>
 -
 -    <programlisting>options          KTRACE              #ktrace(1) support</programlisting>
 +    <programlisting>options          KTRACE            # ktrace(1) support</programlisting>
  
      <para>This enables kernel process tracing, which is useful in
        debugging.</para>
  
 -    <programlisting>options          SYSVSHM             #SYSV-style shared memory</programlisting>
 +    <programlisting>options          SYSVSHM           # SYSV-style shared memory</programlisting>
  
      <para>This option provides for System V shared memory.  The most
        common use of this is the XSHM extension in X, which many
 @@ -869,12 +829,12 @@
        extra speed.  If you use X, you will definitely want to include
        this.</para>
  
 -    <programlisting>options          SYSVSEM             #SYSV-style semaphores</programlisting>
 +    <programlisting>options          SYSVSEM           # SYSV-style semaphores</programlisting>
  
      <para>Support for System V semaphores.  Less commonly used but only
        adds a few hundred bytes to the kernel.</para>
  
 -    <programlisting>options          SYSVMSG             #SYSV-style message queues</programlisting>
 +    <programlisting>options          SYSVMSG           # SYSV-style message queues</programlisting>
  
      <para>Support for System V messages.  Again, only adds a few hundred
        bytes to the kernel.</para>
 @@ -884,42 +844,42 @@
  	these System V facilities.</para>
      </note>
  
 -    <programlisting>options 	P1003_1B		#Posix P1003_1B real-time extensions
 -options 	_KPOSIX_PRIORITY_SCHEDULING</programlisting>
 +    <programlisting>options 	     _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions</programlisting>
  
      <para>Real-time extensions added in the 1993 &posix;.  Certain
        applications in the ports collection use these
        (such as <application>&staroffice;</application>).</para>
  
 -    <note><para>In &os; 5.X, all of this functionality is now
 -      provided by the <literal>_KPOSIX_PRIORITY_SCHEDULING</literal>
 -      option, and <literal>P1003_1B</literal> is no longer
 -      required.</para></note>
 +    <programlisting>options          KBD_INSTALL_CDEV  # install a CDEV entry in /dev</programlisting>
  
 -    <indexterm>
 -      <primary>kernel options</primary>
 -      <secondary>ICMP_BANDLIM</secondary>
 -    </indexterm>
 -    <indexterm>
 -      <primary>Denial of Service (DoS)</primary>
 -    </indexterm>
 -    <programlisting>options		ICMP_BANDLIM		#Rate limit bad replies</programlisting>
 +    <para>This option is related to the keyboard. It installs a CDEV entry
 +      in <filename>/dev</filename>.</para>
 +
 +    <programlisting>options          AHC_REG_PRETTY_PRINT     # Print register bitfields in debug
 +                                          # output.  Adds ~128k to driver.
 +options          AHD_REG_PRETTY_PRINT     # Print register bitfields in debug
 +                                          # output.  Adds ~215k to driver.</programlisting>
 +
 +    <para>This helps debugging by printing easier register definitions for
 +      reading.</para>
 +
 +    <programlisting>options          PFIL_HOOKS        # pfil(9) framework</programlisting>
 +
 +    <para>The &man.pfil.9 framework is required by the IPFILTER and IPFIREWALL
 +      options. Keep this if you plan to build a firewall.</para>
 +
 +    <programlisting>options          ADAPTIVE_GIANT    # Giant mutex is adaptive.</programlisting>
  
 -    <para>This option enables ICMP error response bandwidth limiting.  You
 -      typically want this option as it will help protect the machine from
 -      denial of service packet attacks.</para>
 -
 -    <note><para>In &os; 5.X, this feature is enabled by default and
 -      the <literal>ICMP_BANDLIM</literal> option is not required.
 -      </para></note>
 +    <para>This option causes Giant to be included in the set of mutexes
 +      adaptively spun on.</para>
  
      <indexterm>
        <primary>kernel options</primary>
        <secondary>SMP</secondary>
      </indexterm>
      <programlisting># To make an SMP kernel, the next two are needed
 -#options        SMP                     # Symmetric MultiProcessor Kernel
 -#options        APIC_IO                 # Symmetric (APIC) I/O</programlisting>
 +options         SMP                # Symmetric MultiProcessor Kernel
 +device          apic               # I/O APIC</programlisting>
  
      <para>The above are both required for SMP support.</para>
  
 @@ -930,7 +890,7 @@
        IBM PS/2 (Micro Channel Architecture), &os; provides some
        limited support at this time.  For more information about the
        MCA support, see
 -      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
  
      <programlisting>device          eisa</programlisting>
  
 @@ -951,16 +911,12 @@
        have these features.</para>
  
      <programlisting># Floppy drives
 -device          fdc0        at isa? port IO_FD1 irq 6 drq 2
 -device          fd0         at fdc0 drive 0
 -device          fd1         at fdc0 drive 1</programlisting>
 -
 -    <para>This is the floppy drive controller.  <literal>fd0</literal> is
 -      the <devicename>A:</devicename> floppy drive, and
 -      <literal>fd1</literal> is the <devicename>B:</devicename>
 -      drive.</para>
 +device          fdc</programlisting>
  
 -    <programlisting>device          ata</programlisting>
 +    <para>This is the floppy drive controller.</para>
 +
 +    <programlisting># ATA and ATAPI devices
 +device          ata</programlisting>
  
      <para>This driver supports all ATA and ATAPI devices.  You only need
        one <literal>device ata</literal> line for the kernel to detect all
 @@ -971,6 +927,11 @@
      <para>This is needed along with <literal>device ata</literal> for
        ATA disk drives.</para>
  
 +    <programlisting>device          ataraid                 # ATA RAID drives</programlisting>
 +
 +    <para>This is needed along with <literal>device ata</literal> for ATA
 +      RAID drives.</para>
 +
      <programlisting><anchor id="kernelconfig-atapi">
  device          atapicd                 # ATAPI CDROM drives</programlisting>
  
 @@ -987,43 +948,44 @@
      <para>This is needed along with <literal>device ata</literal> for
        ATAPI tape drives.</para>
  
 -    <programlisting>options         ATA_STATIC_ID           #Static device numbering</programlisting>
 +    <programlisting>options         ATA_STATIC_ID           # Static device numbering</programlisting>
  
      <para>This makes the controller number static (like the old driver) or
        else the device numbers are dynamically allocated.</para>
  
 -    <programlisting># ATA and ATAPI devices
 -device          ata0        at isa? port IO_WD1 irq 14
 -device          ata1        at isa? port IO_WD2 irq 15</programlisting>
 -
 -    <para>Use the above for older, non-PCI systems.</para>
 -
      <programlisting># SCSI Controllers
  device          ahb        # EISA AHA1742 family
  device          ahc        # AHA2940 and onboard AIC7xxx devices
 +device          ahd        # AHA39320/29320 and onboard AIC79xx devices
  device          amd        # AMD 53C974 (Teckram DC-390(T))
 -device          dpt        # DPT Smartcache - See LINT for options!
  device          isp        # Qlogic family
 -device          ncr        # NCR/Symbios Logic
 +device          mpt        # LSI-Logic MPT-Fusion
 +#device         ncr        # NCR/Symbios Logic
  device          sym        # NCR/Symbios Logic (newer chipsets)
 +device          trm        # Tekram DC395U/UW/F DC315U adapters
  
 -device          adv0       at isa?
 -device          adw
 -device          bt0        at isa?
 -device          aha0       at isa?
 -device          aic0       at isa?</programlisting>
 +device          adv        # Advansys SCSI adapters
 +device          adw        # Advansys wide SCSI adapters
 +device          aha        # Adaptec 154x SCSI adapters
 +device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 +device          bt         # Buslogic/Mylex MultiMaster SCSI adapters
 +
 +device          ncv        # NCR 53C500
 +device          nsp        # Workbit Ninja SCSI-3
 +device          stg        # TMC 18C30/18C50</programlisting>
  
      <para>SCSI controllers.  Comment out any you do not have in your
        system.  If you have an IDE only system, you can remove these
        altogether.</para>
  
      <programlisting># SCSI peripherals
 -device          scbus      # SCSI bus (required)
 +device          scbus      # SCSI bus (required for SCSI)
 +device          ch         # SCSI media changers
  device          da         # Direct Access (disks)
  device          sa         # Sequential Access (tape etc)
  device          cd         # CD
 -device          pass       # Passthrough device (direct SCSI
 -access)</programlisting>
 +device          pass       # Passthrough device (direct SCSI access)
 +device          ses        # SCSI Environmental Services (and SAF-TE)</programlisting>
  
      <para>SCSI peripherals.  Again, comment out any you do not have, or if
        you have only IDE hardware, you can remove them completely.</para>
 @@ -1035,16 +997,29 @@
  	drivers are included in the kernel configuration.</para>
      </note>
  
 -    <programlisting># RAID controllers
 -device          ida        # Compaq Smart RAID
 +    <programlisting># RAID controllers interfaced to the SCSI subsystem
  device          amr        # AMI MegaRAID
 -device          mlx        # Mylex DAC960 family</programlisting>
 +device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
 +device          ciss       # Compaq Smart RAID 5*
 +device          dpt        # DPT Smartcache III, IV - See NOTES for options
 +device          iir        # Intel Integrated RAID
 +device          ips        # IBM (Adaptec) ServeRAID
 +device          mly        # Mylex AcceleRAID/eXtremeRAID
 +device          twa        # 3ware 9000 series PATA/SATA RAID
 +
 +# RAID controllers
 +device          aac        # Adaptec FSA RAID
 +device          aacp       # SCSI passthrough for aac (requires CAM)
 +device          ida        # Compaq Smart RAID
 +device          mlx        # Mylex DAC960 family
 +device          pst        # Promise Supertrak SX6000
 +device          twe        # 3ware ATA RAID</programlisting>
  
      <para>Supported RAID controllers.  If you do not have any of these,
        you can comment them out or remove them.</para>
  
      <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse
 -device          atkbdc0    at isa? port IO_KBD</programlisting>
 +device          atkbdc     # AT keyboard controller</programlisting>
  
      <para>The keyboard controller (<literal>atkbdc</literal>) provides I/O
        services for the AT keyboard and PS/2 style pointing devices.  This
 @@ -1052,80 +1027,87 @@
        (<literal>atkbd</literal>) and the PS/2 pointing device driver
        (<literal>psm</literal>).</para>
  
 -    <programlisting>device          atkbd0     at atkbdc? irq 1</programlisting>
 +    <programlisting>device          atkbd      # AT keyboard</programlisting>
  
      <para>The <literal>atkbd</literal> driver, together with
        <literal>atkbdc</literal> controller, provides access to the AT 84
        keyboard or the AT enhanced keyboard which is connected to the AT
        keyboard controller.</para>
  
 -    <programlisting>device          psm0       at atkbdc? irq 12</programlisting>
 +    <programlisting>device          psm        # PS/2 mouse</programlisting>
  
      <para>Use this device if your mouse plugs into the PS/2 mouse
        port.</para>
  
 -    <programlisting>device          vga0        at isa?</programlisting>
 +    <programlisting>device          vga        # VGA video card driver</programlisting>
  
      <para>The video card driver.</para>
  
      <programlisting># splash screen/screen saver
 -device          splash</programlisting>
 +device          splash     # Splash screen and screen saver support</programlisting>
  
      <para>Splash screen at start up!  Screen savers require this
        too.  Use the line <literal>pseudo-device splash</literal> with
        &os;&nbsp;4.X.</para>
  
      <programlisting># syscons is the default console driver, resembling an SCO console
 -device          sc0          at isa?</programlisting>
 +device          sc</programlisting>
  
 -    <para><literal>sc0</literal> is the default console driver, which
 +    <para><literal>sc</literal> is the default console driver, which
        resembles a SCO console.  Since most full-screen programs access the
        console through a terminal database library like
        <filename>termcap</filename>, it should not matter whether you use
 -      this or <literal>vt0</literal>, the <literal>VT220</literal>
 +      this or <literal>vt</literal>, the <literal>VT220</literal>
        compatible console driver.  When you log in, set your
        <envar>TERM</envar> variable to <literal>scoansi</literal> if
        full-screen programs have trouble running under this console.</para>
  
 -    <programlisting># Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
 -#device          vt0     at isa?
 +    <programlisting># Enable this for the pcvt (VT220 compatible) console driver
 +#device          vt
  #options         XSERVER          # support for X server on a vt console
 -#options         FAT_CURSOR       # start with block cursor
 -# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
 -#options         PCVT_SCANSET=2   # IBM keyboards are non-std</programlisting>
 +#options         FAT_CURSOR       # start with block cursor</programlisting>
  
      <para>This is a VT220-compatible console driver, backward compatible to
        VT100/102.  It works well on some laptops which have hardware
 -      incompatibilities with <literal>sc0</literal>.  Also set your
 +      incompatibilities with <literal>sc</literal>.  Also set your
        <envar>TERM</envar> variable to <literal>vt100</literal> or
        <literal>vt220</literal> when you log in.  This driver might also
        prove useful when connecting to a large number of different machines
        over the network, where <filename>termcap</filename> or
 -      <filename>terminfo</filename> entries for the <literal>sc0</literal>
 +      <filename>terminfo</filename> entries for the <literal>sc</literal>
        device are often not available &mdash; <literal>vt100</literal>
        should be available on virtually any platform.</para>
  
 -    <programlisting># Power management support (see LINT for more options)
 -device          apm0     at nexus? disable flags 0x20  # Advanced Power Management</programlisting>
 +    <programlisting># Power management support (see NOTES for more options)
 +#device          apm</programlisting>
  
      <para>Advanced Power Management support.  Useful for laptops.</para>
  
 +    <note>
 +      <para>In &os; 5.X and above this is disabled in
 +        <filename>GENERIC</filename> by default.</para>
 +    </note>
 +
 +    <programlisting># Add suspend/resume support for the i8254.
 +device           pmtimer</programlisting>
 +
 +    <para>Timer device driver for power management events, such as APM and
 +      ACPI.</para>
 +
      <programlisting># PCCARD (PCMCIA) support
 -device          card
 -device          pcic0    at isa? irq 10 port 0x3e0 iomem 0xd0000
 -device          pcic1    at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting>
 +# PCMCIA and cardbus bridge support
 +device          cbb               # cardbus (yenta) bridge
 +device          pccard            # PC Card (16-bit) bus
 +device          cardbus           # CardBus (32-bit) bus</programlisting>
  
      <para>PCMCIA support.  You want this if you are using a
        laptop.</para>
  
      <programlisting># Serial (COM) ports
 -device          sio0     at isa? port IO_COM1 flags 0x10 irq 4
 -device          sio1     at isa? port IO_COM2 irq 3
 -device          sio2     at isa? disable port IO_COM3 irq 5
 -device          sio3     at isa? disable port IO_COM4 irq 9</programlisting>
 +device          sio               # 8250, 16[45]50 based serial ports</programlisting>
  
 -    <para>These are the four serial ports referred to as <devicename>COM1</devicename> through <devicename>COM4</devicename>
 -      in the &ms-dos/&windows; world.</para>
 +    <para>These are the serial ports referred to as <devicename>COM</devicename> ports
 +      in the &ms-dos;/&windows; world.</para>
  
      <note>
        <para>If you have an internal modem on <devicename>COM4</devicename> and a serial port at
 @@ -1146,7 +1128,7 @@
      </note>
  
      <programlisting># Parallel port
 -device          ppc0    at isa? irq 7</programlisting>
 +device          ppc</programlisting>
  
      <para>This is the ISA-bus parallel port interface.</para>
  
 @@ -1179,17 +1161,24 @@
        <literal>scbus</literal> and <literal>da</literal> support.  Best
        performance is achieved with ports in EPP 1.9 mode.</para>
  
 +    <programlisting>#device         puc</programlisting>
 +
 +    <para>Uncomment this device if you have a <quote>dumb</quote> serial or
 +      parallel PCI card that is supported by the &man.puc.4 glue driver.
 +      </para>
 +
      <programlisting># PCI Ethernet NICs.
  device          de         # DEC/Intel DC21x4x (<quote>Tulip</quote>)
 -device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
 -device          tx         # SMC 9432TX (83c170 <quote>EPIC</quote>)
 -device          vx         # 3Com 3c590, 3c595 (<quote>Vortex</quote>)
 -device          wx         # Intel Gigabit Ethernet Card (<quote>Wiseman</quote>)</programlisting>
 +device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
 +device          ixgb       # Intel PRO/10GbE Ethernet Card
 +device          txp        # 3Com 3cR990 (<quote>Typhoon</quote>)
 +device          vx         # 3Com 3c590, 3c595 (<quote>Vortex</quote>)</programlisting>
  
      <para>Various PCI network card drivers.  Comment out or remove any of
        these not present in your system.</para>
  
      <programlisting># PCI Ethernet NICs that use the common MII bus controller code.
 +# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
  device          miibus     # MII bus support</programlisting>
  
      <para>MII bus support is required for some PCI 10/100 Ethernet NICs,
 @@ -1201,45 +1190,69 @@
        by an individual driver.</para>
  
      <programlisting>device          dc         # DEC/Intel 21143 and various workalikes
 +device          miibus     # MII bus support
 +device          bfe        # Broadcom BCM440x 10/100 Ethernet
 +device          bge        # Broadcom BCM570xx Gigabit Ethernet
 +device          dc         # DEC/Intel 21143 and various workalikes
 +device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
 +device          pcn        # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
 +device          re         # RealTek 8139C+/8169/8169S/8110S
  device          rl         # RealTek 8129/8139
  device          sf         # Adaptec AIC-6915 (<quote>Starfire</quote>)
  device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
 +device          sk         # SysKonnect SK-984x & SK-982x gigabit Ethernet
  device          ste        # Sundance ST201 (D-Link DFE-550TX)
 +device          ti         # Alteon Networks Tigon I/II gigabit Ethernet
  device          tl         # Texas Instruments ThunderLAN
 +device          tx         # SMC EtherPower II (83c170 <quote>EPIC</quote>)
  device          vr         # VIA Rhine, Rhine II
  device          wb         # Winbond W89C840F
  device          xl         # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting>
  
      <para>Drivers that use the MII bus controller code.</para>
  
 -    <programlisting># ISA Ethernet NICs.
 -device          ed0    at isa? port 0x280 irq 10 iomem 0xd8000
 -device          ex
 -device          ep
 -# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
 -# exists only as a PCMCIA device, so there is no ISA attachment needed
 -# and resources will always be dynamically assigned by the pccard code.
 -device          wi
 -# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
 -# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
 -# mode (the factory default). If you set the switches on your ISA
 -# card for a manually chosen I/O address and IRQ, you must specify
 -# those parameters here.
 -device          an
 -# The probe order of these is presently determined by i386/isa/isa_compat.c.
 -device          ie0    at isa? port 0x300 irq 10 iomem 0xd0000
 -device          fe0    at isa? port 0x300
 -device          le0    at isa? port 0x300 irq 5 iomem 0xd0000
 -device          lnc0   at isa? port 0x280 irq 10 drq 0
 -device          cs0    at isa? port 0x300
 -device          sn0    at isa? port 0x300 irq 10
 -# requires PCCARD (PCMCIA) support to be activated
 -#device         xe0    at isa?</programlisting>
 +    <programlisting># ISA Ethernet NICs.  pccard NICs included.
 +device          cs         # Crystal Semiconductor CS89x0 NIC
 +# 'device ed' requires 'device miibus'
 +device          ed         # NE[12]000, SMC Ultra, 3c503, DS8390 cards
 +device          ex         # Intel EtherExpress Pro/10 and Pro/10+
 +device          ep         # Etherlink III based cards
 +device          fe         # Fujitsu MB8696x based cards
 +device          ie         # EtherExpress 8/16, 3C507, StarLAN 10 etc.
 +device          lnc        # NE2100, NE32-VL Lance Ethernet cards
 +device          sn         # SMC's 9000 series of Ethernet chips
 +device          xe         # Xircom pccard Ethernet
 +
 +# ISA devices that use the old ISA shims
 +#device         le</programlisting>
  
      <para>ISA Ethernet drivers.  See
 -      <filename>/usr/src/sys/i386/conf/LINT</filename> for which cards are
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename> for which cards are
        supported by which driver.</para>
  
 +    <programlisting># Wireless NIC cards
 +device          wlan       # 802.11 support
 +device          an         # Aironet 4500/4800 802.11 wireless NICs.
 +device          awi        # BayStack 660 and others
 +device          wi         # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
 +#device         wl         # Older non 802.11 Wavelan wireless NIC.</programlisting>
 +
 +    <para>Support for various Wireless NIC cards.</para>
 +
 +    <programlisting>device   mem           # Memory and kernel memory devices</programlisting>
 +
 +    <para>The system memory devices.</para>
 +
 +    <programlisting>device   io            # I/O device</programlisting>
 +
 +    <para>This option allows a process to gain I/O privileges. This is
 +      useful in order to write userland programs that can handle hardware
 +      directly.</para>
 +
 +    <programlisting>device   random        # Entropy device</programlisting>
 +
 +    <para>Cryptographically secure random number generator.</para>
 +
      <programlisting>device   ether         # Ethernet support</programlisting>
  
      <para><literal>ether</literal> is only needed if you have an Ethernet
 @@ -1247,7 +1260,7 @@
        &os;&nbsp;4.X use the line <literal>pseudo-device
        ether</literal>.</para>
  
 -    <programlisting>device   sl      1     # Kernel SLIP</programlisting>
 +    <programlisting>device   sl            # Kernel SLIP</programlisting>
  
      <para><literal>sl</literal> is for SLIP support.  This has been almost
        entirely supplanted by PPP, which is easier to set up, better suited
 @@ -1257,7 +1270,7 @@
        With &os;&nbsp;4.X use the line <literal>pseudo-device
        sl</literal>.</para>
  
 -    <programlisting>device   ppp     1     # Kernel PPP</programlisting>
 +    <programlisting>device   ppp           # Kernel PPP</programlisting>
  
      <para>This is for kernel PPP support for dial-up connections.  There
        is also a version of PPP implemented as a userland application that
 @@ -1297,7 +1310,7 @@
      <para>Memory disk pseudo-devices.  With &os;&nbsp;4.X use the
        line <literal>pseudo-device md</literal>.</para>
  
 -    <programlisting>device   gif     # IPv6 and IPv4 tunneling</programlisting>
 +    <programlisting>device   gif           # IPv6 and IPv4 tunneling</programlisting>
  
      <para>This implements IPv6 over IPv4 tunneling, IPv4 over IPv6 tunneling,
        IPv4 over IPv4 tunneling, and IPv6 over IPv6 tunneling.  Beginning with
 @@ -1308,7 +1321,7 @@
        &os;&nbsp;4.X require a number, for example
        <literal>pseudo-device gif 4</literal>.</para>
  
 -    <programlisting>device   faith   # IPv6-to-IPv4 relaying (translation)</programlisting>
 +    <programlisting>device   faith         # IPv6-to-IPv4 relaying (translation)</programlisting>
  
      <para>This pseudo-device captures packets that are sent to it and
        diverts them to the IPv4/IPv6 translation daemon.  With
 @@ -1336,23 +1349,35 @@
      <programlisting># USB support
  #device         uhci          # UHCI PCI-&gt;USB interface
  #device         ohci          # OHCI PCI-&gt;USB interface
 -#device         usb           # USB Bus (required)
 -#device         ugen          # Generic
 -#device         uhid          # <quote>Human Interface Devices</quote>
 -#device         ukbd          # Keyboard
 -#device         ulpt          # Printer
 -#device         umass         # Disks/Mass storage - Requires scbus and da
 -#device         ums           # Mouse
 +device          usb           # USB Bus (required)
 +#device         udbp          # USB Double Bulk Pipe devices
 +device          ugen          # Generic
 +device          uhid          # <quote>Human Interface Devices</quote>
 +device          ukbd          # Keyboard
 +device          ulpt          # Printer
 +device          umass         # Disks/Mass storage - Requires scbus and da
 +device          ums           # Mouse
 +device          urio          # Diamond Rio 500 MP3 player
 +device          uscanner      # Scanners
  # USB Ethernet, requires mii
 -#device         aue           # ADMtek USB ethernet
 -#device         cue           # CATC USB ethernet
 -#device         kue           # Kawasaki LSI USB ethernet</programlisting>
 +device          aue           # ADMtek USB Ethernet
 +device          axe           # ASIX Electronics USB Ethernet
 +device          cue           # CATC USB Ethernet
 +device          kue           # Kawasaki LSI USB Ethernet
 +device          rue           # RealTek RTL8150 USB Ethernet</programlisting>
  
      <para>Support for various USB devices.</para>
  
 +    <programlisting># FireWire support
 +device          firewire      # FireWire bus code
 +device          sbp           # SCSI over FireWire (Requires scbus and da)
 +device          fwe           # Ethernet over FireWire (non-standard!)</programlisting>
 +
 +    <para>Support for various Firewire devices.</para>
 +
      <para>For more information and additional devices supported by
        &os;, see
 -      <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
 +      <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
  
        <sect2>
          <title>Large Memory Configurations (<acronym>PAE</acronym>)</title>
 
 --=-muoGiSqFEkkcjaNplKgf--
 

From: Joel Dahl <joel@automatvapen.se>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: docs/70674: [PATCH] Update handbook to match 5.3R (8.4 - The
	Configuration File)
Date: Wed, 08 Sep 2004 17:35:40 +0200

 Two late comments:
 
 #1
 SCHED_4BSD will replace SCHED_ULE in RELENG_5. SCHED_ULE is described in
 the patch, so we need to change this.
 
 #2
 PFIL_HOOKS has been removed from GENERIC in HEAD (a while ago). I don't
 know if this is going to be MFC'd.
 
State-Changed-From-To: open->closed 
State-Changed-By: ceri 
State-Changed-When: Fri Sep 10 19:13:31 GMT 2004 
State-Changed-Why:  
Committed in revision 1.135; thanks very much! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=70674 
>Unformatted:
