Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jan 2013 14:24:59 +0000 (UTC)
From:      Dru Lavigne <dru@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r40820 - head/en_US.ISO8859-1/books/handbook/kernelconfig
Message-ID:  <201301301424.r0UEOxx2064598@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dru
Date: Wed Jan 30 14:24:59 2013
New Revision: 40820
URL: http://svnweb.freebsd.org/changeset/doc/40820

Log:
  White space fix only. Translators can ignore.
  
  Approved by: bcr (mentor)

Modified:
  head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml

Modified: head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml	Wed Jan 30 14:22:19 2013	(r40819)
+++ head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml	Wed Jan 30 14:24:59 2013	(r40820)
@@ -35,11 +35,12 @@
       <secondary>building a custom kernel</secondary>
     </indexterm>
 
-    <para>The kernel is the core of the &os; operating system.  It is
-      responsible for managing memory, enforcing security controls,
-      networking, disk access, and much more.  While more and more of &os;
-      becomes dynamically configurable it is still occasionally necessary to
-      reconfigure and recompile your kernel.</para>
+    <para>The kernel is the core of the &os; operating system.  It
+      is responsible for managing memory, enforcing security controls,
+      networking, disk access, and much more.  While more and more
+      of &os; becomes dynamically configurable it is still
+      occasionally necessary to reconfigure and recompile your
+      kernel.</para>
 
     <para>After reading this chapter, you will know:</para>
 
@@ -49,13 +50,13 @@
       </listitem>
 
       <listitem>
-	<para>How to write a kernel configuration file, or alter an existing
-	  configuration file.</para>
+	<para>How to write a kernel configuration file, or alter an
+	  existing configuration file.</para>
       </listitem>
 
       <listitem>
-	<para>How to use the kernel configuration file to create and build a
-	  new kernel.</para>
+	<para>How to use the kernel configuration file to create and
+	  build a new kernel.</para>
       </listitem>
 
       <listitem>
@@ -67,19 +68,20 @@
       </listitem>
     </itemizedlist>
 
-    <para>All of the commands listed within this chapter by way of example
-      should be executed as <username>root</username> in order to
-      succeed.</para>
+    <para>All of the commands listed within this chapter by way of
+      example should be executed as <username>root</username> in
+      order to succeed.</para>
   </sect1>
 
   <sect1 id="kernelconfig-custom-kernel">
     <title>Why Build a Custom Kernel?</title>
 
     <para>Traditionally, &os; has had what is called a
-      <quote>monolithic</quote> kernel.  This means that the kernel was one
-      large program, supported a fixed list of devices, and if you wanted to
-      change the kernel's behavior then you had to compile a new kernel, and
-      then reboot your computer with the new kernel.</para>
+      <quote>monolithic</quote> kernel.  This means that the kernel
+      was one large program, supported a fixed list of devices, and
+      if you wanted to change the kernel's behavior then you had to
+      compile a new kernel, and then reboot your computer with the
+      new kernel.</para>
 
     <para>Today, &os; is rapidly moving to a model where much of the
       kernel's functionality is contained in modules which can be
@@ -90,41 +92,43 @@
       necessary when the kernel was originally compiled.  This is
       known as a modular kernel.</para>
 
-    <para>Despite this, it is still necessary to carry out some static kernel
-      configuration.  In some cases this is because the functionality is so
-      tied to the kernel that it can not be made dynamically loadable.  In
-      others it may simply be because no one has yet taken the time to write a
-      dynamic loadable kernel module for that functionality.</para>
+    <para>Despite this, it is still necessary to carry out some
+      static kernel configuration.  In some cases this is because
+      the functionality is so tied to the kernel that it can not be
+      made dynamically loadable.  In others it may simply be because
+      no one has yet taken the time to write a dynamic loadable kernel
+      module for that functionality.</para>
 
-    <para>Building a custom kernel is one of the most important rites of
-      passage for advanced BSD users.  This process, while
+    <para>Building a custom kernel is one of the most important rites
+      of passage for advanced BSD users.  This process, while
       time consuming, will provide many benefits to your &os; system.
-      Unlike the <filename>GENERIC</filename> kernel, which must support a
-      wide range of hardware, a custom kernel only contains support for
-      <emphasis>your</emphasis> PC's hardware.  This has a number of
-      benefits, such as:</para>
+      Unlike the <filename>GENERIC</filename> kernel, which must
+      support a wide range of hardware, a custom kernel only contains
+      support for <emphasis>your</emphasis> PC's hardware.  This has
+      a number of benefits, such as:</para>
 
     <itemizedlist>
       <listitem>
-	<para>Faster boot time.  Since the kernel will only probe the
-	  hardware you have on your system, the time it takes your system to
-	  boot can decrease dramatically.</para>
+	<para>Faster boot time.  Since the kernel will only probe
+	  the hardware you have on your system, the time it takes
+	  your system to boot can decrease dramatically.</para>
       </listitem>
 
       <listitem>
-	<para>Lower memory usage.  A custom kernel often uses less memory
-	  than the <filename>GENERIC</filename> kernel by omitting unused
-	  features and device drivers.  This is important because the kernel
-	  code remains resident in physical memory at all times, preventing
-	  that memory from being used by applications.
-	  For this reason, a custom kernel is especially useful
-	  on a system with a small amount of RAM.</para>
+	<para>Lower memory usage.  A custom kernel often uses less
+	  memory than the <filename>GENERIC</filename> kernel by
+	  omitting unused features and device drivers.  This is
+	  important because the kernel code remains resident in
+	  physical memory at all times, preventing that memory from
+	  being used by applications.  For this reason, a custom
+	  kernel is especially useful on a system with a small amount
+	  of RAM.</para>
       </listitem>
 
       <listitem>
-	<para>Additional hardware support.  A custom kernel allows you to
-	  add in support for devices which are not
-	  present in the <filename>GENERIC</filename> kernel, such as
+	<para>Additional hardware support.  A custom kernel allows
+	  you to add in support for devices which are not present
+	  in the <filename>GENERIC</filename> kernel, such as
 	  sound cards.</para>
       </listitem>
     </itemizedlist>
@@ -142,11 +146,11 @@
     </sect1info>
     <title>Finding the System Hardware</title>
 
-    <para>Before venturing into kernel configuration, it would be wise
-      to get an inventory of the machine's hardware.  In cases where
-      &os; is not the primary operating system, the inventory list may
-      easily be created by viewing the current operating system
-      configuration.  For example, &microsoft;'s
+    <para>Before venturing into kernel configuration, it would be
+      wise to get an inventory of the machine's hardware.  In cases
+      where &os; is not the primary operating system, the inventory
+      list may easily be created by viewing the current operating
+      system configuration.  For example, &microsoft;'s
       <application>Device Manager</application> normally contains
       important information about installed devices.  The
       <application>Device Manager</application> is located in the
@@ -162,10 +166,11 @@
     <para>If another operating system does not exist on the machine,
       the administrator must find this information out manually.  One
       method is using the &man.dmesg.8; utility and the &man.man.1;
-      commands.  Most device drivers on &os; have a manual page, listing
-      supported hardware, and during the boot probe, found hardware
-      will be listed.  For example, the following lines indicate that
-      the <devicename>psm</devicename> driver found a mouse:</para>
+      commands.  Most device drivers on &os; have a manual page,
+      listing supported hardware, and during the boot probe, found
+      hardware will be listed.  For example, the following lines
+      indicate that the <devicename>psm</devicename> driver found
+      a mouse:</para>
 
     <programlisting>psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
 psm0: [GIANT-LOCKED]
@@ -194,8 +199,8 @@ psm0: model Generic PS/2 mouse, device I
       <command>pciconf <option>-lv</option></command> shows that the
       <devicename>ath</devicename> driver located a wireless Ethernet
       device.  Using
-      <command>man <replaceable>ath</replaceable></command> will return
-      the &man.ath.4; manual page.</para>
+      <command>man <replaceable>ath</replaceable></command> will
+      return the &man.ath.4; manual page.</para>
 
     <para>The <option>-k</option> flag, when passed to &man.man.1;
       can also be used to provide useful information.  From the
@@ -209,12 +214,13 @@ psm0: model Generic PS/2 mouse, device I
     <programlisting>ath(4)                   - Atheros IEEE 802.11 wireless network driver
 ath_hal(4)               - Atheros Hardware Access Layer (HAL)</programlisting>
 
-    <para>Armed with a hardware inventory list, the process of building
-      a custom kernel should appear less daunting.</para>
+    <para>Armed with a hardware inventory list, the process of
+      building a custom kernel should appear less daunting.</para>
   </sect1>
 
   <sect1 id="kernelconfig-modules">
     <title>Kernel Drivers, Subsystems, and Modules</title>
+
     <indexterm>
       <primary>kernel</primary>
       <secondary>drivers / modules / subsystems</secondary>
@@ -238,30 +244,33 @@ following line in &man.loader.conf.5;:
 
     if_ath_load="YES"</programlisting>
 
-    <para>As instructed, adding the <literal>if_ath_load="YES"</literal>
-      line to the <filename>/boot/loader.conf</filename> file will
+    <para>As instructed, adding the
+      <literal>if_ath_load="YES"</literal> line to the
+      <filename>/boot/loader.conf</filename> file will
       enable loading this module dynamically at boot time.</para>
 
-    <para>In some cases; however, there is no associated module.  This
-      is mostly true for certain subsystems and very important drivers,
-      for instance, the fast file system (<acronym>FFS</acronym>) is a
-      required option in the kernel.  As is network support (INET).
-      Unfortunately the only way to tell if a driver is required is to
-      check for the module itself.</para>
+    <para>In some cases; however, there is no associated module.
+      This is mostly true for certain subsystems and very important
+      drivers, for instance, the fast file system
+      (<acronym>FFS</acronym>) is a required option in the kernel.
+      As is network support (INET).  Unfortunately the only way to
+      tell if a driver is required is to check for the module
+      itself.</para>
 
     <warning>
       <para>It is easy to remove support for a
-        device or option and end up with a broken kernel.  For example, if
-        the &man.ata.4; driver is removed from the kernel configuration
-        file, a system using <acronym>ATA</acronym> disk drivers may
-        not boot without the module added to
-        <filename>loader.conf</filename>.  When in doubt, check for
-        the module and then just leave support in the kernel.</para>
+	device or option and end up with a broken kernel.  For
+	example, if the &man.ata.4; driver is removed from the kernel
+	configuration file, a system using <acronym>ATA</acronym>
+	disk drivers may not boot without the module added to
+	<filename>loader.conf</filename>.  When in doubt, check for
+	the module and then just leave support in the kernel.</para>
     </warning>
   </sect1>
 
   <sect1 id="kernelconfig-building">
     <title>Building and Installing a Custom Kernel</title>
+
     <indexterm>
       <primary>kernel</primary>
       <secondary>building / installing</secondary>
@@ -272,36 +281,38 @@ following line in &man.loader.conf.5;:
 	to build the kernel.</para>
     </note>
 
-    <para>First, let us take a quick tour of the kernel build directory.
-      All directories mentioned will be relative to the main
-      <filename>/usr/src/sys</filename> directory, which is also
-      accessible through the path name <filename>/sys</filename>.  There are a
-      number of subdirectories here representing different parts of the
-      kernel, but the most important for our purposes are
-      <filename><replaceable>arch</replaceable>/conf</filename>, where you
-      will edit your custom kernel configuration, and
-      <filename>compile</filename>, which is the staging area where your
-      kernel will be built.  <replaceable>arch</replaceable> represents
-      one of <filename>i386</filename>,
+    <para>First, let us take a quick tour of the kernel build
+      directory.  All directories mentioned will be relative to the
+      main <filename>/usr/src/sys</filename> directory, which is
+      also accessible through the path name <filename>/sys</filename>.
+      There are a number of subdirectories here representing different
+      parts of the kernel, but the most important for our purposes
+      are <filename><replaceable>arch</replaceable>/conf</filename>,
+      where you will edit your custom kernel configuration, and
+      <filename>compile</filename>, which is the staging area where
+      your kernel will be built.  <replaceable>arch</replaceable>
+      represents one of <filename>i386</filename>,
       <filename>amd64</filename>, <filename>ia64</filename>,
-      <filename>powerpc</filename>, <filename>sparc64</filename>, or
-      <filename>pc98</filename> (an alternative development branch of PC
-      hardware, popular in Japan).  Everything inside a particular
-      architecture's directory deals with that architecture only; the rest
-      of the code is machine independent code common to all platforms to which
-      &os; could potentially be ported.  Notice the logical organization of the
-      directory structure, with each supported device, file system, and
-      option in its own subdirectory.</para>
-
-    <para>The examples in this chapter assume that you are using the i386
-      architecture.  If your system has a different architecture you need
-      to change the path names accordingly.</para>
+      <filename>powerpc</filename>, <filename>sparc64</filename>,
+      or <filename>pc98</filename> (an alternative development branch
+      of PC hardware, popular in Japan).  Everything inside a
+      particular architecture's directory deals with that architecture
+      only; the rest of the code is machine independent code common
+      to all platforms to which &os; could potentially be ported.
+      Notice the logical organization of the directory structure,
+      with each supported device, file system, and option in its
+      own subdirectory.</para>
+
+    <para>The examples in this chapter assume that you are using
+      the i386 architecture.  If your system has a different
+      architecture you need to change the path names
+      accordingly.</para>
 
     <note>
       <para>If the directory <filename>/usr/src/</filename> does not
-	exist on your system (or if it is empty), then the sources have
-	not been installed.  The easiest way to install the full source
-	is to use &man.csup.1; as described in <xref
+	exist on your system (or if it is empty), then the sources
+	have not been installed.  The easiest way to install the full
+	source is to use &man.csup.1; as described in <xref
 	linkend="synching"/>.  You should also create a symlink to
 	<filename class="directory">/usr/src/sys/</filename>:</para>
 
@@ -309,30 +320,34 @@ following line in &man.loader.conf.5;:
     </note>
 
     <para>Next, change to the
-      <filename><replaceable>arch</replaceable>/conf</filename> directory
-      and copy the <filename>GENERIC</filename> configuration file to the
-      name you want to give your kernel.  For example:</para>
+      <filename><replaceable>arch</replaceable>/conf</filename>
+      directory and copy the <filename>GENERIC</filename>
+      configuration file to the name you want to give your kernel.
+      For example:</para>
 
     <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf</userinput>
 &prompt.root; <userinput>cp GENERIC <replaceable>MYKERNEL</replaceable></userinput></screen>
 
-    <para>Traditionally, this name is in all capital letters and, if you
-      are maintaining multiple &os; machines with different hardware,
-      it is a good idea to name it after your machine's hostname.  We will
-      call it <filename><replaceable>MYKERNEL</replaceable></filename> for the
-      purpose of this example.</para>
+    <para>Traditionally, this name is in all capital letters and,
+      if you are maintaining multiple &os; machines with different
+      hardware, it is a good idea to name it after your machine's
+      hostname.  We will call it
+      <filename><replaceable>MYKERNEL</replaceable></filename> for
+      the purpose of this example.</para>
 
     <tip>
       <para>Storing your kernel configuration file directly under
 	<filename>/usr/src</filename> can be a bad idea.  If you are
 	experiencing problems it can be tempting to just delete
-	<filename>/usr/src</filename> and start again.  After doing this,
-	it usually only takes a few seconds for
+	<filename>/usr/src</filename> and start again.  After doing
+	this, it usually only takes a few seconds for
 	you to realize that you have deleted your custom kernel
-	configuration file.  Also, do not edit <filename>GENERIC</filename>
-	directly, as it may get overwritten the next time you
-	<link linkend="updating-upgrading">update your source tree</link>, and
-	your kernel modifications will be lost.</para>
+	configuration file.  Also, do not edit
+	<filename>GENERIC</filename> directly, as it may get
+	overwritten the next time you
+	<link linkend="updating-upgrading">update your source
+	  tree</link>,
+	and your kernel modifications will be lost.</para>
 
       <para>You might want to keep your kernel configuration file
 	elsewhere, and then create a symbolic link to the file in
@@ -347,37 +362,40 @@ following line in &man.loader.conf.5;:
 &prompt.root; <userinput>ln -s /root/kernels/<replaceable>MYKERNEL</replaceable></userinput></screen>
     </tip>
 
-    <para>Now, edit <filename><replaceable>MYKERNEL</replaceable></filename>
-      with your favorite text editor.  If you are just starting out, the only
-      editor available will probably be <application>vi</application>, which
-      is too complex to explain here, but is covered well in many books in
-      the <link linkend="bibliography">bibliography</link>.  However, &os; does
-      offer an easier editor called <application>ee</application> which, if
-      you are a beginner, should be your editor of choice.  Feel free to
-      change the comment lines at the top to reflect your configuration or
-      the changes you have made to differentiate it from
-      <filename>GENERIC</filename>.</para>
+    <para>Now, edit
+      <filename><replaceable>MYKERNEL</replaceable></filename>
+      with your favorite text editor.  If you are just starting out,
+      the only editor available will probably be
+      <application>vi</application>, which is too complex to explain
+      here, but is covered well in many books in the <link
+	linkend="bibliography">bibliography</link>.  However, &os;
+      does offer an easier editor called <application>ee</application>
+      which, if you are a beginner, should be your editor of choice.
+      Feel free to change the comment lines at the top to reflect
+      your configuration or the changes you have made to differentiate
+      it from <filename>GENERIC</filename>.</para>
     <indexterm><primary>SunOS</primary></indexterm>
 
     <para>If you have built a kernel under &sunos; or some other BSD
-      operating system, much of this file will be very familiar to you.
-      If you are coming from some other operating system such as DOS, on
-      the other hand, the <filename>GENERIC</filename> configuration file
-      might seem overwhelming to you, so follow the descriptions in the
+      operating system, much of this file will be very familiar to
+      you.  If you are coming from some other operating system such
+      as DOS, on the other hand, the <filename>GENERIC</filename>
+      configuration file might seem overwhelming to you, so follow
+      the descriptions in the
       <link linkend="kernelconfig-config">Configuration File</link>
       section slowly and carefully.</para>
 
     <note>
       <para>If you <link
-        linkend="updating-upgrading">sync your source tree</link> with the
-        latest sources of the &os; project,
-        be sure to always check the file
-        <filename>/usr/src/UPDATING</filename> before you perform any update
-        steps.  This file describes any important issues or areas
-        requiring special attention within the updated source code.
-        <filename>/usr/src/UPDATING</filename> always matches
-        your version of the &os; source, and is therefore more up to date
-        with new information than this handbook.</para>
+	  linkend="updating-upgrading">sync your source tree</link>
+	with the latest sources of the &os; project, be sure to always
+	check the file <filename>/usr/src/UPDATING</filename> before
+	you perform any update steps.  This file describes any
+	important issues or areas requiring special attention within
+	the updated source code.
+	<filename>/usr/src/UPDATING</filename> always matches
+	your version of the &os; source, and is therefore more up
+	to date with new information than this handbook.</para>
     </note>
 
     <para>You must now compile the source code for the kernel.</para>
@@ -386,13 +404,13 @@ following line in &man.loader.conf.5;:
       <title>Building a Kernel</title>
 
       <note>
-	<para>It is required to have the full &os; source tree installed
-	  to build the kernel.</para>
+	<para>It is required to have the full &os; source tree
+	  installed to build the kernel.</para>
       </note>
 
       <step>
 	<para>Change to the <filename
-	  class="directory">/usr/src</filename> directory:</para>
+	    class="directory">/usr/src</filename> directory:</para>
 
 	<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
       </step>
@@ -412,10 +430,11 @@ following line in &man.loader.conf.5;:
 
     <tip>
       <para>By default, when you build a custom kernel,
-	<emphasis>all</emphasis> kernel modules will be rebuilt as well.
-	If you want to update a kernel faster or to build only custom
-	modules, you should edit <filename>/etc/make.conf</filename>
-	before starting to build the kernel:</para>
+	<emphasis>all</emphasis> kernel modules will be rebuilt as
+	well.  If you want to update a kernel faster or to build only
+	custom modules, you should edit
+	<filename>/etc/make.conf</filename> before starting to build
+	the kernel:</para>
 
       <programlisting>MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting>
 
@@ -424,10 +443,10 @@ following line in &man.loader.conf.5;:
 
       <programlisting>WITHOUT_MODULES = linux acpi sound ntfs</programlisting>
 
-      <para>This variable sets up a list of top level modules to exclude
-	from the build process.  For other variables which you may find useful
-	in the process of building kernel, refer to &man.make.conf.5;
-	manual page.</para>
+      <para>This variable sets up a list of top level modules to
+	exclude from the build process.  For other variables which
+	you may find useful in the process of building kernel, refer
+	to &man.make.conf.5; manual page.</para>
     </tip>
 
     <indexterm>
@@ -435,24 +454,27 @@ following line in &man.loader.conf.5;:
     </indexterm>
 
     <para>The new kernel will be copied to the <filename
-        class="directory">/boot/kernel</filename> directory as
-      <filename>/boot/kernel/kernel</filename> and the old kernel will be moved
-      to <filename>/boot/kernel.old/kernel</filename>.  Now, shutdown the
-      system and reboot to use your new kernel.  If something goes wrong, there
-      are some <link linkend="kernelconfig-trouble">troubleshooting</link>
-      instructions at the end of this chapter that you may find useful.  Be
-      sure to read the section which explains how to recover in case your new
-      kernel <link linkend="kernelconfig-noboot">does not boot</link>.</para>
+	class="directory">/boot/kernel</filename> directory as
+      <filename>/boot/kernel/kernel</filename> and the old kernel
+      will be moved to <filename>/boot/kernel.old/kernel</filename>.
+      Now, shutdown the system and reboot to use your new kernel.
+      If something goes wrong, there are some <link
+	linkend="kernelconfig-trouble">troubleshooting</link>
+      instructions at the end of this chapter that you may find
+      useful.  Be sure to read the section which explains how to
+      recover in case your new kernel <link
+	linkend="kernelconfig-noboot">does not boot</link>.</para>
 
     <note>
       <para>Other files relating to the boot process, such as the boot
 	&man.loader.8; and configuration are stored in
 	<filename>/boot</filename>.  Third party or custom modules
-	can be placed in <filename class="directory">/boot/kernel</filename>,
-	although users should be aware that keeping modules in sync with the
-	compiled kernel is very important.  Modules not intended
-	to run with the compiled kernel may result in instability
-	or incorrectness.</para>
+	can be placed in <filename
+	  class="directory">/boot/kernel</filename>,
+	although users should be aware that keeping modules in sync
+	with the compiled kernel is very important.  Modules not
+	intended to run with the compiled kernel may result in
+	instability or incorrectness.</para>
     </note>
   </sect1>
 
@@ -467,6 +489,7 @@ following line in &man.loader.conf.5;:
       </authorgroup>
     </sect1info>
     <title>The Configuration File</title>
+
     <indexterm>
       <primary>kernel</primary>
       <secondary>NOTES</secondary>
@@ -484,19 +507,21 @@ following line in &man.loader.conf.5;:
       ignored.  The following sections describe each keyword, in
       the order they are listed in <filename>GENERIC</filename>.
       <anchor
-      id="kernelconfig-options"/> For an exhaustive list of architecture
-      dependent options and devices, see the <filename>NOTES</filename>
-      file in the same directory as the <filename>GENERIC</filename> file. For
-      architecture independent options, see
+      id="kernelconfig-options"/> For an exhaustive list of
+      architecture dependent options and devices, see the
+      <filename>NOTES</filename> file in the same directory as the
+      <filename>GENERIC</filename> file.  For architecture independent
+      options, see
       <filename>/usr/src/sys/conf/NOTES</filename>.</para>
 
     <para>An <literal>include</literal> directive is
       available for use in configuration files.  This allows another
-      configuration file to be logically included in the current one, making
-      it easy to maintain small changes relative to an existing file.  For
-      example, if you require a <filename>GENERIC</filename> kernel with
-      only a small number of additional options or drivers, this allows you
-      to maintain only a delta with respect to GENERIC:</para>
+      configuration file to be logically included in the current
+      one, making it easy to maintain small changes relative to an
+      existing file.  For example, if you require a
+      <filename>GENERIC</filename> kernel with only a small number
+      of additional options or drivers, this allows you to maintain
+      only a delta with respect to GENERIC:</para>
 
     <programlisting>include GENERIC
 ident MYKERNEL
@@ -504,19 +529,19 @@ ident MYKERNEL
 options         IPFIREWALL
 options         DUMMYNET
 options         IPFIREWALL_DEFAULT_TO_ACCEPT
-options         IPDIVERT
-</programlisting>
+options         IPDIVERT</programlisting>
 
-    <para>Many administrators will find that this model offers significant
-      benefits over the historic writing of configuration files from scratch:
-      the local configuration file will express only local differences from
-      a <filename>GENERIC</filename> kernel and as upgrades are performed,
-      new features added to <filename>GENERIC</filename> will be added to the
-      local kernel unless specifically prevented using
-      <literal>nooptions</literal> or <literal>nodevice</literal>.  The
-      remainder of this chapter addresses the contents of a typical
-      configuration file and the role various options and devices
-      play.</para>
+    <para>Many administrators will find that this model offers
+      significant benefits over the historic writing of configuration
+      files from scratch: the local configuration file will express
+      only local differences from a <filename>GENERIC</filename>
+      kernel and as upgrades are performed, new features added to
+      <filename>GENERIC</filename> will be added to the local kernel
+      unless specifically prevented using
+      <literal>nooptions</literal> or <literal>nodevice</literal>.
+      The remainder of this chapter addresses the contents of a
+      typical configuration file and the role various options and
+      devices play.</para>
 
     <note>
       <para>To build a file which contains all available options,
@@ -531,9 +556,10 @@ options         IPDIVERT
       <secondary>configuration file</secondary>
     </indexterm>
 
-    <para>The following is an example of the <filename>GENERIC</filename>
-      kernel configuration file with various additional comments where needed
-      for clarity.  This example should match your copy in
+    <para>The following is an example of the
+      <filename>GENERIC</filename> kernel configuration file with
+      various additional comments where needed for clarity.  This
+      example should match your copy in
       <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/GENERIC</filename>
       fairly closely.</para>
 
@@ -559,13 +585,13 @@ cpu          I586_CPU
 cpu          I686_CPU</programlisting>
 
     <para>The above option specifies the type of CPU you have in your
-      system.  You may have multiple instances of the CPU line (if, for
-      example, you are not sure whether you should use
+      system.  You may have multiple instances of the CPU line (if,
+      for example, you are not sure whether you should use
       <literal>I586_CPU</literal> or <literal>I686_CPU</literal>),
       but for a custom kernel it is best to specify only the CPU
-      you have.  If you are unsure of your CPU type, you can check the
-      <filename>/var/run/dmesg.boot</filename> file to view your boot
-      messages.</para>
+      you have.  If you are unsure of your CPU type, you can check
+      the <filename>/var/run/dmesg.boot</filename> file to view your
+      boot messages.</para>
 
     <indexterm>
       <primary>kernel options</primary>
@@ -576,12 +602,13 @@ cpu          I686_CPU</programlisting>
 
     <para>This is the identification of the kernel.  You should change
       this to whatever you named your kernel,
-      i.e., <literal><replaceable>MYKERNEL</replaceable></literal> if you have
-      followed the instructions of the previous examples.  The value you put
-      in the <literal>ident</literal> string will print when you boot up the
-      kernel, so it is useful to give the new kernel a different name if you
-      want to keep it separate from your usual kernel (e.g., you want to
-      build an experimental kernel).</para>
+      i.e., <literal><replaceable>MYKERNEL</replaceable></literal>
+      if you have followed the instructions of the previous examples.
+      The value you put in the <literal>ident</literal> string will
+      print when you boot up the kernel, so it is useful to give the
+      new kernel a different name if you want to keep it separate
+      from your usual kernel (e.g., you want to build an experimental
+      kernel).</para>
 
     <programlisting>#To statically compile in device wiring instead of /boot/device.hints
 #hints          "GENERIC.hints"         # Default places to look for devices.</programlisting>
@@ -613,14 +640,15 @@ cpu          I686_CPU</programlisting>
 
     <para>Allows threads that are in the kernel to be preempted
       by higher priority threads.  It helps with interactivity and
-      allows interrupt threads to run sooner rather than waiting.</para>
+      allows interrupt threads to run sooner rather than
+      waiting.</para>
 
     <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>
+    <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>
 
@@ -628,18 +656,18 @@ cpu          I686_CPU</programlisting>
 
     <programlisting>options          FFS               # Berkeley Fast Filesystem</programlisting>
 
-    <para>This is the basic hard drive file system.  Leave it in if you
-      boot from the hard disk.</para>
+    <para>This is the basic hard drive file system.  Leave it in if
+      you boot from the hard disk.</para>
 
     <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
       functionality is provided by the kernel, it must be turned on
-      for specific disks.  Review the output from &man.mount.8; to see
-      if Soft Updates is enabled for your system disks.  If you do not
-      see the <literal>soft-updates</literal> option then you will
-      need to activate it using the &man.tunefs.8; (for existing
+      for specific disks.  Review the output from &man.mount.8; to
+      see if Soft Updates is enabled for your system disks.  If you
+      do not see the <literal>soft-updates</literal> option then you
+      will need to activate it using the &man.tunefs.8; (for existing
       file systems) or &man.newfs.8; (for new file systems)
       commands.</para>
 
@@ -647,12 +675,13 @@ cpu          I686_CPU</programlisting>
 
     <para>This option enables kernel support
       for access control lists.  This relies on the use of extended
-      attributes and <acronym>UFS2</acronym>, and the feature is described
-      in detail in <xref linkend="fs-acl"/>.  <acronym>ACL</acronym>s are
-      enabled by default and should not be
-      disabled in the kernel if they have been used previously on a file
-      system, as this will remove the access control lists, changing the
-      way files are protected in unpredictable ways.</para>
+      attributes and <acronym>UFS2</acronym>, and the feature is
+      described in detail in <xref linkend="fs-acl"/>.
+      <acronym>ACL</acronym>s are enabled by default and should not
+      be disabled in the kernel if they have been used previously
+      on a file 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>
 
@@ -680,9 +709,9 @@ cpu          I686_CPU</programlisting>
 options          NFSSERVER         # Network Filesystem Server
 options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT</programlisting>
 
-    <para>The network file system.  Unless you plan to mount partitions
-      from a &unix; file server over TCP/IP, you can comment these
-      out.</para>
+    <para>The network file system.  Unless you plan to mount
+      partitions from a &unix; file server over TCP/IP, you can
+      comment these out.</para>
 
     <indexterm>
       <primary>kernel options</primary>
@@ -690,10 +719,11 @@ options          NFS_ROOT          # NFS
     </indexterm>
     <programlisting>options          MSDOSFS           # MSDOS Filesystem</programlisting>
 
-    <para>The &ms-dos; file system.  Unless you plan to mount a DOS formatted
-      hard drive partition at boot time, you can safely comment this out.
-      It will be automatically loaded the first time you mount a DOS
-      partition, as described above.  Also, the excellent
+    <para>The &ms-dos; file system.  Unless you plan to mount a DOS
+      formatted hard drive partition at boot time, you can safely
+      comment this out.  It will be automatically loaded the first
+      time you mount a DOS partition, as described above.  Also,
+      the excellent
       <filename role="package">emulators/mtools</filename> software
       allows you to access DOS floppies without having to mount and
       unmount them (and does not require <literal>MSDOSFS</literal> at
@@ -701,10 +731,11 @@ options          NFS_ROOT          # NFS
 
     <programlisting>options          CD9660            # ISO 9660 Filesystem</programlisting>
 
-    <para>The ISO 9660 file system 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 file system.</para>
+    <para>The ISO 9660 file system 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 file
+      system.</para>
 
     <programlisting>options          PROCFS            # Process filesystem (requires PSEUDOFS)</programlisting>
 
@@ -719,8 +750,8 @@ options          NFS_ROOT          # NFS
 
     <programlisting>options          PSEUDOFS          # Pseudo-filesystem framework</programlisting>
 
-      <para>Kernels making use of <literal>PROCFS</literal> must also
-        include support for <literal>PSEUDOFS</literal>.</para>
+      <para>Kernels making use of <literal>PROCFS</literal> must
+	also include support for <literal>PSEUDOFS</literal>.</para>
 
     <programlisting>options          GEOM_PART_GPT     # GUID Partition Tables.</programlisting>
 
@@ -732,8 +763,8 @@ options          NFS_ROOT          # NFS
 
     <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>
+    <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>
 
@@ -742,34 +773,35 @@ options          NFS_ROOT          # NFS
       that use older system call interfaces.  It is recommended that
       this option be used on all &i386; systems that may
       run older applications; platforms that gained support only in
-      5.X, such as ia64 and &sparc64;, do not require this option.</para>
+      5.X, such as ia64 and &sparc64;, do not require this
+      option.</para>
 
     <programlisting>options          COMPAT_FREEBSD5   # Compatible with &os;5</programlisting>
 
     <para>This option is required to
-      support applications compiled on &os;&nbsp;5.X versions that use
-      &os;&nbsp;5.X system call interfaces.</para>
+      support applications compiled on &os;&nbsp;5.X versions that
+      use &os;&nbsp;5.X system call interfaces.</para>
 
     <programlisting>options          COMPAT_FREEBSD6   # Compatible with &os;6</programlisting>
 
     <para>This option is required to
-      support applications compiled on &os;&nbsp;6.X versions that use
-      &os;&nbsp;6.X system call interfaces.</para>
+      support applications compiled on &os;&nbsp;6.X versions that
+      use &os;&nbsp;6.X system call interfaces.</para>
 
     <programlisting>options          COMPAT_FREEBSD7   # Compatible with &os;7</programlisting>
 
     <para>This option is required on &os;&nbsp;8 and above to
-      support applications compiled on &os;&nbsp;7.X versions that use
-      &os;&nbsp;7.X system call interfaces.</para>
+      support applications compiled on &os;&nbsp;7.X versions that
+      use &os;&nbsp;7.X system call interfaces.</para>
 
     <programlisting>options          SCSI_DELAY=5000  # Delay (in ms) before probing SCSI</programlisting>
 
     <para>This causes the kernel to pause for 5 seconds before probing
-      each SCSI device in your system.  If you only have IDE hard drives,
-      you can ignore this, otherwise you can try to lower this
-      number, to speed up booting.  Of course, if
-      you do this and &os; has trouble recognizing your SCSI devices,
-      you will have to raise it again.</para>
+      each SCSI device in your system.  If you only have IDE hard
+      drives, you can ignore this, otherwise you can try to lower
+      this number, to speed up booting.  Of course, if you do this
+      and &os; has trouble recognizing your SCSI devices, you will
+      have to raise it again.</para>
 
     <programlisting>options          KTRACE            # ktrace(1) support</programlisting>
 
@@ -778,11 +810,11 @@ options          NFS_ROOT          # NFS
 
     <programlisting>options          SYSVSHM           # SYSV-style shared memory</programlisting>
 
-    <para>This option provides for System&nbsp;V shared memory.  The most
-      common use of this is the XSHM extension in X, which many
-      graphics-intensive programs will automatically take advantage of for
-      extra speed.  If you use X, you will definitely want to include
-      this.</para>
+    <para>This option provides for System&nbsp;V shared memory.
+      The most common use of this is the XSHM extension in X, which
+      many graphics-intensive programs will automatically take
+      advantage of for extra speed.  If you use X, you will definitely
+      want to include this.</para>
 
     <programlisting>options          SYSVMSG           # SYSV-style message queues</programlisting>
 
@@ -791,12 +823,13 @@ options          NFS_ROOT          # NFS
 
     <programlisting>options          SYSVSEM           # SYSV-style semaphores</programlisting>
 
-    <para>Support for System&nbsp;V semaphores.  Less commonly used but only
-      adds a few hundred bytes to the kernel.</para>
+    <para>Support for System&nbsp;V semaphores.  Less commonly used
+      but only adds a few hundred bytes to the kernel.</para>
 
     <note>
-      <para>The <option>-p</option> option of the &man.ipcs.1; command will
-	list any processes using each of these System&nbsp;V facilities.</para>
+      <para>The <option>-p</option> option of the &man.ipcs.1;
+	command will list any processes using each of these
+	System&nbsp;V facilities.</para>
     </note>
 
     <programlisting>options 	     _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions</programlisting>
@@ -807,30 +840,32 @@ options          NFS_ROOT          # NFS
 
     <programlisting>options          KBD_INSTALL_CDEV  # install a CDEV entry in /dev</programlisting>
 
-    <para>This option is required to allow the creation of keyboard device
-      nodes in <filename>/dev</filename>.</para>
+    <para>This option is required to allow the creation of keyboard
+      device nodes in <filename>/dev</filename>.</para>
 
     <programlisting>options          ADAPTIVE_GIANT    # Giant mutex is adaptive.</programlisting>
 
-    <para>Giant is the name of a mutual exclusion mechanism (a sleep mutex)
-      that protects a large set of kernel resources.  Today, this is an
-      unacceptable performance bottleneck which is actively being replaced
-      with locks that protect individual resources.  The
-      <literal>ADAPTIVE_GIANT</literal> option causes Giant to be included
-      in the set of mutexes adaptively spun on.  That is, when a thread
-      wants to lock the Giant mutex, but it is already locked by a thread
-      on another CPU, the first thread will keep running and wait for the
-      lock to be released.  Normally, the thread would instead go back to
-      sleep and wait for its next chance to run.  If you are not sure,
-      leave this in.</para>
+    <para>Giant is the name of a mutual exclusion mechanism (a
+      sleep mutex)that protects a large set of kernel resources.
+      Today, this is an unacceptable performance bottleneck which
+      is actively being replaced with locks that protect individual
+      resources.  The <literal>ADAPTIVE_GIANT</literal> option causes
+      Giant to be included in the set of mutexes adaptively spun on.
+      That is, when a thread wants to lock the Giant mutex, but it
+      is already locked by a thread on another CPU, the first thread
+      will keep running and wait for the lock to be released.
+      Normally, the thread would instead go back to sleep and wait
+      for its next chance to run.  If you are not sure, leave this
+      in.</para>
 
     <note>
-      <para>Note that on &os; 8.0-RELEASE and later versions, all mutexes are
-	adaptive by default, unless explicitly set to non-adaptive by
-	compiling with the <literal>NO_ADAPTIVE_MUTEXES</literal> option.  As
-	a result, Giant is adaptive by default now, and the
-	<literal>ADAPTIVE_GIANT</literal> option has been removed from the
-	kernel configuration.</para>
+      <para>Note that on &os; 8.0-RELEASE and later versions, all
+	mutexes are adaptive by default, unless explicitly set to
+	non-adaptive by compiling with the
+	<literal>NO_ADAPTIVE_MUTEXES</literal> option.  As a result,
+	Giant is adaptive by default now, and the
+	<literal>ADAPTIVE_GIANT</literal> option has been removed
+	from the kernel configuration.</para>
     </note>
 
     <indexterm>
@@ -839,10 +874,11 @@ options          NFS_ROOT          # NFS
     </indexterm>
     <programlisting>device          apic               # I/O APIC</programlisting>
 
-    <para>The apic device enables the use of the I/O APIC for interrupt
-      delivery.  The apic device can be used in both UP and SMP kernels, but
-      is required for SMP kernels.  Add <literal>options SMP</literal> to
-      include support for multiple processors.</para>
+    <para>The apic device enables the use of the I/O APIC for
+      interrupt delivery.  The apic device can be used in both UP
+      and SMP kernels, but is required for SMP kernels.  Add
+      <literal>options SMP</literal> to include support for multiple
+      processors.</para>
 
     <note>
       <para>The apic device exists only on the i386 architecture, this
@@ -853,8 +889,8 @@ options          NFS_ROOT          # NFS
     <programlisting>device          eisa</programlisting>
 
     <para>Include this if you have an EISA motherboard.  This enables
-      auto-detection and configuration support for all devices on the EISA
-      bus.</para>
+      auto-detection and configuration support for all devices on
+      the EISA bus.</para>
 
     <programlisting>device          pci</programlisting>
 
@@ -870,35 +906,35 @@ device          fdc</programlisting>
     <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
-      PCI ATA/ATAPI devices on modern machines.</para>
+    <para>This driver supports all ATA and ATAPI devices.  You only
+      need one <literal>device ata</literal> line for the kernel to
+      detect all PCI ATA/ATAPI devices on modern machines.</para>
 
     <programlisting>device          atadisk                 # ATA disk drives</programlisting>
 
-    <para>This is needed along with <literal>device ata</literal> for
-      ATA disk drives.</para>
+    <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>
+    <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>
 
-    <para>This is needed along with <literal>device ata</literal> for
-      ATAPI CDROM drives.</para>
+    <para>This is needed along with <literal>device ata</literal>
+      for ATAPI CDROM drives.</para>
 
     <programlisting>device          atapifd                 # ATAPI floppy drives</programlisting>
 
-    <para>This is needed along with <literal>device ata</literal> for
-      ATAPI floppy drives.</para>
+    <para>This is needed along with <literal>device ata</literal>
+      for ATAPI floppy drives.</para>
 
     <programlisting>device          atapist                 # ATAPI tape drives</programlisting>
 
-    <para>This is needed along with <literal>device ata</literal> for
-      ATAPI tape drives.</para>
+    <para>This is needed along with <literal>device ata</literal>
+      for ATAPI tape drives.</para>
 
     <programlisting>options         ATA_STATIC_ID           # Static device numbering</programlisting>
 
@@ -945,8 +981,9 @@ device          cd         # CD
 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>
+    <para>SCSI peripherals.  Again, comment out any you do not have,
+      or if you have only IDE hardware, you can remove them
+      completely.</para>
 
     <note>
       <para>The USB &man.umass.4; driver and a few other drivers use
@@ -977,24 +1014,24 @@ device          mlx        # Mylex DAC96
 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>
+    <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          atkbdc     # AT keyboard controller</programlisting>

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301301424.r0UEOxx2064598>