docs/53315: [PATCH] remove extraneous whitespace at the end of lines in articles

Lukas Ertl l.ertl at univie.ac.at
Sat Jun 14 12:50:36 UTC 2003


>Number:         53315
>Category:       docs
>Synopsis:       [PATCH] remove extraneous whitespace at the end of lines in articles
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jun 14 05:50:11 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Lukas Ertl
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
Vienna University Computer Center
>Environment:
System: FreeBSD korben 5.1-CURRENT FreeBSD 5.1-CURRENT #10: Wed Jun 11 23:19:20 CEST 2003 le at korben:/usr/obj/usr/src/sys/KORBEN i386


	
>Description:
	
>How-To-Repeat:
	
>Fix:

This mega-patch removes extraneous whitespace at the end of lines in the
documentation articles.

--- articles.diff begins here ---
Index: en_US.ISO8859-1/articles//console-server/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/console-server/article.sgml,v
retrieving revision 1.12
diff -u -r1.12 article.sgml
--- en_US.ISO8859-1/articles//console-server/article.sgml	1 Feb 2003 17:49:28 -0000	1.12
+++ en_US.ISO8859-1/articles//console-server/article.sgml	14 Jun 2003 12:34:45 -0000
@@ -855,20 +855,20 @@
 printed labels *before* putting on the connectors is the best way I have
 seen for marking what they are.
 
-<li>You can also use Panduit or similar tags that 
-you put on with nylon tie straps, but I find the ink wears off the 
+<li>You can also use Panduit or similar tags that
+you put on with nylon tie straps, but I find the ink wears off the
 tags.
 </ul>
 
 <p>
 
-<dt>Cisco Catalyst switches 
-<dd> 
+<dt>Cisco Catalyst switches
+<dd>
 
 Astoundingly, the pinout on the console ports of the Catalysts is
 actually <em>different</em> to the pinout used on the 26xx-series
 Cisco hardware.  I think the way to tell which is which is by
-considering the operating software.  If it uses IOS, then the previous 
+considering the operating software.  If it uses IOS, then the previous
 pinout is required.  If it uses the switch software, then this pinout
 is required.
 
@@ -1066,7 +1066,7 @@
       <em>SSH</em> to log into to the server machine, and run the
       console client there.</p>
 
-    <h2><a name="conserver-versions">On Conserver Versions</a></h2> 
+    <h2><a name="conserver-versions">On Conserver Versions</a></h2>
 
     <p>The <code>conserver</code> program has fractured into a number
       of versions.  The home page referenced above seems to be the
Index: en_US.ISO8859-1/articles//contributing/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/contributing/article.sgml,v
retrieving revision 1.495
diff -u -r1.495 article.sgml
--- en_US.ISO8859-1/articles//contributing/article.sgml	1 Feb 2003 17:41:49 -0000	1.495
+++ en_US.ISO8859-1/articles//contributing/article.sgml	14 Jun 2003 12:34:50 -0000
@@ -66,7 +66,7 @@
 
   <sect1 id="contrib-what">
     <title>What Is Needed</title>
-    
+
     <para>The following list of tasks and sub-projects represents
       something of an amalgam of various <filename>TODO</filename>
       lists and user requests.</para>
@@ -118,7 +118,7 @@
     </sect2>
 
     <sect2 id="ongoing-programmer-tasks">
-      <title>Ongoing Programmer Tasks</title> 
+      <title>Ongoing Programmer Tasks</title>
         <para>Most of the tasks listed here require either a considerable
 	investment of time, or an in-depth knowledge of the FreeBSD
 	kernel, or both.  However, there are also many useful tasks
Index: en_US.ISO8859-1/articles//contributors/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/contributors/article.sgml,v
retrieving revision 1.399
diff -u -r1.399 article.sgml
--- en_US.ISO8859-1/articles//contributors/article.sgml	13 Jun 2003 18:34:16 -0000	1.399
+++ en_US.ISO8859-1/articles//contributors/article.sgml	14 Jun 2003 12:35:47 -0000
@@ -822,7 +822,7 @@
       <listitem>
   	<para>&a.cognet;</para>
       </listitem>
- 
+
       <listitem>
 	<para>&a.jeh;</para>
       </listitem>
@@ -1008,7 +1008,7 @@
       </listitem>
 
       <listitem>
-	<para>&a.arved;</para>         
+	<para>&a.arved;</para>
       </listitem>
 
       <listitem>
@@ -1110,7 +1110,7 @@
       <listitem>
 	<para>&a.emoore;</para>
       </listitem>
-      
+
       <listitem>
 	<para>&a.amorita;</para>
       </listitem>
@@ -5362,7 +5362,7 @@
       </listitem>
 
       <listitem>
-	<para>Kay Lehmann 
+	<para>Kay Lehmann
 	  <email>kay_lehmann at web.de</email></para>
       </listitem>
 
@@ -7669,7 +7669,7 @@
 	<para>Sebastian Strollo
 	  <email>seb at erix.ericsson.se</email></para>
       </listitem>
-      
+
       <listitem>
 	<para>Sebastian Yepes
 	  <email>esn at x123.info</email></para>
@@ -8289,7 +8289,7 @@
         <para>Tim Daneliuk
 	  <email>tundra at tundraware.com</email></para>
       </listitem>
-      
+
       <listitem>
 	<para>Tim Kientzle
 	  <email>kientzle at netcom.com</email></para>
Index: en_US.ISO8859-1/articles//cvsup-advanced/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/cvsup-advanced/article.sgml,v
retrieving revision 1.10
diff -u -r1.10 article.sgml
--- en_US.ISO8859-1/articles//cvsup-advanced/article.sgml	9 Dec 2002 23:28:21 -0000	1.10
+++ en_US.ISO8859-1/articles//cvsup-advanced/article.sgml	14 Jun 2003 12:35:52 -0000
@@ -26,7 +26,7 @@
 
     <abstract>
       <para>The present article assumes a basic understanding of <application>CVSup</application>
-        operation. It documents several delicate issues connected with 
+        operation. It documents several delicate issues connected with
 	source synchronization via <application>CVSup</application>, viz. effective solutions to
 	the problem of stale files as well as special source updating
 	cases; which issues are likely to cause apparently inexplicable
@@ -36,17 +36,17 @@
 
   <sect1 id="preface">
     <title>Preface</title>
-    
-      <para>This document is the fruit of the author's attempts to    
+
+      <para>This document is the fruit of the author's attempts to
 	fully understand the niceties of <application>CVSup</application> & source updating. :-)
-	While the author has made every effort to make these pages 
-        as informative and correct as possible, he is only human and 
+	While the author has made every effort to make these pages
+        as informative and correct as possible, he is only human and
 	may have made all sorts of typos, mistakes, etc.  He will be
 	very grateful for any comments and/or suggestions you send to
 	his e-mail address, <email>bartequi at neomedia.it</email>.</para>
   </sect1>
 
- 
+
   <sect1 id="introduction">
     <title>Introduction</title>
 
@@ -57,7 +57,7 @@
 FAQ</ulink>,
         you may have noticed Question 12 & 13.</para>
 
-      <para>When updating any collection of sources (eg 
+      <para>When updating any collection of sources (eg
 	<filename>/usr/ports</filename>), &man.cvsup.1; makes use of
 	the related checkouts file in order to perform the updating
 	process in the most efficient and correct way.  In this example
@@ -66,12 +66,12 @@
         your base is <filename>/usr</filename>.</para>
 
       <para>A checkouts file contains information on the current status
-	of your sources—in a way, a sort of <quote>photograph</quote>. This 
+	of your sources—in a way, a sort of <quote>photograph</quote>. This
 	significant information enables <command>cvsup</command> to retrieve updates most
 	effectively. Further, and maybe more important, it enables <command>cvsup</command>
 	to correctly manage your sources by locally deleting any files
 	no longer present in the repository, thus leaving no stale files
-	on your system. In fact, without a checkouts file, <command>cvsup</command> would 
+	on your system. In fact, without a checkouts file, <command>cvsup</command> would
 	<emphasis>not</emphasis> know which files your collection was composed of (cf
         &man.cvsup.1; and the fallback method for details); as a result,
 	it could not delete on your system those files no longer present
@@ -89,9 +89,9 @@
   <sect1 id="script">
     <title>A useful python script: <command>cvsupchk</command></title>
 
-      <para>Alternatively, in order to examine your sources for 
-	inconsistencies, you may wish to utilize the <command>cvsupchk</command> python 
-	script; which script is currently found in 
+      <para>Alternatively, in order to examine your sources for
+	inconsistencies, you may wish to utilize the <command>cvsupchk</command> python
+	script; which script is currently found in
 	<filename>/usr/ports/net/cvsup/work/cvsup-16.1/contrib/cvsupchk</filename>,
 	together with a nice <filename>README</filename>. Prerequisites:</para>
 
@@ -121,9 +121,9 @@
 
         <screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/src-all/checkouts.cvs:RELENG_4 | more</userinput></screen>
 
-      <para>In each case, <command>cvsupchk</command> will inspect your sources for 
-	inconsistencies by utilizing the information contained in the 
-	related checkouts file.  Such anomalies as deleted files being 
+      <para>In each case, <command>cvsupchk</command> will inspect your sources for
+	inconsistencies by utilizing the information contained in the
+	related checkouts file.  Such anomalies as deleted files being
 	present (aka stale files), missing checked-out files, extra RCS
 	files, and dead directories will be printed to standard output.</para>
 
@@ -141,15 +141,15 @@
 <literal>src-all</literal></title>
 
         <para>If you specify eg <literal>tag=A</literal> in your <filename>supfile</filename>, <command>cvsup</command> will create
-	  a checkouts file called <filename>checkouts.cvs:A</filename>: 
+	  a checkouts file called <filename>checkouts.cvs:A</filename>:
 	  for instance, if <literal>tag=RELENG_4</literal>, a checkouts file called
-          <filename>checkouts.cvs:RELENG_4</filename> is generated. 
+          <filename>checkouts.cvs:RELENG_4</filename> is generated.
            This file will be used to retrieve and/or store information
            identifying your 4-STABLE sources.</para>
 
          <para>When tracking <literal>src-all</literal>, if you wish to
-	   pass from <literal>tag=A</literal> to <literal>tag=B</literal> (A less/greater than B not making 
-	   any difference) and if your checkouts file is 
+	   pass from <literal>tag=A</literal> to <literal>tag=B</literal> (A less/greater than B not making
+	   any difference) and if your checkouts file is
 	   <filename>checkouts.cvs:A</filename>, the following actions
 	   should be performed:</para>
 
@@ -172,8 +172,8 @@
             </orderedlist>
 
          <para>The <command>cvsup</command> utility will look for <filename>checkouts.cvs:B</filename>—in
-	   that the target is B; that is, <command>cvsup</command> will make use of 
-	   the information contained therein to correctly manage your 
+	   that the target is B; that is, <command>cvsup</command> will make use of
+	   the information contained therein to correctly manage your
 	   sources.</para>
 
          <para>The benefits:</para>
@@ -185,17 +185,17 @@
               </listitem>
 
               <listitem>
-                <para>less load is placed on the server, in that <command>cvsup</command> 
+                <para>less load is placed on the server, in that <command>cvsup</command>
 		  operates in the most efficient way.</para>
               </listitem>
            </itemizedlist>
 
 
-         <para>For example, <literal>A=RELENG_4</literal>, <literal>B=.</literal>.  The period in <literal>B=.</literal> means 
-	   -CURRENT.  This is a rather typical update, from 4-STABLE 
-	   to -CURRENT. While it is straightforward to <quote>downgrade</quote> your 
-	   sources (eg from -CURRENT to -STABLE), downgrading a system 
-	   is quite another matter. You are STRONGLY advised not to 
+         <para>For example, <literal>A=RELENG_4</literal>, <literal>B=.</literal>.  The period in <literal>B=.</literal> means
+	   -CURRENT.  This is a rather typical update, from 4-STABLE
+	   to -CURRENT. While it is straightforward to <quote>downgrade</quote> your
+	   sources (eg from -CURRENT to -STABLE), downgrading a system
+	   is quite another matter. You are STRONGLY advised not to
 	   attempt such an operation, unless you know exactly what you
 	   are doing.</para>
        </sect2>
@@ -203,8 +203,8 @@
        <sect2>
          <title>Updating to the same tag as of a different date</title>
 
-         <para>If you wish to switch from <literal>tag=A</literal> to <literal>tag=A</literal> as of a 
-	   different GMT date (say, <literal>date=D</literal>), you will execute the 
+         <para>If you wish to switch from <literal>tag=A</literal> to <literal>tag=A</literal> as of a
+	   different GMT date (say, <literal>date=D</literal>), you will execute the
 	   following:</para>
 
            <orderedlist>
@@ -219,25 +219,25 @@
            </orderedlist>
 
          <para>Whether the new date precedes that of the last sync
-	   operation with <literal>tag=A</literal> or not, it is immaterial. For example, 
-	   in order to specify the date <quote>August 27, 2000, 10:00:00 GMT</quote> 
+	   operation with <literal>tag=A</literal> or not, it is immaterial. For example,
+	   in order to specify the date <quote>August 27, 2000, 10:00:00 GMT</quote>
 	   you write the line:</para>
 
 
          <programlisting>src-all tag=RELENG_4 date=2000.08.27.10.00.00</programlisting>
 
-         <note><para>The format of a date is rigid. You have to specify 
-	   all the components of the date: century (<quote>20</quote>, ie the 21st 
-	   century, must be supplied whereas <quote>19</quote>, the past century, can 
-	   be omitted), year, month, day, hour, minutes, seconds—as 
-	   shown in the above example.  For more information, please 
+         <note><para>The format of a date is rigid. You have to specify
+	   all the components of the date: century (<quote>20</quote>, ie the 21st
+	   century, must be supplied whereas <quote>19</quote>, the past century, can
+	   be omitted), year, month, day, hour, minutes, seconds—as
+	   shown in the above example.  For more information, please
 	   see &man.cvsup.1;.</para></note>
 
-         <para>Whether or not a date is specified, the checkouts file 
+         <para>Whether or not a date is specified, the checkouts file
 	   is called <filename>checkouts.cvs:A</filename> (eg
            <filename>checkouts.cvs:RELENG_4</filename>). As a result,
-	   no particular action is needed in order to revert to the 
-	   previous state: you have to modify the date in the <filename>supfile</filename>, 
+	   no particular action is needed in order to revert to the
+	   previous state: you have to modify the date in the <filename>supfile</filename>,
 	   and run <command>csvup</command> again.</para>
        </sect2>
 
@@ -245,18 +245,18 @@
        <sect2>
          <title>Updating your ports collection for the first time</title>
 
-         <para>Since ports are tagged <quote>.</quote> (ie -CURRENT), you can 
-	   correctly <quote>sync</quote> them for the first time by adding the date 
-	   keyword (cf &man.cvsup.1; for the exact format): you should 
-	   specify a date as close as possible to that of <quote>shipping</quote> of 
-	   your ports tree. After <command>cvsup</command> has correctly created the ports 
-	   checkouts file, which is precisely the goal of this first 
+         <para>Since ports are tagged <quote>.</quote> (ie -CURRENT), you can
+	   correctly <quote>sync</quote> them for the first time by adding the date
+	   keyword (cf &man.cvsup.1; for the exact format): you should
+	   specify a date as close as possible to that of <quote>shipping</quote> of
+	   your ports tree. After <command>cvsup</command> has correctly created the ports
+	   checkouts file, which is precisely the goal of this first
 	   special sync operation, the date field must be removed;
            all subsequent updates will be carried out smoothly.</para>
 
-         <para>If you have been reading the apparently nit-picking 
-	   remarks in these sections, you will probably have recognized 
-	   the potential for trouble in a source updating process. 
+         <para>If you have been reading the apparently nit-picking
+	   remarks in these sections, you will probably have recognized
+	   the potential for trouble in a source updating process.
 	   A number of people have actually run into problems. You have
 	   been warned. :-)</para>
       </sect2>
Index: en_US.ISO8859-1/articles//diskless-x/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/diskless-x/article.sgml,v
retrieving revision 1.10
diff -u -r1.10 article.sgml
--- en_US.ISO8859-1/articles//diskless-x/article.sgml	2 Dec 2002 21:11:54 -0000	1.10
+++ en_US.ISO8859-1/articles//diskless-x/article.sgml	14 Jun 2003 12:35:52 -0000
@@ -13,7 +13,7 @@
 <article>
   <articleinfo>
     <title>Diskless X Server: a how to guide</title>
-    
+
     <authorgroup>
       <author>
 	<firstname>Jerry</firstname>
@@ -24,14 +24,14 @@
 	  </address>
 	</affiliation>
       </author></authorgroup>
-    
+
     <pubdate>28-December-1996</pubdate>
-    
+
     <copyright>
       <year>1996</year>
       <holder>Jerry Kendall</holder>
     </copyright>
-    
+
     <abstract>
       <para>With the help of some friends on the FreeBSD-hackers list, I have
 	been able to create a diskless X terminal.  The creation of the X
@@ -45,15 +45,15 @@
 	system is a 486DX2-66.  I setup a diskless FreeBSD (complete) that
 	uses no local disk.  The server in that case is a Sun 670MP running
 	SunOS 4.1.3.  The same setup configuration was needed for both.</para>
-      
+
       <para>I am sure that there is stuff that needs to be added
 	to this.  Please send me any comments.</para>
     </abstract>
   </articleinfo>
-  
+
   <sect1>
     <title>Creating the boot floppy (On the diskless system)</title>
-    
+
     <para>Since the network boot loaders will not work with some of the TSR's
       and such that MS-DOS uses, it is best to create a dedicated boot floppy
       or, if you can, create an MS-DOS menu that will (via the
@@ -61,7 +61,7 @@
       ask what configuration to load when the system starts.  The later is the
       method that I use and it works great. My MS-DOS (6.x) menu is
       below.</para>
-    
+
     <example>
       <title><filename>config.sys</filename></title>
 
@@ -94,10 +94,10 @@
 :end</programlisting>
     </example>
   </sect1>
-  
+
   <sect1>
     <title>Getting the network boot programs (On the server)</title>
-    
+
     <para>Compile the <quote>net-boot</quote> programs that are located in
       <filename>/usr/src/sys/i386/boot/netboot</filename>.  You should read
       the comments at the top of the <filename>Makefile</filename>.  Adjust as
@@ -108,10 +108,10 @@
       server.  It will load the kernel from the boot server.  At this point,
       put both programs on the MS-DOS boot floppy created earlier.</para>
   </sect1>
-  
+
   <sect1>
     <title>Determine which program to run (On the diskless system)</title>
-    
+
     <para>If you know the chipset that your Ethernet adapter uses, this is
       easy.  If you have the NS8390 chipset, or a NS8390 based chipset, use
       <filename>nb8390.com</filename>.  If you have a 3Com 509 based chipset,
@@ -123,13 +123,13 @@
 
   <sect1>
     <title>Booting across the network</title>
-    
+
     <para>Boot the diskless system with out any config.sys/autoexec.bat
       files.  Try running the boot program for your Ethernet adapter.</para>
 
     <para>My Ethernet adapter is running in WD8013 16bit mode so I run
       <filename>nb8390.com</filename></para>
-    
+
     <screen><prompt>C:></prompt> <userinput>cd \netboot</userinput>
 <prompt>C:></prompt> <userinput>nb8390</userinput>
 
@@ -154,18 +154,18 @@
       message, verify that you did indeed set the compile time defines in the
       <filename>Makefile</filename> correctly.</para>
   </sect1>
-  
+
   <sect1>
     <title>Allowing systems to boot across the network (On the server)</title>
-    
+
     <para>Make sure the <filename>/etc/inetd.conf</filename> file has entries
       for tftp and bootps. Mine are listed below:</para>
-    
+
     <programlisting>tftp	dgram	udp	wait	nobody	/usr/libexec/tftpd	tftpd /tftpboot
 #
 # Additions by who ever you are
 bootps  dgram  udp  wait  root  /usr/libexec/bootpd bootpd /etc/bootptab</programlisting>
-    
+
     <para>If you have to change the <filename>/etc/inetd.conf</filename> file,
       send a <literal>HUP</literal> signal to inetd.  To do this, get the
       process ID of inetd with <command>ps -ax | grep inetd | grep -v
@@ -189,7 +189,7 @@
         :ip=199.246.76.2:\
         :gw=199.246.76.1:\
         :vm=rfc1048:</programlisting>
-    
+
     <para>The lines are as follows:</para>
 
     <informaltable frame="none">
@@ -269,10 +269,10 @@
       <para>The NFS mounted root filesystem will be mounted <emphasis>read
 	  only</emphasis>.</para>
     </note>
-    
+
     <para>The hierarchy for the diskless system can be re-mounted allowing
       read-write operations if required.</para>
-    
+
     <para>I use my spare 386DX-40 as a dedicated X terminal.</para>
 
     <para>The hierarchy for <hostid>altair</hostid> is:</para>
@@ -303,7 +303,7 @@
 -r-xr-xr-x  1 root    bin   73728 Dec 13 22:38 ./sbin/mount
 -r-xr-xr-x  1 root  wheel    1992 Jun 10  1995 ./dev/MAKEDEV.local
 -r-xr-xr-x  1 root  wheel   24419 Jun 10  1995 ./dev/MAKEDEV</screen>
-    
+
     <para>If you are not using &man.devfs.5; (which is the default
       in FreeBSD 5.X), you should make sure that you
       do not forget to run <command>MAKEDEV all</command> in the
Index: en_US.ISO8859-1/articles//euro/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/euro/article.sgml,v
retrieving revision 1.7
diff -u -r1.7 article.sgml
--- en_US.ISO8859-1/articles//euro/article.sgml	17 Feb 2003 22:52:09 -0000	1.7
+++ en_US.ISO8859-1/articles//euro/article.sgml	14 Jun 2003 12:35:56 -0000
@@ -1,11 +1,11 @@
-<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ 
+<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
 <!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
 %man;
 ]>
 
 <article>
   <articleinfo>
-    <title>The Euro symbol on 
+    <title>The Euro symbol on
       <systemitem class="osname">FreeBSD</systemitem></title>
 
     <authorgroup>
@@ -27,9 +27,9 @@
       <year>2003</year>
       <holder>The FreeBSD Documentation Project</holder>
     </copyright>
-    
+
     <pubdate role="rcs">$FreeBSD: doc/en_US.ISO8859-1/articles/euro/article.sgml,v 1.7 2003/02/17 22:52:09 blackend Exp $</pubdate>
-    
+
     <abstract>
       <para>This document will try to help you in getting started with the new
 	<keycap>Euro</keycap> Symbol on your new keyboard that you had to buy
@@ -37,7 +37,7 @@
 	will first focus on the more important parts like being able to
 	correctly display the symbol on the console. Later sections will deal
 	with configuring particular programs like
-	<application>X11</application>. 
+	<application>X11</application>.
       </para>
 
       <para>Lots of helpful input came from Oliver Fromme, Tom Rhodes and
@@ -50,16 +50,16 @@
   <sect1>
     <title>The Euro in a nutshell</title>
 
-    <para>If you already feel comfortable with 
-      <ulink url="../../books/handbook/l10n.html">localization</ulink> as 
-      described in the <systemitem class="osname">FreeBSD</systemitem> 
-      Handbook you might be only interested in the following facts which 
-      will get you started quickly:</para> 
+    <para>If you already feel comfortable with
+      <ulink url="../../books/handbook/l10n.html">localization</ulink> as
+      described in the <systemitem class="osname">FreeBSD</systemitem>
+      Handbook you might be only interested in the following facts which
+      will get you started quickly:</para>
 
     <variablelist>
       <varlistentry>
 	<term>ISO8859-15</term>
-        
+
 	<listitem>
 	  <para>This is a slight modification of the commonly used ISO8859-1
 	    character map. It includes the Euro symbol. Used for the
@@ -80,8 +80,8 @@
 	<term><filename>/usr/share/syscons/keymaps/*.iso.kbd</filename></term>
 
 	<listitem>
-	  <para>Appropriate keyboard maps depending on your language. Set your 
-            <literal>keymap</literal> entry in <filename>rc.conf</filename> to 
+	  <para>Appropriate keyboard maps depending on your language. Set your
+            <literal>keymap</literal> entry in <filename>rc.conf</filename> to
             one of these.</para>
 	</listitem>
       </varlistentry>
@@ -115,7 +115,7 @@
 
   <sect1>
     <title>A general remark</title>
-    
+
     <para>In the following sections we will often refer to
       <emphasis>ISO8859-15</emphasis>. This is the standard notation starting
       with <systemitem class="osname">FreeBSD</systemitem> 4.5. In older
@@ -123,15 +123,15 @@
       <emphasis>ISO_8859-15</emphasis> or <emphasis>DIS_8859-15</emphasis>.
     </para>
 
-    <para>If you are using an older version of 
-      <systemitem class="osname">FreeBSD</systemitem>, be sure to take a 
+    <para>If you are using an older version of
+      <systemitem class="osname">FreeBSD</systemitem>, be sure to take a
       look at <filename>/usr/share/locale/</filename> in order to find out
       which naming convention is in place.</para>
   </sect1>
 
   <sect1>
     <title>The console</title>
-  
+
     <sect2>
       <title>Setting up your console font</title>
 
@@ -191,8 +191,8 @@
 	combination is necessary (e.g.: <keycombo action=simul><keycap>Alt
 	    Gr</keycap><keycap>e</keycap></keycombo>) to decimal value 164.
 	If running into problems, the best way to check is to take a look at
-	<filename>/usr/share/syscons/keymaps/*.kbd</filename>. The format of 
-	the key mapping files is described in &man.keyboard.4;. 
+	<filename>/usr/share/syscons/keymaps/*.kbd</filename>. The format of
+	the key mapping files is described in &man.keyboard.4;.
 	  &man.kbdcontrol.1; can be used to load a custom keymap.</para>
 
       <para>Once the correct keyboard map is selected, it should be added to
@@ -201,13 +201,13 @@
       <programlisting>keymap="<replaceable>german.iso</replaceable>" # or another map</programlisting>
 
       <para>As stated above, this step has most probably already been taken
-	by you at installation time (with 
-	<application>sysinstall</application>). If not, either reboot or 
+	by you at installation time (with
+	<application>sysinstall</application>). If not, either reboot or
 	load the new keymap via &man.kbdcontrol.1;.</para>
 
-      <para>To verify the keyboard mapping, switch to a new console and at 
+      <para>To verify the keyboard mapping, switch to a new console and at
 	the login prompt, <emphasis>instead of logging</emphasis> in, try to
-	type the <keycap>Euro</keycap> key. If it is not working, either 
+	type the <keycap>Euro</keycap> key. If it is not working, either
 	file a bug report via &man.send-pr.1; or make sure you in fact chose
 	the right keyboard map.</para>
 
@@ -217,13 +217,13 @@
 	  <application>tcsh</application>.</para>
       </note>
     </sect2>
-   
+
     <sect2>
       <title>Fixing the environment variables</title>
 
-      <para>The shells (<application>bash</application>, <application>tcsh</application>) revert to the &man.readline.3; library 
-	which in turn respects the <envar>LC_CTYPE</envar> environment 
-	variable.  <envar>LC_CTYPE</envar> must be set before the shell is 
+      <para>The shells (<application>bash</application>, <application>tcsh</application>) revert to the &man.readline.3; library
+	which in turn respects the <envar>LC_CTYPE</envar> environment
+	variable.  <envar>LC_CTYPE</envar> must be set before the shell is
 	completely running. Luckily it suffices to add the line:</para>
 
       <programlisting>export LC_CTYPE=<replaceable>de_DE</replaceable>.ISO8859-15</programlisting>
@@ -241,11 +241,11 @@
 	however.</para>
 
       <note>
-	<para>An alternative to modifying <filename>.login</filename> and 
+	<para>An alternative to modifying <filename>.login</filename> and
 	  <filename>.bash_profile</filename> is to set the environment
 	  variables through the &man.login.conf.5; mechanism.  This approach
 	  has the advantage of assigning login classes to certain users (e.g.
-	  French users, Italian users, etc) <emphasis>in one 
+	  French users, Italian users, etc) <emphasis>in one
 	    place</emphasis>.</para>
       </note>
     </sect2>
@@ -285,14 +285,14 @@
       <filename>/usr/X11R6/lib/X11/app-defaults</filename> and add the correct
       font. Let us demonstrate this with
       <application>xterm</application>.</para>
- 
+
    <screen>&prompt.root; cd /usr/X11R6/lib/X11/app-defaults/
 &prompt.root; vi XTerm</screen>
 
     <para>Add the following line to the beginning of the file:</para>
 
     <programlisting>*font:     -misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15</programlisting>
-    
+
     <para>Finally, restart X and make sure, fonts can be displayed by
       executing the above <link linkend="awk-test">awk script</link>. All
       major applications should respect the keyboard mapping and the font
@@ -301,7 +301,7 @@
 
   <sect1>
     <title>Open problems</title>
-    
+
     <para>Of course, the author would like to receive feedback. In addition,
       at least let me know if you have fixes for one of these  open
       problems:</para>
@@ -311,7 +311,7 @@
         <para>Describe alternative way of setting up <application>XFree86</application>:
 	  <filename role="package">x11/xkeycaps</filename></para>
       </listitem>
-      
+
       <listitem>
         <para>Settings in <application>GNOME</application></para>
       </listitem>
Index: en_US.ISO8859-1/articles//explaining-bsd/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/explaining-bsd/article.sgml,v
retrieving revision 1.7
diff -u -r1.7 article.sgml
--- en_US.ISO8859-1/articles//explaining-bsd/article.sgml	10 Mar 2003 06:16:12 -0000	1.7
+++ en_US.ISO8859-1/articles//explaining-bsd/article.sgml	14 Jun 2003 12:36:06 -0000
@@ -66,15 +66,15 @@
 
       <listitem>
 	<para>The C library, the base API for the system.</para>
-	  
+
 	<para><emphasis>The BSD C library is based on code from Berkeley, not
 	    the GNU project.</emphasis></para>
       </listitem>
-	  
+
       <listitem>
 	<para>Utilities such as shells, file utilities, compilers and
 	  linkers.</para>
-	
+
 	<para><emphasis>Some of the utilities are derived from the GNU
 	    project, others are not.</emphasis></para>
       </listitem>
@@ -95,9 +95,9 @@
       </listitem>
     </itemizedlist>
   </sect1>
-  
+
   <sect1>
-    <title>What, a real UNIX?</title> 
+    <title>What, a real UNIX?</title>
 
     <para>The BSD operating systems are not clones, but open source
       derivatives of AT&T's Research UNIX operating system, which is also
@@ -164,12 +164,12 @@
       <ulink url="http://www.OpenBSD.org/">OpenBSD</ulink>, split off from
       NetBSD.</para>
   </sect1>
-  
+
   <sect1>
     <title>Why is BSD not better known?</title>
-    
+
     <para>For a number of reasons, BSD is relatively unknown:</para>
-    
+
     <orderedlist>
       <listitem>
 	<para>The BSD developers are often more interested in polishing their
@@ -449,11 +449,11 @@
 	</listitem>
       </itemizedlist>
     </sect2>
-    
+
     <sect2>
       <title>How does the BSD license differ from the GNU Public
 	license?</title>
-      
+
       <para>Linux is available under the
 	<ulink url="http://www.fsf.org/copyleft/gpl.html">GNU General Public
 	  License</ulink> (GPL), which is designed to eliminate closed
@@ -490,17 +490,17 @@
 
       <para>What does this all mean in practice?  Who should use BSD, who
 	should use Linux?</para>
-      
+
       <para>This is a very difficult question to answer.  Here are some
 	guidelines:</para>
-      
+
       <itemizedlist>
 	<listitem>
 	  <para><quote>If it ain't broke, don't fix it</quote>: If you already
 	    use an open source operating system, and you are happy with it,
 	    there is probably no good reason to change.</para>
 	</listitem>
-	
+
 	<listitem>
 	  <para>BSD systems, in particular FreeBSD, can have notably higher
 	    performance than Linux.  But this is not across the board.  In many
@@ -528,7 +528,7 @@
 
     <sect2>
       <title>Who provides support, service, and training for BSD?</title>
-      
+
       <para>BSDi have always supported BSD/OS, and they have recently
 	announced support contracts for FreeBSD.</para>
 
Index: en_US.ISO8859-1/articles//formatting-media/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/formatting-media/article.sgml,v
retrieving revision 1.26
diff -u -r1.26 article.sgml
--- en_US.ISO8859-1/articles//formatting-media/article.sgml	31 Mar 2003 21:23:06 -0000	1.26
+++ en_US.ISO8859-1/articles//formatting-media/article.sgml	14 Jun 2003 12:36:11 -0000
@@ -54,7 +54,7 @@
 
       <para>There are two possible modes of disk formatting:</para>
 
-      <itemizedlist> 
+      <itemizedlist>
 	<listitem>
 	  <para><firstterm>compatibility mode</firstterm>: Arranging a
 	    disk so that it has a slice table for use with other
@@ -84,7 +84,7 @@
 	allowing access to the Label and Partition editors and a Write
 	feature which will update just the selected disk and slice
 	without affecting other disks.  The other method is running
-	the tools manually from a root command line.  For 
+	the tools manually from a root command line.  For
 	dedicated mode, only three or four commands are involved while
 	<command>sysinstall</command> requires some
 	manipulation.</para>
@@ -144,7 +144,7 @@
 	    Each filesystem and swap area on a disk resides in a
 	    partition.  Maintained using the disklabel utility.</para>
 	</listitem>
-	
+
 	<listitem>
 	  <para>sector:  Smallest subdivision of a disk.  One sector
 	    usually represents 512 bytes of data.</para>
@@ -177,7 +177,7 @@
 	to the system and a disk placed in the drive during startup,
 	so the kernel can determine the drive's geometry.  Check the
 	<command>dmesg</command> output and make sure your device and
-	the disk's size is listed.  If the kernel reports 
+	the disk's size is listed.  If the kernel reports
 
 	<informalexample>
 	  <screen>Can't get the size</screen>
@@ -213,11 +213,11 @@
 
       <procedure>
 	<step>
-	  <para>Start sysinstall as root by typing 
+	  <para>Start sysinstall as root by typing
 
 	    <informalexample>
 	      <screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen>
-	    </informalexample> 
+	    </informalexample>
 
 	    from the command prompt.</para>
 	</step>
@@ -238,10 +238,10 @@
 	<step>
 	  <para>If you are using this entire disk for FreeBSD, select
 	    <command>A</command>.</para>
-	</step> 
+	</step>
 
 	<step>
-	  <para>When asked: 
+	  <para>When asked:
 
 	    <informalexample>
 	      <screen>Do you want to do this with a true partition entry so as to remain
@@ -255,7 +255,7 @@
 	<step>
 	  <para>When asked if you still want to do this, answer
 	    <command>Yes</command>.</para>
-	</step> 
+	</step>
 
 	<step>
 	  <para>Select <command>Write</command>.</para>
@@ -264,7 +264,7 @@
 	<step>
 	  <para>When warned about writing on installed systems, answer
 	    <command>Yes</command>.</para>
-	</step> 
+	</step>
 
 	<step>
 	  <para><command>Quit</command>the FDISK Editor and
@@ -281,13 +281,13 @@
 	    <command>C</command> to Create a partition, accept the
 	    default size, partition type Filesystem, and a mountpoint
 	    (which is not used).</para>
-	</step> 
+	</step>
 
 	<step>
 	  <para>Enter <command>W</command> when done and confirm to
 	    continue.  The filesystem will be newfs'd for you, unless
 	    you select otherwise (for new partitions you will want to
-	    do this!).  You will get the error: 
+	    do this!).  You will get the error:
 
 	    <informalexample>
 	      <screen>Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory</screen>
@@ -318,7 +318,7 @@
 
       <para>If you need to edit the disklabel to create multiple
 	partitions (such as swap), use the following: </para>
-        
+
       <informalexample>
 	<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/ad2 count=2</userinput>
 &prompt.root; <userinput>disklabel /dev/ad2 > /tmp/label</userinput>
@@ -351,11 +351,11 @@
 
       <procedure>
 	<step>
-	  <para>Start sysinstall as root by typing 
+	  <para>Start sysinstall as root by typing
 
 	    <informalexample>
 	      <screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen>
-	    </informalexample> 
+	    </informalexample>
 
 	    from the command prompt.</para>
 	</step>
@@ -376,10 +376,10 @@
 	<step>
 	  <para>If you are using this entire disk for FreeBSD, select
 	    <command>A</command>.</para>
-	</step> 
+	</step>
 
 	<step>
-	  <para>When asked: 
+	  <para>When asked:
 
 	    <informalexample>
 	      <screen>Do you want to do this with a true partition entry so as to remain
@@ -407,18 +407,18 @@
 	<step>
 	  <para>You will be asked about the boot manager, select
 	    <command>None</command> again. </para>
-	</step> 
+	</step>
 
 	<step>
 	  <para>Select <command>Label</command> from the Index
 	    menu.</para>
-	</step>  
+	</step>
 
 	<step>
 	  <para>Label as desired.  For a single partition, accept the
 	    default size, type filesystem, and a mountpoint (which
 	    is not used).</para>
-	</step> 
+	</step>
 
 	<step>
 	  <para>The filesystem will be newfs'd for you, unless you
@@ -426,7 +426,7 @@
 	    this!).  You will get the error:
 
 	    <informalexample>
-	      <screen>Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory</screen> 
+	      <screen>Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory</screen>
 	    </informalexample>
 
 	    Ignore.</para>
@@ -467,7 +467,7 @@
 	  <para>When newfsing the drive, do NOT newfs the `c'
 	    partition.  Instead, newfs the partition where the
 	    non-swap space lies.</para>
-	</step> 
+	</step>
 
 	<step>
 	  <para>Add an entry to <filename>/etc/fstab</filename> as
@@ -477,7 +477,7 @@
 	    <programlisting>/dev/ad0b                       none            swap    sw 0 0
 	    </programlisting>
 	  </informalexample>
-	  
+
 	  <para>Change <filename>/dev/ad0b</filename> to the device of the newly added
 	    space.</para>
 	</step>
@@ -498,7 +498,7 @@
     <sect2>
       <title>Copying the Contents of Disks</title>
 <!-- Should have specific tag -->
-      
+
       <para>Submitted By:  Renaud Waldura
 	(<email>renaud at softway.com</email>) </para>
 
Index: en_US.ISO8859-1/articles//freebsd-questions/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/freebsd-questions/article.sgml,v
retrieving revision 1.13
diff -u -r1.13 article.sgml
--- en_US.ISO8859-1/articles//freebsd-questions/article.sgml	18 May 2003 16:37:21 -0000	1.13
+++ en_US.ISO8859-1/articles//freebsd-questions/article.sgml	14 Jun 2003 12:36:15 -0000
@@ -31,10 +31,10 @@
 	list.</para>
     </abstract>
   </articleinfo>
-  
+
   <sect1>
     <title id="Introduction">Introduction</title>
-    
+
     <para><literal>FreeBSD-questions</literal> is a mailing list maintained by
       the FreeBSD project to help people who have questions about the normal
       use of FreeBSD.  Another group, <literal>FreeBSD-hackers</literal>,
@@ -51,7 +51,7 @@
 	url="http://www.catb.org/~esr/faqs/hacker-howto.html">How To Become
 	A Hacker</ulink></para>
     </note>
-    
+
     <para>This is a regular posting aimed to help both those seeking advice
       from FreeBSD-questions (the <quote>newcomers</quote>), and also those
       who answer the questions (the <quote>hackers</quote>).</para>
@@ -69,7 +69,7 @@
       FreeBSD-questions.  In the following section, I recommend how to submit
       a question; after that, we will look at how to answer one.</para>
   </sect1>
-  
+
   <sect1>
     <title id="subscribe">How to subscribe to FreeBSD-questions</title>
 
@@ -77,18 +77,18 @@
       a mail message to &a.majordomo; with the single line:</para>
 
     <literallayout class="monospaced">subscribe FreeBSD-questions</literallayout>
-    
+
     <para><application>majordomo</application> is an automatic program which
       maintains the mailing list, so you do not need a subject line.  If your
       mailer complains, however, you can put anything you like in the subject
       line.</para>
-    
+
     <para>When you get the reply from <application>majordomo</application>
       telling you the details of the list, <emphasis>please save
       it</emphasis>. If you ever should want to leave the list, you will need
       the information there.  See the next section for more details.</para>
   </sect1>
-  
+
   <sect1>
     <title id="unsubscribe">How to unsubscribe from FreeBSD-questions</title>
 
@@ -156,7 +156,7 @@
       <literal>FreeBSD-hackers</literal>.  In some cases, it is not really
       clear which group you should ask.  The following criteria should help
       for 99% of all questions, however:</para>
-    
+
     <orderedlist>
       <listitem>
 	<para>If the question is of a general nature, ask
@@ -164,13 +164,13 @@
 	  about installing FreeBSD or the use of a particular UNIX
 	  utility.</para>
       </listitem>
-      
+
       <listitem>
 	<para>If you think the question relates to a bug, but you are not sure,
 	  or you do not know how to look for it, send the message to
 	  <literal>FreeBSD-questions</literal>.</para>
       </listitem>
-      
+
       <listitem>
 	<para>If the question relates to a bug, and you are
 	  <emphasis>sure</emphasis> that it is a bug (for example, you can
@@ -197,7 +197,7 @@
 
   <sect1>
     <title id="before">Before submitting a question</title>
-    
+
     <para>You can (and should) do some things yourself before asking a question
       on one of the mailing lists:</para>
 
@@ -241,10 +241,10 @@
       </listitem>
     </itemizedlist>
   </sect1>
-  
+
   <sect1>
     <title id="submit">How to submit a question</title>
-  
+
     <para>When submitting a question to FreeBSD-questions, consider the
       following points:</para>
 
@@ -261,7 +261,7 @@
 	  you do not.  In the rest of this document, we will look at how to get
 	  the most out of your question to FreeBSD-questions.</para>
       </listitem>
-      
+
       <listitem>
 	<para>Not everybody who answers FreeBSD questions reads every message:
 	  they look at the subject line and decide whether it interests them.
@@ -278,7 +278,7 @@
 	    speak English as their first language, and we try to make
 	    allowances for that, but it is really painful to try to read a
 	    message written full of typos or without any line breaks.</para>
-	
+
 	<para>Do not underestimate the effect that a poorly formatted mail
 	  message has, not just on the FreeBSD-questions mailing list.
 	  Your mail message is all people see of you, and if it is poorly
@@ -328,7 +328,7 @@
 	  use mailers which do not get on very well with
 	  <acronym>MIME</acronym>.</para>
       </listitem>
-      
+
       <listitem>
 	<para>Make sure your time and time zone are set correctly.  This may
 	  seem a little silly, since your message still gets there, but many
@@ -358,7 +358,7 @@
 	      sources, though of course you should not be sending questions
 	      about -CURRENT to FreeBSD-questions.</para>
 	  </listitem>
-	  
+
 	  <listitem><para>With any problem which <emphasis>could</emphasis> be
 	      hardware related, tell us about your hardware.  In case of
 	      doubt, assume it is possible that it is hardware.  What kind of
@@ -370,7 +370,7 @@
 	      tells not just what hardware you are running, but what version of
 	      FreeBSD as well.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>If you get error messages, do not say <quote>I get error
 		messages</quote>, say (for example) <quote>I get the error
@@ -416,7 +416,7 @@
 	<para>This redirects the information to the file
 	  <filename>/tmp/dmesg.out</filename>.</para>
       </listitem>
-      
+
       <listitem>
 	<para>If you do all this, and you still do not get an answer, there
 	  could be other reasons.  For example, the problem is so complicated
@@ -428,7 +428,7 @@
 	  only make you unpopular.</para>
       </listitem>
     </itemizedlist>
-    
+
     <para>To summarize, let's assume you know the answer to the following
       question (yes, it is the same one in each case).
       You choose which of these two questions you would be more prepared to
@@ -471,7 +471,7 @@
 	  you are talking about.  Do not forget to trim unnecessary text out,
 	  though.</para>
       </listitem>
-      
+
       <listitem>
 	<para>The text in the subject line stays the same (you did remember to
 	  put one in, did you not?).  Many mailers will sort messages by
@@ -487,7 +487,7 @@
       </listitem>
     </orderedlist>
   </sect1>
-  
+
   <sect1>
     <title id="answer">How to answer a question</title>
 
@@ -505,7 +505,7 @@
 	  check this is to sort your incoming mail by subject: then
 	  (hopefully) you will see the question followed by any answers, all
 	  together.</para>
-	
+
 	<para>If somebody has already answered it, it does not automatically
 	  mean that you should not send another answer.  But it makes sense to
 	  read all the other answers first.</para>
@@ -551,14 +551,14 @@
 	  send messages with hundreds of CCs. If this is the case, be sure to
 	  trim the Cc: lines appropriately.</para>
       </listitem>
-      
+
       <listitem>
 	<para>Include relevant text from the original message. Trim it to the
 	  minimum, but do not overdo it.  It should still be possible for
 	  somebody who did not read the original message to understand what
 	  you are talking about.</para>
       </listitem>
-      
+
       <listitem>
 	<para>Use some technique to identify which text came from the original
 	  message, and which text you add.  I personally find that prepending
@@ -580,7 +580,7 @@
 	  text such as <quote>Re: </quote>.  If your mailer does not do it
 	  automatically, you should do it manually.</para>
       </listitem>
-      
+
       <listitem>
 	<para>If the submitter did not abide by format conventions (lines too
 	  long, inappropriate subject line), <emphasis>please</emphasis> fix
Index: en_US.ISO8859-1/articles//hubs/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/hubs/article.sgml,v
retrieving revision 1.33
diff -u -r1.33 article.sgml
--- en_US.ISO8859-1/articles//hubs/article.sgml	23 May 2003 13:49:52 -0000	1.33
+++ en_US.ISO8859-1/articles//hubs/article.sgml	14 Jun 2003 12:36:30 -0000
@@ -23,10 +23,10 @@
         </affiliation>
       </author>
       <author>
-        <firstname>Valentino</firstname>  
+        <firstname>Valentino</firstname>
         <surname>Vaschetto</surname>
         <affiliation>
-          <address><email>logo at FreeBSD.org</email></address>                             
+          <address><email>logo at FreeBSD.org</email></address>
         </affiliation>
       </author>
       <author>
@@ -96,10 +96,10 @@
         which is determined by the servers policy. It is
         also affected by the types of services you want to offer.
         Plain FTP or HTTP services may not require a huge
-        amount of resources. Watch out, if you provide 
+        amount of resources. Watch out, if you provide
         CVSup, rsync or even AnonCVS. This can have a huge
         impact on CPU and memory requirements. Especially
-        rsync is considered a memory hog, and CVSup does 
+        rsync is considered a memory hog, and CVSup does
         indeed consume some CPU. For AnonCVS it might
         be a nice idea to set up a memory resident file system (MFS) of at least
         300 MB, so you need to take this into account
@@ -201,14 +201,14 @@
         <title>RSYNC (optional for FTP fileset)</title>
         <para>
           <application>Rsync</application> is often also offered for convenience, for the
-          contents of the FTP area of FreeBSD. The 
+          contents of the FTP area of FreeBSD. The
           protocol is different from FTP in many ways, and
           overall, it can be stated, that it is much more
           bandwidth friendly, as only differences between files
-          are transferred, not whole files. 
+          are transferred, not whole files.
           <application>Rsync</application> does require significant amount of memory for
           each instance. The size depends on the size of
-          the synced module in terms of number of directories and 
+          the synced module in terms of number of directories and
           files. <application>Rsync</application> can use <command>rsh</command> and
           <command>ssh</command> (now default) as a transport,
           or use it's own protocol for stand-alone access
@@ -269,13 +269,13 @@
           offering it via <application>CVSup</application>. Still it is possible to offer
           the CVS repository via <application>AnonCVS</application>, FTP,
           <application>Rsync</application> or HTTP, but
-          people would benefit much more from <application>CVSup</application> access. 
+          people would benefit much more from <application>CVSup</application> access.
           <application>CVSup</application> was developed by &a.jdp;.
-          It is a bit tricky to install on non-FreeBSD platforms, 
+          It is a bit tricky to install on non-FreeBSD platforms,
           since it is written in Modula-3 and therefore requires
-          a Modula-3 environment. John Polstra has built a 
+          a Modula-3 environment. John Polstra has built a
           stripped down version of M3, that is sufficient to
-          run <application>CVSup</application>, and can be installed much easier. 
+          run <application>CVSup</application>, and can be installed much easier.
           See <ulink url="http://www.polstra.com/projects/freeware/ezm3/">Ezm3</ulink>
           for details. Related ports are:
 
@@ -292,20 +292,20 @@
             </listitem>
           </itemizedlist>
 
-          There are a few more like <filename role="package">net/cvsupit</filename> and 
+          There are a few more like <filename role="package">net/cvsupit</filename> and
           <filename role="package">net/cvsup-without-gui</filename> you might want to have
-          a look at. If you prefer a static binary package, take a look 
+          a look at. If you prefer a static binary package, take a look
           <ulink url="http://people.FreeBSD.org/~jdp/s1g/">here</ulink>.
           This page still refers to the S1G bug, that was present
           in <application>CVSup</application>. Maybe
           John will setup a generic download-site to get
           static binaries for various platforms.
         </para>
-        <para> 
+        <para>
           It is possible to use CVSup to offer
-          any kind of fileset, not just CVS repositories, 
+          any kind of fileset, not just CVS repositories,
           but configuration can be complex.
-          CVSup is known to eat some CPU on the server as on the 
+          CVSup is known to eat some CPU on the server as on the
           client, since it needs to compare lots of files.
         </para>
       </sect3>
@@ -343,14 +343,14 @@
           </programlisting>
           See the manpage for details of the options. See also the cvs <emphasis>info</emphasis>
           page, about additional ways to make sure, access is read-only.
-          It is advisable, that you create an unprivileged account, 
+          It is advisable, that you create an unprivileged account,
           preferably called <username>anoncvs</username>.
           Also you need to create a file <filename>passwd</filename>
-          in your <filename>/home/ncvs/CVSROOT</filename> and assign a 
+          in your <filename>/home/ncvs/CVSROOT</filename> and assign a
           CVS password (empty or <literal>anoncvs</literal>) to that user.
           The directory <filename>/anoncvstmp</filename> is a special
           purpose memory based file system. It is not required but
-          advised, since &man.cvs.1; creates a shadow directory 
+          advised, since &man.cvs.1; creates a shadow directory
           structure in your <filename>/tmp</filename> which is
           not used after the operation, but slows things
           dramatically, if real disk operations are required.
@@ -378,7 +378,7 @@
       <para>
         The FTP area is the largest amount of data, that
         needs to be mirrored. It includes the <emphasis>distributions
-        sets</emphasis>, required for network installation, the 
+        sets</emphasis>, required for network installation, the
         <emphasis>branches</emphasis>, that are actually snapshots
         of checked-out source trees, the <emphasis>ISO Images</emphasis>
         to write CD-ROMs with the installation distribution,
@@ -414,7 +414,7 @@
           In general FTP is not really good for mirroring, since it transfers
           each whole file, if it has changed, and does
           not create a single data stream, that will benefit from
-          a large TCP congestion window. 
+          a large TCP congestion window.
         </para>
       </sect3>
       <sect3 id="mirror-ftp-rsync">
@@ -422,18 +422,18 @@
         <para>
           A better way, to mirror the FTP area is <application>rsync</application>.
           You can install the port <filename role="package">net/rsync</filename> and then use
-          rsync to sync with your upstream host. 
+          rsync to sync with your upstream host.
           <application>rsync</application> is already mentioned
           in <xref linkend="mirror-serv-rsync">.
-          Since <application>rsync</application> access is not 
+          Since <application>rsync</application> access is not
           required, your preferred upstream site may not allow it.
           Since it is quite common, though, chances are small, that
           you cannot use it. You can always consider using an
           upstream server, that offers it, just for the benefits
-          of rsync. 
+          of rsync.
           <note>
             <para>
-              Since the number of <application>rsync</application> 
+              Since the number of <application>rsync</application>
               clients will have a significant impact on the server
               machine, most admins impose limitations on their
               server. For a mirror, you should ask the site maintainer
@@ -460,7 +460,7 @@
         <title>With CVSup</title>
         <para>
           A few sites, including the one-and-only <hostid>ftp-master.FreeBSD.org</hostid>
-          even offer <application>CVSup</application> to mirror the contents of 
+          even offer <application>CVSup</application> to mirror the contents of
           the FTP space. You need to install a <application>cvsup</application>
           client, preferably from the port: <filename role="package">net/cvsup</filename>.
           (Also reread <xref linkend="mirror-serv-cvsup">.)
@@ -543,7 +543,7 @@
         <title>Using other methods</title>
         <para>
           Using other methods than <application>CVSup</application> is
-          generally not recommended. We describe them in short here 
+          generally not recommended. We describe them in short here
           anyway. Since most sites offer the CVS repository as
           part of the FTP fileset under the path
           <filename>/pub/FreeBSD/development/FreeBSD-CVS</filename>,
@@ -562,7 +562,7 @@
 
           <important>
             <para>
-              You can <emphasis>NOT</emphasis> use AnonCVS to 
+              You can <emphasis>NOT</emphasis> use AnonCVS to
               mirror the CVS repository, since CVS does not allow
               you to access the repository itself, but only checked
               out versions of the modules.
@@ -581,10 +581,10 @@
         and a <emphasis>cronjob</emphasis>, that calls <command>cvs up -d -P</command>
         on a regular basis, maybe just after your repository was updated.
         Of course, the files need to remain in a directory, available
-        for public WWW access. The installation and configuration of a 
+        for public WWW access. The installation and configuration of a
         webserver is not discussed here.
       </para>
-      
+
       <note><para>For the website to be visible, users must execute the &man.make.1;
         command in the main <filename>www</filename> directory.  This command
         will create the standard <filename>*.html</filename> files for web
@@ -592,7 +592,7 @@
         <filename role="package">textproc/docproj</filename> port must be
         installed.</para></note>
       <para>
-        If you don't have a local repository, you can use 
+        If you don't have a local repository, you can use
         <application>CVSup</application> to maintain an <quote>up to date copy</quote>
         of the www pages. A sample supfile can be found in
         <filename>/usr/share/examples/cvsup/www-supfile</filename> and
@@ -621,8 +621,8 @@
      <sect3 id="mirror-www-doc">
        <title>Mirroring the FreeBSD documentation</title>
        <para>
-         As the documentation is referenced a lot from the 
-         webpages, it is recommended, that you mirror the 
+         As the documentation is referenced a lot from the
+         webpages, it is recommended, that you mirror the
          FreeBSD documentation as well. However, this is not
          so trivial as the www-pages alone.
        </para>
@@ -652,7 +652,7 @@
          Then you need to install a couple of ports.
          You are lucky, that there is a meta-port:
          <filename role="package">textproc/docproj</filename> to do the work
-         for you. You need to setup some 
+         for you. You need to setup some
          environment variables, like
          <literal>SGML_CATALOG_FILES</literal>,
          also have a look at your <filename>/etc/make.conf</filename>
@@ -686,7 +686,7 @@
      <para>
        Every mirror should be updated on a regular
        basis. You will certainly need some script
-       framework for it, that will be called by 
+       framework for it, that will be called by
        &man.cron.8;. Since nearly every admin
        does this his own way, we cannot give
        specific instructions. It could work
@@ -739,7 +739,7 @@
       <para>
         Mirrors are organized by country. All
         official mirrors have a DNS entry of the form
-        <hostid>ftpN.CC.FreeBSD.org</hostid>. With 
+        <hostid>ftpN.CC.FreeBSD.org</hostid>. With
         <emphasis>CC</emphasis> (i.e. country code) being the
         <emphasis>top level domain</emphasis>
         of the country, where this mirror is located;
@@ -756,14 +756,14 @@
       </para>
       <para>
         Additionally there exists a hierarchy of mirrors, which
-        is described terms of <emphasis>tiers</emphasis>. 
+        is described terms of <emphasis>tiers</emphasis>.
         The master sites are not referred to, but can be
         described as <emphasis>Tier-0</emphasis>. Mirrors
         that mirror from these sites can be considered
         <emphasis>Tier-1</emphasis>, mirrors of <emphasis>Tier-1</emphasis>-mirrors,
-        are <emphasis>Tier-2</emphasis>, etc. 
+        are <emphasis>Tier-2</emphasis>, etc.
         Official sites are encouraged to be of a low <emphasis>tier</emphasis>,
-        but the lower the tier, the higher the requirements in 
+        but the lower the tier, the higher the requirements in
         terms as described in <xref linkend="mirror-requirements">.
         Also access to low-tier-mirrors may be restricted, and
         access to master sites is definitely restricted.
@@ -779,7 +779,7 @@
       <para>
         The short answer is: from the
         site, that is closest to you in Internet terms, or gives you
-        the fastest access. 
+        the fastest access.
       </para>
       <sect3 id="mirror-where-simple">
         <title>I just want to mirror from somewhere!</title>
@@ -834,8 +834,8 @@
         <title>I want to access the master sites!</title>
         <para>
           If you have good reasons, and good prerequisites,
-          you may want and get access to one of the 
-          master sites. Access to these sites is 
+          you may want and get access to one of the
+          master sites. Access to these sites is
           generally restricted, and there are special policies
           for access. If you are already an <emphasis>official</emphasis>
           mirror, this certainly helps you getting access.
@@ -850,7 +850,7 @@
         <sect4 id="mirror-where-master-ftp">
           <title>ftp-master.FreeBSD.org</title>
           <para>
-            This is the master site for the FTP fileset. 
+            This is the master site for the FTP fileset.
           </para>
           <para>
             <hostid>ftp-master.FreeBSD.org</hostid> provides
@@ -935,8 +935,8 @@
         <note>
           <para>
             The following applies mainly to the FTP fileset,
-            since a CVS repository should always be mirrored 
-            completely, and the webpages are a case of 
+            since a CVS repository should always be mirrored
+            completely, and the webpages are a case of
             its own.
           </para>
         </note>
@@ -946,7 +946,7 @@
         <itemizedlist>
           <listitem><para>carry the complete fileset</para></listitem>
           <listitem><para>allow access to other mirror sites</para></listitem>
-          <listitem><para>provide <application>FTP</application> and 
+          <listitem><para>provide <application>FTP</application> and
             <application>RSYNC</application> access</para></listitem>
         </itemizedlist>
 
@@ -1001,7 +1001,7 @@
             If everything works so far, contact the DNS admin, responsible
             for your region/country, and ask for a DNS entry for your
             site. The admin should able to be contacted via
-            <email>hostmaster at cc.FreeBSD.org</email>, which 
+            <email>hostmaster at cc.FreeBSD.org</email>, which
             <emphasis>cc</emphasis> being your country code/TLD
             again. Your DNS entry will look like described
             in <xref linkend="mirror-where-organization">.
@@ -1015,13 +1015,13 @@
         </step>
         <step>
           <para>
-            Then you can ask the &a.doc; or the &a.hubs;  
+            Then you can ask the &a.doc; or the &a.hubs;
             to add your mirror site to the mirror list in the
             <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook">FreeBSD
             Handbook</ulink>. Make sure you tell them the email address,
             to list as the maintainer of the site.
           </para>
-        </step> 
+        </step>
       </procedure>
       <para>This is it.</para>
     </sect2>
@@ -1041,7 +1041,7 @@
           </para>
         </listitem>
         <listitem>
-          <para>ftp.is.FreeBSD.org - <email>hostmaster at is.FreeBSD.org</email> - 
+          <para>ftp.is.FreeBSD.org - <email>hostmaster at is.FreeBSD.org</email> -
             <ulink url="http://www.rhnet.is/status/draupnir/draupnir.html">
             (Bandwidth)</ulink> <ulink url="http://www.rhnet.is/status/ftp/ftp-notendur.html">(FTP
             processes)</ulink> <ulink url="http://www.rhnet.is/status/ftp/http-notendur.html">(HTTP processes)
Index: en_US.ISO8859-1/articles//java-tomcat/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/java-tomcat/article.sgml,v
retrieving revision 1.14
diff -u -r1.14 article.sgml
--- en_US.ISO8859-1/articles//java-tomcat/article.sgml	8 Oct 2002 21:11:21 -0000	1.14
+++ en_US.ISO8859-1/articles//java-tomcat/article.sgml	14 Jun 2003 12:36:39 -0000
@@ -15,21 +15,21 @@
          following disclaimer in the documentation and/or other materials
          provided with the distribution.
 
-     THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS" 
-     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
-     THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
-     PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS AND CONTRIBUTORS BE 
-     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-     ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED 
+     THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS"
+     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+     THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+     PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS AND CONTRIBUTORS BE
+     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+     ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED
      OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
 
 <!--
-     Written by Victoria Chan <vkchan at kendryl.net>. The original document can 
+     Written by Victoria Chan <vkchan at kendryl.net>. The original document can
      be found at: http://www.kendryl.net/jdk13-1.html.
 -->
 
@@ -56,7 +56,7 @@
   <articleinfo>
     <title>Java and Jakarta Tomcat on FreeBSD</title>
 
-    <authorgroup>      
+    <authorgroup>
       <author>
 	<firstname>Victoria</firstname>
 	<surname>Chan</surname>
@@ -79,8 +79,8 @@
       <holder role="mailto:vkchan at kendryl.net">Victoria Chan</holder>
       <holder role="mailto:hiten at uk.FreeBSD.org">Hiten Pandya</holder>
     </copyright>
-    
-    <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/java-tomcat/article.sgml,v 1.14 2002/10/08 21:11:21 blackend Exp $</pubdate> 
+
+    <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/java-tomcat/article.sgml,v 1.14 2002/10/08 21:11:21 blackend Exp $</pubdate>
 
     <abstract>
       <para>This document is presented in hopes of making it easier for
@@ -93,7 +93,7 @@
     </abstract>
   </articleinfo>
   <!-- END of Article Metadata-->
-  
+
   <sect1>
     <title>Introduction</title>
 
@@ -129,7 +129,7 @@
     <para>In this article, you will find how to install the Java
       Development Kit for FreeBSD, and how to get up and running with
       Tomcat.  A <xref linkend="ref"> section is also provided for
-      further reading.</para>	
+      further reading.</para>
   </sect1>
 
   <sect1>
@@ -234,7 +234,7 @@
 	  nearest to you.  Click on <quote>Java 2 SDK, Standard Edition,
 	  version 1.3.1</quote>.  Save the
 	  <filename>j2sdk-1_3_1-src.tar.gz</filename> to the
-	  <filename>/usr/ports/distfiles/</filename> directory.</para>	  
+	  <filename>/usr/ports/distfiles/</filename> directory.</para>
       </step>
     </procedure>
 
@@ -244,7 +244,7 @@
 	several restrictions in place on the use of Java, which you must
 	address. The FreeBSD Project does not take any responsibilities
 	for your actions.</para>
-      
+
       <para>Do not discard any of the downloaded files, as they will be
 	needed for building some of the native ports for FreeBSD, which
 	are discussed later on.</para>
@@ -416,7 +416,7 @@
 	after setting up the necessary Java environment, which we have
 	previously completed.</para>
 
-      <para>In-order to setup Tomcat on FreeBSD, follow the below 
+      <para>In-order to setup Tomcat on FreeBSD, follow the below
         procedure:</para>
 
       <procedure>
@@ -451,7 +451,7 @@
 	    from the Jakarta website, which is located at
 	    <literal><ulink url="&tomcat403"></ulink></literal>.  The
 	    file to download is called
-	    <filename>jakarta-tomcat-4.0.3.tar.gz</filename>.</para>	    
+	    <filename>jakarta-tomcat-4.0.3.tar.gz</filename>.</para>
 	</step>
 
 	<step>
Index: en_US.ISO8859-1/articles//mh/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/mh/article.sgml,v
retrieving revision 1.19
diff -u -r1.19 article.sgml
--- en_US.ISO8859-1/articles//mh/article.sgml	21 May 2003 20:54:14 -0000	1.19
+++ en_US.ISO8859-1/articles//mh/article.sgml	14 Jun 2003 12:36:53 -0000
@@ -464,7 +464,7 @@
 	  </listitem>
 	</varlistentry>
       </variablelist>
-  
+
       <para>This allows you to do things like
 
 	<informalexample>
@@ -571,7 +571,7 @@
 
                      TOTAL=  199 messages in 13 folders.</screen>
       </informalexample>
-  
+
       <para>The <command>refile</command> command is what you use to move
 	messages between folders. When you do something like
 	<command>refile 23 +netfuture</command> message number 23 is moved
@@ -751,7 +751,7 @@
 <emphasis remap=bf>else</emphasis> {return-path} <emphasis remap=bf>take the return-path from the original
 message</emphasis>, %> <emphasis remap=bf>endif</emphasis>.</screen>
       </informalexample>
-  
+
       <para>As you can tell MH formatting can get rather involved. You
 	can probably decipher what most of the other functions and
 	variables mean. All of the information on writing these format
Index: en_US.ISO8859-1/articles//pxe/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/pxe/article.sgml,v
retrieving revision 1.14
diff -u -r1.14 article.sgml
--- en_US.ISO8859-1/articles//pxe/article.sgml	24 Jul 2002 01:08:56 -0000	1.14
+++ en_US.ISO8859-1/articles//pxe/article.sgml	14 Jun 2003 12:36:58 -0000
@@ -10,27 +10,27 @@
 <article>
   <articleinfo>
     <title>FreeBSD Jumpstart Guide</title>
-    
+
     <authorgroup>
       <author>
         <firstname>Alfred</firstname>
         <surname>Perlstein</surname>
-        
+
         <affiliation>
           <address><email>alfred at FreeBSD.org</email></address>
         </affiliation>
       </author>
     </authorgroup>
-    
+
     <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/pxe/article.sgml,v 1.14 2002/07/24 01:08:56 keramida Exp $</pubdate>
-    
+
     <abstract>
       <para>This article details the method used to allow machines to install
         FreeBSD using the Intel PXE method of booting a machine over a network.
         </para>
     </abstract>
   </articleinfo>
-  
+
   <sect1 id="introduction">
     <title>Introduction</title>
 
@@ -41,16 +41,16 @@
     </warning>
 
     <para>Terminology:</para>
-    
+
     <informaltable frame="none">
       <tgroup cols="2">
-      
+
         <tbody>
           <row>
             <entry>Server</entry>
             <entry>The machine offering netboot and install options.</entry>
           </row>
-          
+
           <row>
             <entry>Client</entry>
             <entry>The machine that will have FreeBSD installed on it.</entry>
@@ -62,8 +62,8 @@
     <para>Requires:
       Clients supporting the Intel PXE netboot option, an Ethernet connection.
       </para>
-    
-    <para>Please let me know if you come across anything you have problems with 
+
+    <para>Please let me know if you come across anything you have problems with
       or suggestions for additional documentation.</para>
 
     <para>If you would like someone to train/implement a specific netinstall system
@@ -79,39 +79,39 @@
 
     <procedure>
       <step>
-        <para>Install DHCP: Install <filename role="package">net/isc-dhcp3</filename> you can use this config file 
+        <para>Install DHCP: Install <filename role="package">net/isc-dhcp3</filename> you can use this config file
           <ulink url="http://people.FreeBSD.org/~alfred/pxe/dhcpd.conf">
           dhcpd.conf</ulink>, stick it in /usr/local/etc/</para>
       </step>
-      
+
       <step>
         <para>Enable tftp:</para>
-	
+
         <procedure>
           <step>
             <para>Make a directory <filename>/usr/tftpboot</filename></para>
           </step>
-            
+
           <step>
-            <para>Add this line to your 
+            <para>Add this line to your
               <filename>/etc/inetd.conf</filename>:</para>
-	    
+
 <programlisting>tftp    dgram   udp     wait    nobody  /usr/libexec/tftpd    tftpd /usr/tftpboot</programlisting>
           </step>
         </procedure>
-          
+
       </step>
-        
+
       <step>
         <para>Enable NFS:</para>
-	
+
         <procedure>
           <step>
             <para>Add this to <filename>/etc/rc.conf</filename>:</para>
 
 	    <programlisting>nfs_server_enable="YES"</programlisting>
           </step>
-            
+
           <step>
             <para>Add this to <filename>/etc/exports</filename>:</para>
 
@@ -119,44 +119,44 @@
           </step>
         </procedure>
       </step>
-        
+
       <step>
-        <para>Reboot to enable the new services or start them 
+        <para>Reboot to enable the new services or start them
           manually.</para>
       </step>
     </procedure>
   </sect1>
-  
+
   <sect1 id="bootstrap-config">
     <title>Bootstrap Setup</title>
 
     <procedure>
       <step>
-        <para>Download bootfiles: Download the 
+        <para>Download bootfiles: Download the
           <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/i386/kern.flp">
-          kern.flp</ulink> and 
-          <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/i386/mfsroot.flp"> 
+          kern.flp</ulink> and
+          <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/i386/mfsroot.flp">
           mfsroot.flp</ulink> floppy images.</para>
       </step>
-      
+
       <step>
         <para>Setup tftp/pxe-boot directory:</para>
-	
+
         <procedure>
           <step>
             <para>Put pxeboot in the boot directory:</para>
-	    
+
 	    <screen>&prompt.root; <userinput>rm -rf /usr/obj/*</userinput>
 &prompt.root; <userinput>cd /usr/src/sys/boot</userinput>
 &prompt.root; <userinput>make</userinput>
 &prompt.root; <userinput>cp /usr/src/sys/boot/i386/pxeldr/pxeboot /usr/tftpboot</userinput></screen>
           </step>
-          
+
           <step>
             <para>Using the vndevice mount the <filename>kern.flp</filename>
 	      file and copy its contents to
 	      <filename>/usr/tftpboot</filename>:</para>
-            
+
 	    <screen>&prompt.root; <userinput>vnconfig vn0 kern.flp</userinput>    # associate a vndevice with the file
 &prompt.root; <userinput>mount /dev/vn0 /mnt</userinput>      # mount it
 &prompt.root; <userinput>cp -R /mnt /usr/tftpboot</userinput> # copy the contents to /usr/tftpboot
@@ -165,21 +165,21 @@
           </step>
         </procedure>
       </step>
-      
+
       <step>
-        <para>Compile a custom kernel for the clients (particularly to avoid 
-          the device config screen at boot) and stick it in 
+        <para>Compile a custom kernel for the clients (particularly to avoid
+          the device config screen at boot) and stick it in
           <filename>/usr/tftpboot</filename>.</para>
       </step>
-      
+
       <step>
-        <para>Make a special <filename>loader.rc</filename> to and install it 
-          in <filename>/usr/tftpboot/boot/loader.rc</filename> so that it 
-          does not prompt for the second disk, here is 
+        <para>Make a special <filename>loader.rc</filename> to and install it
+          in <filename>/usr/tftpboot/boot/loader.rc</filename> so that it
+          does not prompt for the second disk, here is
           <ulink url="http://people.FreeBSD.org/~alfred/pxe/loader.rc">
           mine</ulink>.</para>
       </step>
-      
+
       <step>
         <para>Extract the installer and helper utilities from the mfsroot disk
           and uncompress them, put them in <filename>/usr/tftpboot</filename>
@@ -193,18 +193,18 @@
 &prompt.root; <userinput>cd /usr/tftpboot</userinput>                 # get into the pxeboot directory
 &prompt.root; <userinput>gunzip mfsroot.gz</userinput>                # uncompress the mfsroot</screen>
       </step>
-      
+
       <step>
         <para>Make your sysinstall script <filename>install.cfg</filename>, you
-          can use 
+          can use
           <ulink url="http://people.FreeBSD.org/~alfred/pxe/install.cfg">
           mine</ulink> as a template, but you must edit it.</para>
       </step>
-      
-      <step> 
-        <para>Copy the sysinstall script into the extracted and uncompressed 
+
+      <step>
+        <para>Copy the sysinstall script into the extracted and uncompressed
           mfsroot image:</para>
-          
+
 	<screen>&prompt.root; <userinput>cd /usr/tftpboot</userinput>
 &prompt.root; <userinput>vnconfig vn0 mfsroot</userinput>
 &prompt.root; <userinput>mount /dev/vn0 /mnt</userinput>
@@ -214,10 +214,10 @@
       </step>
     </procedure>
   </sect1>
-  
+
   <sect1 id="install-setup">
     <title>Install Setup</title>
-     
+
     <procedure>
       <step>
         <para>Put the install files in an NFS accessible location on the
@@ -234,46 +234,46 @@
 README.TXT      cdrom.inf       dict            mfsroot.flp
 RELNOTES.TXT    compat1x        doc             packages</screen>
       </step>
-      
+
       <step>
-        <para>Copy the compressed packages into the packages/All directory 
+        <para>Copy the compressed packages into the packages/All directory
           under <filename>nfs</filename>.</para>
       </step>
-      
+
       <step>
         <para>Make sure you have an <filename>INDEX</filename> file prepared
 	  in the packages directory. You can make your own
 	  <filename>INDEX</filename> entries like so:</para>
 
 	<programlisting>alfred-1.0||/|Alfred install bootstrap||alfred at FreeBSD.org||||</programlisting>
-      
+
         <para>Then you can install custom packages, particularly your own
 	  custom post-install package.</para>
       </step>
     </procedure>
   </sect1>
-  
+
   <sect1 id="custom-postinst-package">
     <title>Custom Post-Install Package</title>
 
-    <para>You can use the script <filename>pkgmaker.sh</filename> to create a 
-      custom package for post install, the idea is to have it install and 
-      configure any special things you may need done. 
-      <filename>pkgmaker</filename> is run in the directory above the package 
-      you wish to create with the single argument of the package (ie mypkg) 
-      which will then create a mypkg.tgz for you to include in your sysinstall 
+    <para>You can use the script <filename>pkgmaker.sh</filename> to create a
+      custom package for post install, the idea is to have it install and
+      configure any special things you may need done.
+      <filename>pkgmaker</filename> is run in the directory above the package
+      you wish to create with the single argument of the package (ie mypkg)
+      which will then create a mypkg.tgz for you to include in your sysinstall
       package.</para>
 
-    <para>Inside your custom package dir you will want a file called 
-      <filename>PLIST</filename> which contains all the files that you wish to 
+    <para>Inside your custom package dir you will want a file called
+      <filename>PLIST</filename> which contains all the files that you wish to
       install and be incorporated into your package.</para>
-      
-    <para>You will also want files called <filename>pre</filename> and 
-      <filename>post</filename> in the directory, these are shell scripts 
-      that you want to execute before and after your package is 
+
+    <para>You will also want files called <filename>pre</filename> and
+      <filename>post</filename> in the directory, these are shell scripts
+      that you want to execute before and after your package is
       installed.</para>
-      
-    <para>Since this package is in your <filename>install.cfg</filename> file 
+
+    <para>Since this package is in your <filename>install.cfg</filename> file
       it should be run and do the final configuration for you.</para>
   </sect1>
 </article>
Index: en_US.ISO8859-1/articles//releng/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/releng/article.sgml,v
retrieving revision 1.48
diff -u -r1.48 article.sgml
--- en_US.ISO8859-1/articles//releng/article.sgml	4 May 2003 22:43:19 -0000	1.48
+++ en_US.ISO8859-1/articles//releng/article.sgml	14 Jun 2003 12:37:07 -0000
@@ -58,7 +58,7 @@
     </abstract>
 
   </articleinfo>
-  
+
 <!-- Introduction -->
 <sect1 id="introduction">
   <title>Introduction</title>
@@ -79,7 +79,7 @@
     FreeBSD development.  An elected <emphasis>core-team[7]</emphasis>
     of very senior developers provides some level of direction over
     the project.</para>
-  
+
   <para>The rapid pace of <systemitem
     class="osname">FreeBSD</systemitem> development leaves little time
     for polishing the development system into a production quality
@@ -88,7 +88,7 @@
     <emphasis>HEAD</emphasis> or <emphasis>trunk</emphasis> of our CVS
     tree, known as <quote>FreeBSD-CURRENT</quote> or
     <quote>-CURRENT</quote> for short.</para>
-  
+
   <para>A more stable branch is maintained, known as
     <quote>FreeBSD-STABLE</quote> or <quote>-STABLE</quote> for short.
     Both branches live in a master CVS repository in California and
@@ -101,7 +101,7 @@
     with general assumption that they have first gone into
     FreeBSD-CURRENT and have been thoroughly tested by our user
     community.</para>
-  
+
   <para>In the interim period between releases, nightly snapshots are
     built automatically by the FreeBSD Project build machines and made
     available for download from <systemitem
@@ -113,7 +113,7 @@
     FreeBSD-STABLE in a very reliable condition even before the
     quality assurance activities ramp up pending a major
     release.</para>
-  
+
   <para>Bug reports and feature requests are continuously submitted by
     users throughout the release cycle.  Problems reports are entered into our
     <application class="software">GNATS</application>[9] database
@@ -123,7 +123,7 @@
     In addition to the multitude of different technical mailing lists
     about FreeBSD, the &a.qa; provides a forum for discussing the finer
     points of <quote>release-polishing</quote>.</para>
-  
+
   <para>To service our most conservative users, individual release
     branches were introduced with FreeBSD 4.3.
     These release branches are created shortly before a final release
@@ -133,7 +133,7 @@
     available to keep systems on the
     <emphasis>RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></emphasis>
     branches updated.</para>
-  
+
   <para><xref linkend="release-proc"> discusses the
     different phases of the release engineering process leading up to
     the actual system build and <xref linkend="release-build">
@@ -161,7 +161,7 @@
     From CURRENT</quote> and it describes the process of merging a
     tested change from our -CURRENT development branch to our -STABLE
     branch.</para>
-  
+
   <sect2>
     <title>Code Review</title>
 
@@ -170,31 +170,31 @@
       time, all commits to the -STABLE branch must be approved by the
       &a.re;.  The kinds of changes that are allowed during this 15 day
       period include:</para>
-    
+
     <itemizedlist>
       <listitem>
         <para>Bug fixes.</para>
       </listitem>
-      
+
       <listitem>
         <para>Documentation updates.</para>
       </listitem>
-      
+
       <listitem>
         <para>Security-related fixes of any kind.</para>
       </listitem>
-      
+
       <listitem>
         <para>Minor changes to device drivers, such as adding new Device
         IDs.</para>
       </listitem>
-      
+
       <listitem>
         <para>Any additional change that the release engineering team feels
         is justified, given the potential risk.</para>
       </listitem>
     </itemizedlist>
-    
+
     <para>After the first 15 days of the code slush, a
       <emphasis>release candidate</emphasis> is released for
       widespread testing and the code enters a <quote>code
@@ -209,56 +209,56 @@
       different components required for a successful release are
       available.</para>
   </sect2>
-  
+
   <sect2>
     <title>Final Release Checklist</title>
 
     <para>When several release candidates have been made available for
       widespread testing and all major issues have been resolved, the
       final release <quote>polishing</quote> can begin.</para>
-    
+
     <sect3>
       <title>Creating the Release Branch</title>
 
       <para>As described in the introduction, the
         <literal>RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></literal>
         release branch is a relatively new addition to our release
-        engineering 
+        engineering
         methodology.  The first step in creating this branch is to
         ensure that you are working with the newest version of the
         <literal>RELENG_<replaceable>X</replaceable></literal> sources
         that you want to branch <emphasis>from</emphasis>.</para>
-      
+
       <screen>/usr/src&prompt.root; <userinput>cvs update -rRELENG_4 -P -d</userinput></screen>
-      
+
       <para>The next step is to create a branch point
         <emphasis>tag</emphasis>, so that diffs against the start of
         the branch are easier with CVS:</para>
-      
+
       <screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4 RELENG_4_8_BP src</userinput></screen>
-      
+
       <para>And then a new branch tag is created with:</para>
-      
+
       <screen>/usr/src&prompt.root; <userinput>cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src</userinput></screen>
-      
+
       <note>
         <para><emphasis>The
           <literal>RELENG_<replaceable>*</replaceable></literal> tags
           are restricted for use by the CVS-meisters and release
           engineers.</emphasis></para>
       </note>
-      
+
       <sidebar>
         <para>A <quote><emphasis>tag</emphasis></quote> is CVS
         vernacular for a label that identifies the source at a specific point
         in time.  By tagging the tree, we ensure that future release builders
-        will always be able to use the same source we used to create the 
+        will always be able to use the same source we used to create the
         official FreeBSD Project releases.</para>
       </sidebar>
-      
+
       <mediaobject>
         <imageobject>
-          <imagedata fileref="branches" align="center"> 
+          <imagedata fileref="branches" align="center">
         </imageobject>
 
         <textobject>
@@ -266,14 +266,14 @@
           &branches.ascii;
           </literallayout>
         </textobject>
-    
+
         <textobject>
-          <phrase>FreeBSD Development Branches</phrase> 
+          <phrase>FreeBSD Development Branches</phrase>
         </textobject>
       </mediaobject>
 
     </sect3>
-    
+
     <sect3 id="versionbump">
       <title>Bumping up the Version Number</title>
 
@@ -311,19 +311,19 @@
         <listitem>
           <para><filename>src/release/Makefile</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/release/doc/en_US.ISO8859-1/share/sgml/release.dsl</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/release/doc/share/examples/Makefile.relnotesng</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/release/doc/share/sgml/release.ent</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/share/examples/cvsup/standard-supfile</filename></para>
         </listitem>
@@ -331,15 +331,15 @@
         <listitem>
           <para><filename>src/sys/conf/newvers.sh</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/sys/sys/param.h</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/usr.sbin/pkg_install/add/main.c</filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>www/en/docs.sgml</filename></para>
         </listitem>
@@ -353,26 +353,26 @@
         </listitem>
 
       </itemizedlist>
-    
+
       <para>The release notes and errata files also need to be adjusted for the
-      new release (on the release branch) and truncated appropriately 
+      new release (on the release branch) and truncated appropriately
       (on the stable/current branch):</para>
-    
+
       <itemizedlist>
         <listitem>
           <para><filename>src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml
           </filename></para>
         </listitem>
-      
+
         <listitem>
           <para><filename>src/release/doc/en_US.ISO8859-1/errata/article.sgml
           </filename></para>
         </listitem>
       </itemizedlist>
 
-      <para><application>Sysinstall</application> should be updated to note 
+      <para><application>Sysinstall</application> should be updated to note
         the number of available ports and the amount of disk space required
-	for the Ports Collection.  This information is currently kept in 
+	for the Ports Collection.  This information is currently kept in
 	<filename>src/release/sysinstall/dist.c</filename>.</para>
 
       <para>After the release has been built, a number of file should
@@ -402,22 +402,22 @@
       </itemizedlist>
 
     </sect3>
-    
+
     <sect3>
       <title>Creating Release Tags</title>
 
       <para>When the final release is ready, the following command
         will create the <literal>RELENG_4_8_0_RELEASE</literal>
         tag.</para>
-      
+
       <screen>
       /usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src</userinput>
       </screen>
-      
+
       <para>The Documentation and Ports managers are responsible for
         tagging the respective trees with the <literal>RELEASE_4_8_0</literal>
         tag.</para>
-      
+
       <para>Occasionally, a last minute fix may be required
         <emphasis>after</emphasis> the final tags have been created.
         In practice this isn't a problem, since <acronym>CVS</acronym>
@@ -453,7 +453,7 @@
     CDROM, installation floppies, and an FTP install directory.  This
     command is aptly named <command>make
     release</command>.</para>
-  
+
   <sect2>
     <title><command>make release</command></title>
 
@@ -464,29 +464,29 @@
       buildworld</command>. The release
       target requires several variables be set properly to build a
       release:</para>
-    
+
     <itemizedlist>
       <listitem>
         <para><makevar>CHROOTDIR</makevar> - The directory to be used as the
         chroot environment for the entire release build.</para>
       </listitem>
-      
+
       <listitem>
         <para><makevar>BUILDNAME</makevar> - The name of the release to be
         built.</para>
       </listitem>
-      
+
       <listitem>
         <para><makevar>CVSROOT</makevar> - The location of a CVS Repository.
         </para>
       </listitem>
-      
+
       <listitem>
         <para><makevar>RELEASETAG</makevar> - The CVS tag corresponding to the
         release you would like to build.</para>
-      </listitem>    
+      </listitem>
     </itemizedlist>
-    
+
      <para>If you do not already have access to a local CVS
        repository, then you may mirror one with <ulink
        url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/synching.html#CVSUP">CVSup</ulink>.
@@ -505,7 +505,7 @@
        top of <filename>src/release/Makefile</filename>. The exact
        command used to build the official FreeBSD 4.7 (x86) release
        was:</para>
-     
+
      <screen><command>make <literal>release CHROOTDIR=/local3/release \
        BUILDNAME=4.7-RELEASE \
        CVSROOT=/host/cvs/usr/home/ncvs \
@@ -515,81 +515,81 @@
 
      <para>The release <filename>Makefile</filename> can be broken down into several distinct
        steps.</para>
-     
+
     <itemizedlist>
       <listitem>
-        <para>Creation of a sanitized system environment in a separate 
-	directory hierarchy with <quote><command>make 
+        <para>Creation of a sanitized system environment in a separate
+	directory hierarchy with <quote><command>make
 	<literal>installworld</literal></command></quote>.
         </para>
       </listitem>
-      
+
       <listitem>
-        <para>Checkout from CVS of a clean version of the system source, 
+        <para>Checkout from CVS of a clean version of the system source,
         documentation, and ports into the release build hierarchy.</para>
       </listitem>
-      
+
       <listitem>
-        <para>Population of <filename>/etc</filename> and 
+        <para>Population of <filename>/etc</filename> and
         <filename>/dev</filename> in the chrooted
         environment.</para>
       </listitem>
-      
+
       <listitem>
-        <para>chroot into the release build hierarchy, to make it harder for 
+        <para>chroot into the release build hierarchy, to make it harder for
         the outside environment to taint this build.</para>
       </listitem>
-      
+
       <listitem>
         <para><command>make world</command>
         in the chrooted environment.</para>
       </listitem>
-      
+
       <listitem>
         <para>Build of Kerberos-related binaries.</para>
       </listitem>
-      
+
       <listitem>
         <para>Build <filename>GENERIC</filename> kernel.</para>
       </listitem>
-      
+
       <listitem>
-        <para>Creation of a staging directory tree where the binary 
+        <para>Creation of a staging directory tree where the binary
         distributions will be built and packaged.</para>
       </listitem>
-      
+
       <listitem>
-        <para>Build and installation of the documentation toolchain needed to 
-        convert the documentation source (SGML) into HTML and text documents 
+        <para>Build and installation of the documentation toolchain needed to
+        convert the documentation source (SGML) into HTML and text documents
         that will accompany the release.</para>
       </listitem>
-      
+
       <listitem>
-        <para>Build and installation of the actual documentation 
-        (user manuals, tutorials, release notes, hardware compatibility lists, 
+        <para>Build and installation of the actual documentation
+        (user manuals, tutorials, release notes, hardware compatibility lists,
         and so on.)</para>
       </listitem>
-      
+
       <listitem>
-        <para>Build of the <quote>crunched</quote> binaries used for 
+        <para>Build of the <quote>crunched</quote> binaries used for
         installation floppies.</para>
       </listitem>
-      
+
       <listitem>
         <para>Package up distribution tarballs of the binaries and sources.
         </para>
       </listitem>
-      
+
       <listitem>
         <para>Create the boot media and a <quote>fixit</quote> floppy.</para>
       </listitem>
-      
+
       <listitem>
         <para>Create FTP installation hierarchy.</para>
       </listitem>
-      
+
       <listitem>
-        <para><emphasis>(optionally)</emphasis> Create ISO images for 
+        <para><emphasis>(optionally)</emphasis> Create ISO images for
         CDROM/DVD media.</para>
       </listitem>
     </itemizedlist>
@@ -598,7 +598,7 @@
       please see &man.release.7;.</para>
 
   </sect2>
-  
+
   <sect2>
     <title>Building <application>XFree86</application></title>
 
@@ -625,7 +625,7 @@
       be unwise to distribute binaries that were built on a system
       with <varname>CPUTYPE</varname> set to a specific
       processor.</para></note>
-    
+
   </sect2>
 
   <sect2>
@@ -644,7 +644,7 @@
       in depth.</para>
 
   </sect2>
-  
+
   <sect2>
     <title>Release ISOs</title>
 
@@ -660,11 +660,11 @@
       provides a manifest for the disc. This
       <emphasis>manifest</emphasis> can be created with a simple
       command:</para>
-    
+
     <screen>/stage/cdrom&prompt.root; <userinput>find . -type f | sed -e 's/^\.\///' | sort > filename.txt</userinput></screen>
-    
+
     <para>The specific requirements of each CD are outlined below.</para>
-    
+
     <sect3>
       <title>Disc 1</title>
 
@@ -679,7 +679,7 @@
         installation floppies from other operating systems. This disc
         should be made bootable so that users of modern PCs do not
         need to create installation floppy disks.</para>
-      
+
       <para>If an alternate version of XFree86 is to be provided, then
         &man.sysinstall.8; must be updated to reflect the new location
         and installation instructions. The relevant code is contained
@@ -689,7 +689,7 @@
         <filename>menus.c</filename>, and
         <filename>config.c</filename> will need to be updated.</para>
     </sect3>
-    
+
     <sect3>
       <title>Disc 2</title>
 
@@ -702,7 +702,7 @@
         commercial software demos in the <filename>commerce</filename>
         directory.</para>
     </sect3>
-    
+
     <sect3>
       <title>Discs 3 and 4</title>
 
@@ -807,7 +807,7 @@
     certainly encourage innovation in the form of advanced
     installation and administration tools, for example, but we can't
     be expected to answer questions about it.</para>
-  
+
   <sect2>
     <title>Creating Customized Boot floppies</title>
 
@@ -816,46 +816,46 @@
       installation floppies.  The <quote>quick and dirty</quote> way
       to accomplish this would be to modify the staging directory of
       an existing <command>make release</command> build hierarchy:</para>
-    
+
     <itemizedlist>
       <listitem>
         <para>Apply patches or add additional files inside the chroot
           release build directory.</para>
       </listitem>
-      
+
       <listitem>
-        <para><command>rm 
+        <para><command>rm
         ${CHROOTDIR}/usr/obj/usr/src/release/release.[59]</command></para>
       </listitem>
-      
+
       <listitem>
         <para>rebuild &man.sysinstall.8;, the kernel, or whatever
           parts of the system your change affected.</para>
       </listitem>
-      
+
       <listitem>
         <para><command>chroot ${CHROOTDIR} ./mk floppies
         </command></para>
       </listitem>
-      
+
     </itemizedlist>
-    
+
     <para>New release floppies will be located in
       <filename>${CHROOTDIR}/R/stage/floppies</filename>.</para>
-    
+
     <para>Alternatively, the
       <filename>boot.flp</filename> make
       target can be called, or the filesystem
       creating script,
       <filename>src/release/scripts/doFS.sh</filename>, may be invoked
       directly.</para>
-    
+
     <para>Local patches may also be supplied to the release build by
       defining the <makevar>LOCAL_PATCH</makevar> variable in <command>make
       release</command>.
     </para>
   </sect2>
-  
+
   <sect2>
     <title>Scripting <command>sysinstall</command></title>
 
@@ -884,7 +884,7 @@
     found in the earlier release candidates. A total of over
     <emphasis>500</emphasis> emails were sent to the &a.re; in
     little over a month.</para>
-  
+
   <para>Our user community has made it very clear that the security
     and stability of a FreeBSD release should not be sacrificed for
     any self-imposed deadlines or target release dates.  The FreeBSD
@@ -902,7 +902,7 @@
     scale with our growing userbase. Along these lines we are working
     very hard to document the procedures involved in producing FreeBSD
     releases.</para>
-  
+
   <itemizedlist>
     <listitem>
       <para><emphasis>Parallelism</emphasis> - Certain portions of the
@@ -918,19 +918,19 @@
         <acronym>RAID</acronym> solution (hardware or software) can
         significantly decrease the overall build time.</para>
     </listitem>
-      
+
     <listitem>
       <para><emphasis>Cross-building releases</emphasis> - Building
         IA-64 or Alpha release on x86 hardware? <command>make
         TARGET=ia64 release</command>.
       </para>
     </listitem>
-    
+
     <listitem>
       <para><emphasis>Regression Testing</emphasis> - We need better
         automated correctness testing for FreeBSD.</para>
     </listitem>
-      
+
     <listitem>
       <para><emphasis>Installation Tools</emphasis> - Our installation
         program has long since outlived its intended life span.
@@ -940,7 +940,7 @@
         package framework and GUI installation program.</para>
     </listitem>
   </itemizedlist>
-  
+
 </sect1>
 
 <!-- Acknowledgements -->
@@ -964,53 +964,53 @@
 <!-- Reference / Biblio Section -->
 <sect1 id="biblio">
   <title>References</title>
-  <para>[1] CVS - Concurrent Versions System 
+  <para>[1] CVS - Concurrent Versions System
   <ulink url="http://www.cvshome.org"></ulink></para>
-  
+
   <para>[2] CVSup - The CVS-Optimized General Purpose Network File Distribution
   System <ulink url="http://www.polstra.com/projects/freeware/CVSup"></ulink>
   </para>
-  
+
   <para>[3] <ulink url="http://bento.FreeBSD.org"></ulink></para>
-  
-  <para>[4] FreeBSD Ports Collection 
+
+  <para>[4] FreeBSD Ports Collection
   <ulink url="http://www.FreeBSD.org/ports"></ulink></para>
-  
-  <para>[5] The libh Project 
+
+  <para>[5] The libh Project
   <ulink url="http://www.FreeBSD.org/projects/libh.html"></ulink></para>
-  
-  <para>[6] FreeBSD Committers <ulink 
+
+  <para>[6] FreeBSD Committers <ulink
   url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html"></ulink>
   </para>
-  
-  <para>[7] FreeBSD Core-Team 
+
+  <para>[7] FreeBSD Core-Team
   <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html"></ulink></para>
-  
-  <para>[8] FreeBSD Handbook 
+
+  <para>[8] FreeBSD Handbook
   <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook"></ulink>
   </para>
-  
+
   <para>[9] GNATS: The GNU Bug Tracking System
   <ulink url="http://www.gnu.org/software/gnats"></ulink>
   </para>
-  
+
   <para>[10] FreeBSD PR Statistics
   <ulink url="http://www.FreeBSD.org/prstats/index.html"></ulink></para>
-  
-  <para>[11] NetBSD Developer Documentation: Release Engineering 
+
+  <para>[11] NetBSD Developer Documentation: Release Engineering
   <ulink url="http://www.NetBSD.org/developers/releng/index.html"></ulink>
   </para>
-  
-  <para>[12] John Baldwin's FreeBSD Release Engineering Proposal 
+
+  <para>[12] John Baldwin's FreeBSD Release Engineering Proposal
   <ulink url="http://people.FreeBSD.org/~jhb/docs/releng.txt"></ulink>
   </para>
-  
-  <para>[13] PXE Jumpstart Guide 
-  <ulink 
+
+  <para>[13] PXE Jumpstart Guide
+  <ulink
   url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/pxe/index.html"></ulink>
   </para>
-  
-  <para>[14] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic: 
+
+  <para>[14] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic:
   <ulink url="http://docs.FreeBSD.org/44doc/papers/releng.html">
 <emphasis>The Release Engineering of 4.3BSD</emphasis></ulink>
   </para>
Index: en_US.ISO8859-1/articles//serial-uart/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/serial-uart/article.sgml,v
retrieving revision 1.7
diff -u -r1.7 article.sgml
--- en_US.ISO8859-1/articles//serial-uart/article.sgml	2 Dec 2002 21:11:54 -0000	1.7
+++ en_US.ISO8859-1/articles//serial-uart/article.sgml	14 Jun 2003 12:37:31 -0000
@@ -8,25 +8,25 @@
 <article>
   <articleinfo>
     <title>Serial and UART Tutorial</title>
-    
+
     <authorgroup>
       <author>
         <firstname>Frank</firstname>
         <surname>Durda</surname>
-        
+
         <affiliation>
           <address><email>uhclem at FreeBSD.org</email></address>
         </affiliation>
       </author>
     </authorgroup>
-    
+
     <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/serial-uart/article.sgml,v 1.7 2002/12/02 21:11:54 blackend Exp $</pubdate>
-    
+
     <abstract>
       <para>This article talks about using serial hardware with FreeBSD.</para>
     </abstract>
   </articleinfo>
-  
+
   <sect1 id="uart">
     <title>The UART: What it is and how it works</title>
 
@@ -39,11 +39,11 @@
 	transmits the individual bits in a sequential fashion.  At the
 	destination, a second UART re-assembles the bits into complete
 	bytes.</para>
-	    
+
       <para>Serial transmission is commonly used with modems and for
 	non-networked communication between computers, terminals and
 	other devices.</para>
-	    
+
       <para>There are two primary forms of serial transmission:
 	Synchronous and Asynchronous.  Depending on the modes that are
 	supported by the hardware, the name of the communication
@@ -51,13 +51,13 @@
 	supports Asynchronous communications, and a
 	<literal>S</literal> if it supports Synchronous
 	communications.  Both forms are described below.</para>
-	    
+
       <para>Some common acronyms are:</para>
-	  
+
       <blockquote>
 	<para>UART Universal Asynchronous Receiver/Transmitter</para>
       </blockquote>
-	  
+
       <blockquote>
 	<para>USART Universal Synchronous-Asynchronous
 	  Receiver/Transmitter</para>
@@ -65,7 +65,7 @@
 
       <sect2>
         <title>Synchronous Serial Transmission</title>
-	  
+
 	<para>Synchronous serial transmission requires that the sender
 	  and receiver share a clock with one another, or that the
 	  sender provide a strobe or other timing signal so that the
@@ -79,7 +79,7 @@
 	  synchronous communication can be more costly if extra wiring
 	  and circuits are required to share a clock signal between
 	  the sender and receiver.</para>
-	      
+
 	<para>A form of Synchronous transmission is used with printers
 	  and fixed disk devices in that the data is sent on one set
 	  of wires while a clock or strobe is sent on a different
@@ -88,7 +88,7 @@
 	  send an entire word of data for each clock or strobe signal
 	  by using a separate wire for each bit of the word.  In the
 	  PC industry, these are known as Parallel devices.</para>
-	      
+
 	<para>The standard serial communications hardware in the PC
 	  does not support Synchronous operations.  This mode is
 	  described here for comparison purposes only.</para>
@@ -96,14 +96,14 @@
 
       <sect2>
         <title>Asynchronous Serial Transmission</title>
-	  
+
 	<para>Asynchronous transmission allows data to be transmitted
 	  without the sender having to send a clock signal to the
 	  receiver.  Instead, the sender and receiver must agree on
 	  timing parameters in advance and special bits are added to
 	  each word which are used to synchronize the sending and
 	  receiving units.</para>
-	      
+
 	<para>When a word is given to the UART for Asynchronous
 	  transmissions, a bit called the "Start Bit" is added to the
 	  beginning of each word that is to be transmitted.  The Start
@@ -115,7 +115,7 @@
 	  the remaining bits in the word.  (This requirement was set
 	  in the days of mechanical teleprinters and is easily met by
 	  modern electronic equipment.)</para>
-	      
+
 	<para>After the Start Bit, the individual bits of the word of
 	  data are sent, with the Least Significant Bit (LSB) being
 	  sent first.  Each bit in the transmission is transmitted for
@@ -129,18 +129,18 @@
 	  <literal>0</literal> after one second has passed, then it
 	  will wait two seconds and then examine the value of the next
 	  bit, and so on.</para>
-	      
+
 	<para>The sender does not know when the receiver has
 	  <quote>looked</quote> at the value of the bit.  The sender
 	  only knows when the clock says to begin transmitting the
 	  next bit of the word.</para>
-	      
+
 	<para>When the entire data word has been sent, the transmitter
 	  may add a Parity Bit that the transmitter generates.  The
 	  Parity Bit may be used by the receiver to perform simple
 	  error checking.  Then at least one Stop Bit is sent by the
 	  transmitter.</para>
-	      
+
 	<para>When the receiver has received all of the bits in the
 	  data word, it may check for the Parity Bits (both sender and
 	  receiver must agree on whether a Parity Bit is to be used),
@@ -151,16 +151,16 @@
 	  usual cause of a Framing Error is that the sender and
 	  receiver clocks were not running at the same speed, or that
 	  the signal was interrupted.</para>
-	      
+
 	<para>Regardless of whether the data was received correctly or
 	  not, the UART automatically discards the Start, Parity and
 	  Stop bits.  If the sender and receiver are configured
 	  identically, these bits are not passed to the host.</para>
-	      
+
 	<para>If another word is ready for transmission, the Start Bit
 	  for the new word can be sent as soon as the Stop Bit for the
 	  previous word has been sent.</para>
-	      
+
 	<para>Because asynchronous data is <quote>self
 	  synchronizing</quote>, if there is no data to transmit, the
 	  transmission line can be idle.</para>
@@ -168,7 +168,7 @@
 
       <sect2>
         <title>Other UART Functions</title>
-	  
+
 	<para>In addition to the basic job of converting data from
 	  parallel to serial for transmission and from serial to
 	  parallel on reception, a UART will usually provide
@@ -186,23 +186,23 @@
 
       <sect2>
         <title>The RS232-C and V.24 Standards</title>
-	  
+
 	<para>In most computer systems, the UART is connected to
 	  circuitry that generates signals that comply with the EIA
 	  RS232-C specification.  There is also a CCITT standard named
 	  V.24 that mirrors the specifications included in
 	  RS232-C.</para>
-	      
+
 	<sect3>
 	  <title>RS232-C Bit Assignments (Marks and Spaces)</title>
-	    
+
 	  <para>In RS232-C, a value of <literal>1</literal> is called
 	    a <literal>Mark</literal> and a value of
 	    <literal>0</literal> is called a <literal>Space</literal>.
 	    When a communication line is idle, the line is said to be
 	    <quote>Marking</quote>, or transmitting continuous
 	    <literal>1</literal> values.</para>
-		
+
 	  <para>The Start bit always has a value of
 	    <literal>0</literal> (a Space).  The Stop Bit always has a
 	    value of <literal>1</literal> (a Mark).  This means that
@@ -212,12 +212,12 @@
 	    sender and receiver can resynchronize their clocks
 	    regardless of the content of the data bits that are being
 	    transmitted.</para>
-		
+
 	  <para>The idle time between Stop and Start bits does not
 	    have to be an exact multiple (including zero) of the bit
 	    rate of the communication link, but most UARTs are
 	    designed this way for simplicity.</para>
-		
+
 	  <para>In RS232-C, the "Marking" signal (a
 	    <literal>1</literal>) is represented by a voltage between
 	    -2 VDC and -12 VDC, and a "Spacing" signal (a
@@ -230,24 +230,24 @@
 	    acceptable to a RS232-C receiver, provided that the cable
 	    lengths are short.</para>
 	</sect3>
-	      
+
 	<sect3>
 	  <title>RS232-C Break Signal</title>
-	    
+
 	  <para>RS232-C also specifies a signal called a
 	    <literal>Break</literal>, which is caused by sending
 	    continuous Spacing values (no Start or Stop bits).  When
 	    there is no electricity present on the data circuit, the
 	    line is considered to be sending
 	    <literal>Break</literal>.</para>
-		
+
 	  <para>The <literal>Break</literal> signal must be of a
 	    duration longer than the time it takes to send a complete
 	    byte plus Start, Stop and Parity bits.  Most UARTs can
 	    distinguish between a Framing Error and a Break, but if
 	    the UART cannot do this, the Framing Error detection can
 	    be used to identify Breaks.</para>
-		
+
 	  <para>In the days of teleprinters, when numerous printers
 	    around the country were wired in series (such as news
 	    services), any unit could cause a <literal>Break</literal>
@@ -255,7 +255,7 @@
 	    current flowed.  This was used to allow a location with
 	    urgent news to interrupt some other location that was
 	    currently sending information.</para>
-		
+
 	  <para>In modern systems there are two types of Break
 	    signals. If the Break is longer than 1.6 seconds, it is
 	    considered a "Modem Break", and some modems can be
@@ -267,7 +267,7 @@
 	    is used as an Attention or Interrupt signal and sometimes
 	    is accepted as a substitute for the ASCII CONTROL-C
 	    character.</para>
-		
+
 	  <para>Marks and Spaces are also equivalent to
 	    <quote>Holes</quote> and <quote>No Holes</quote> in paper
 	    tape systems.</para>
@@ -280,10 +280,10 @@
 	      a special command from the host processor.</para>
 	  </note>
 	</sect3>
-	  
+
 	<sect3>
 	  <title>RS232-C DTE and DCE Devices</title>
-	    
+
 	  <para>The RS232-C specification defines two types of
 	    equipment: the Data Terminal Equipment (DTE) and the Data
 	    Carrier Equipment (DCE).  Usually, the DTE device is the
@@ -293,7 +293,7 @@
 	    is connected to that modem is a DTE device.  The DCE
 	    device receives signals on the pins that the DTE device
 	    transmits on, and vice versa.</para>
-		
+
 	  <para>When two devices that are both DTE or both DCE must be
 	    connected together without a modem or a similar media
 	    translater between them, a NULL modem must be used.  The
@@ -303,34 +303,34 @@
 	    are performed on all of the control signals so that each
 	    device will see what it thinks are DCE (or DTE) signals
 	    from the other device.</para>
-		
+
 	  <para>The number of signals generated by the DTE and DCE
 	    devices are not symmetrical.  The DTE device generates
 	    fewer signals for the DCE device than the DTE device
 	    receives from the DCE.</para>
 	</sect3>
-	  
+
 	<sect3>
 	  <title>RS232-C Pin Assignments</title>
-	    
+
 	  <para>The EIA RS232-C specification (and the ITU equivalent,
 	    V.24) calls for a twenty-five pin connector (usually a
 	    DB25) and defines the purpose of most of the pins in that
 	    connector.</para>
-		
+
 	  <para>In the IBM Personal Computer and similar systems, a
 	    subset of RS232-C signals are provided via nine pin
 	    connectors (DB9).  The signals that are not included on
 	    the PC connector deal mainly with synchronous operation,
 	    and this transmission mode is not supported by the UART
 	    that IBM selected for use in the IBM PC.</para>
-		
+
 	  <para>Depending on the computer manufacturer, a DB25, a DB9,
 	    or both types of connector may be used for RS232-C
 	    communications.  (The IBM PC also uses a DB25 connector
 	    for the parallel printer interface which causes some
 	    confusion.)</para>
-		
+
 	  <para>Below is a table of the RS232-C signal assignments in
 	    the DB25 and DB9 connectors.</para>
 
@@ -345,7 +345,7 @@
 		  <entry>Description</entry>
 		</row>
 	      </thead>
-		
+
 	      <tbody>
 		<row>
 		  <entry>1</entry>
@@ -356,7 +356,7 @@
 		  <entry>-</entry>
 		  <entry>Frame/Protective Ground</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>2</entry>
 		  <entry>3</entry>
@@ -366,7 +366,7 @@
 		  <entry>DTE</entry>
 		  <entry>Transmit Data</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>3</entry>
 		  <entry>2</entry>
@@ -376,7 +376,7 @@
 		  <entry>DCE</entry>
 		  <entry>Receive Data</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>4</entry>
 		  <entry>7</entry>
@@ -386,7 +386,7 @@
 		  <entry>DTE</entry>
 		  <entry>Request to Send</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>5</entry>
 		  <entry>8</entry>
@@ -396,7 +396,7 @@
 		  <entry>DCE</entry>
 		  <entry>Clear to Send</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>6</entry>
 		  <entry>6</entry>
@@ -406,7 +406,7 @@
 		  <entry>DCE</entry>
 		  <entry>Data Set Ready</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>7</entry>
 		  <entry>5</entry>
@@ -416,7 +416,7 @@
 		  <entry>-</entry>
 		  <entry>Signal Ground</entry>
 		</row>
-		
+
 		<row>
 		  <entry>8</entry>
 		  <entry>1</entry>
@@ -426,7 +426,7 @@
 		  <entry>DCE</entry>
 		  <entry>Data Carrier Detect</entry>
 		</row>
-		
+
 		<row>
 		  <entry>9</entry>
 		  <entry>-</entry>
@@ -436,7 +436,7 @@
 		  <entry>-</entry>
 		  <entry>Reserved for Test</entry>
 		</row>
-		
+
 		<row>
 		  <entry>10</entry>
 		  <entry>-</entry>
@@ -446,7 +446,7 @@
 		  <entry>-</entry>
 		  <entry>Reserved for Test</entry>
 		</row>
-		
+
 		<row>
 		  <entry>11</entry>
 		  <entry>-</entry>
@@ -456,17 +456,8 @@
 		  <entry>-</entry>
 		  <entry>Reserved for Test</entry>
 		</row>
-		
-		<row>
-		  <entry>12</entry>
-		  <entry>-</entry>
-		  <entry>CI</entry>
-		  <entry>122</entry>
-		  <entry>SRLSD</entry>
-		  <entry>DCE</entry>
-		  <entry>Sec. Recv. Line Signal Detector</entry>
-		</row>
-		
+<row> <entry>12</entry> <entry>-</entry> <entry>CI</entry> <entry>122</entry> <entry>SRLSD</entry> <entry>DCE</entry> <entry>Sec. Recv. Line Signal Detector</entry> </row>
+
 		<row>
 		  <entry>13</entry>
 		  <entry>-</entry>
@@ -476,7 +467,7 @@
 		  <entry>DCE</entry>
 		  <entry>Secondary Clear to Send</entry>
 		</row>
-		
+
 		<row>
 		  <entry>14</entry>
 		  <entry>-</entry>
@@ -486,7 +477,7 @@
 		  <entry>DTE</entry>
 		  <entry>Secondary Transmit Data</entry>
 		</row>
-		
+
 		<row>
 		  <entry>15</entry>
 		  <entry>-</entry>
@@ -496,7 +487,7 @@
 		  <entry>DCE</entry>
 		  <entry>Trans. Sig. Element Timing</entry>
 		</row>
-		
+
 		<row>
 		  <entry>16</entry>
 		  <entry>-</entry>
@@ -506,7 +497,7 @@
 		  <entry>DCE</entry>
 		  <entry>Secondary Received Data</entry>
 		</row>
-		
+
 		<row>
 		  <entry>17</entry>
 		  <entry>-</entry>
@@ -516,7 +507,7 @@
 		  <entry>DCE</entry>
 		  <entry>Receiver Signal Element Timing</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>18</entry>
 		  <entry>-</entry>
@@ -526,7 +517,7 @@
 		  <entry>DTE</entry>
 		  <entry>Local Loopback</entry>
 		</row>
-		
+
 		<row>
 		  <entry>19</entry>
 		  <entry>-</entry>
@@ -536,7 +527,7 @@
 		  <entry>DTE</entry>
 		  <entry>Secondary Request to Send</entry>
 		</row>
-		
+
 		<row>
 		  <entry>20</entry>
 		  <entry>4</entry>
@@ -546,7 +537,7 @@
 		  <entry>DTE</entry>
 		  <entry>Data Terminal Ready</entry>
 		</row>
-		
+
 		<row>
 		  <entry>21</entry>
 		  <entry>-</entry>
@@ -556,7 +547,7 @@
 		  <entry>DTE</entry>
 		  <entry>Remote Digital Loopback</entry>
 		</row>
-		
+
 		<row>
 		  <entry>22</entry>
 		  <entry>9</entry>
@@ -566,7 +557,7 @@
 		  <entry>DCE</entry>
 		  <entry>Ring Indicator</entry>
 		</row>
-		
+
 		<row>
 		  <entry>23</entry>
 		  <entry>-</entry>
@@ -576,7 +567,7 @@
 		  <entry>DTE</entry>
 		  <entry>Data Signal Rate Selector</entry>
 		</row>
-		
+
 		<row>
 		  <entry>24</entry>
 		  <entry>-</entry>
@@ -586,7 +577,7 @@
 		  <entry>DTE</entry>
 		  <entry>Trans. Sig. Element Timing</entry>
 		</row>
-		
+
 		<row>
 		  <entry>25</entry>
 		  <entry>-</entry>
@@ -604,12 +595,12 @@
 
       <sect2>
 	<title>Bits, Baud and Symbols</title>
-	  
+
 	<para>Baud is a measurement of transmission speed in
 	  asynchronous communication.  Because of advances in modem
 	  communication technology, this term is frequently misused
 	  when describing the data rates in newer devices.</para>
-	      
+
 	<para>Traditionally, a Baud Rate represents the number of bits
 	  that are actually being sent over the media, not the amount
 	  of data that is actually moved from one DTE device to the
@@ -621,12 +612,12 @@
 	  per second from one place to another can normally only move
 	  30 7-bit words if Parity is used and one Start and Stop bit
 	  are present.</para>
-	      
+
 	<para>If 8-bit data words are used and Parity bits are also
 	  used, the data rate falls to 27.27 words per second, because
 	  it now takes 11 bits to send the eight-bit words, and the
 	  modem still only sends 300 bits per second.</para>
-	      
+
 	<para>The formula for converting bytes per second into a baud
 	  rate and vice versa was simple until error-correcting modems
 	  came along.  These modems receive the serial stream of bits
@@ -642,7 +633,7 @@
 	  bits to the words, converts them to a serial format and then
 	  sends them to the receiving UART in the remote computer, who
 	  then strips the Start, Stop and Parity bits.</para>
-	      
+
 	<para>The reason all these extra conversions are done is so
 	  that the two modems can perform error correction, which
 	  means that the receiving modem is able to ask the sending
@@ -650,7 +641,7 @@
 	  the correct checksum.  This checking is handled by the
 	  modems, and the DTE devices are usually unaware that the
 	  process is occurring.</para>
-	      
+
 	<para>By striping the Start, Stop and Parity bits, the
 	  additional bits of data that the two modems must share
 	  between themselves to perform error-correction are mostly
@@ -661,14 +652,14 @@
 	  will be able to add 30 bits of its own information that the
 	  receiving modem can use to do error-correction without
 	  impacting the transmission speed of the real data.</para>
-	      
+
 	<para>The use of the term Baud is further confused by modems
 	  that perform compression.  A single 8-bit word passed over
 	  the telephone line might represent a dozen words that were
 	  transmitted to the sending modem.  The receiving modem will
 	  expand the data back to its original content and pass that
 	  data to the receiving DTE.</para>
-	      
+
 	<para>Modern modems also include buffers that allow the rate
 	  that bits move across the phone line (DCE to DCE) to be a
 	  different speed than the speed that the bits move between
@@ -676,7 +667,7 @@
 	  the speed between the DTE and DCE is higher than the DCE to
 	  DCE speed because of the use of compression by the
 	  modems.</para>
-	      
+
 	<para>Because the number of bits needed to describe a byte
 	  varied during the trip between the two machines plus the
 	  differing bits-per-seconds speeds that are used present on
@@ -689,7 +680,7 @@
 	  connection is made between two systems with a wired
 	  connection, or if a modem is in use that is not performing
 	  error-correction or compression.</para>
-	      
+
 	<para>Modern high speed modems (2400, 9600, 14,400, and
 	  19,200bps) in reality still operate at or below 2400 baud,
 	  or more accurately, 2400 Symbols per second.  High speed
@@ -704,17 +695,17 @@
 
       <sect2>
 	<title>The IBM Personal Computer UART</title>
-	  
+
 	<para>Starting with the original IBM Personal Computer, IBM
 	  selected the National Semiconductor INS8250 UART for use in
 	  the IBM PC Parallel/Serial Adapter.  Subsequent generations
 	  of compatible computers from IBM and other vendors continued
 	  to use the INS8250 or improved versions of the National
 	  Semiconductor UART family.</para>
-	      
+
 	<sect3>
 	  <title>National Semiconductor UART Family Tree</title>
-	    
+
 	  <para>There have been several versions and subsequent
 	    generations of the INS8250 UART.  Each major version is
 	    described below.</para>
@@ -730,7 +721,7 @@
                         \
                          \
                           \-> NS16550 -> NS16550A -> PC16550D</programlisting>
-		
+
 	  <variablelist>
 	    <varlistentry>
 	      <term>INS8250</term>
@@ -740,7 +731,7 @@
 		  IBM PC/XT.  The original name for this part was the
 		  INS8250 ACE (Asynchronous Communications Element)
 		  and it is made from NMOS technology.</para>
-			
+
 		<para>The 8250 uses eight I/O ports and has a one-byte
 		  send and a one-byte receive buffer.  This original
 		  UART has several race conditions and other
@@ -751,20 +742,20 @@
 		  original IBM PC or IBM PC/XT.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>INS8250-B</term>
-		
+
 	      <listitem>
 		<para>This is the slower speed of the INS8250 made
 		  from NMOS technology.  It contains the same problems
 		  as the original INS8250.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>INS8250A</term>
-		
+
 	      <listitem>
 		<para>An improved version of the INS8250 using XMOS
 		  technology with various functional flaws
@@ -776,20 +767,20 @@
 		  INS8250B.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>INS82C50A</term>
-		
+
 	      <listitem>
 		<para>This is a CMOS version (low power consumption)
 		  of the INS8250A and has similar functional
 		  characteristics.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>NS16450</term>
-		
+
 	      <listitem>
 		<para>Same as NS8250A with improvements so it can be
 		  used with faster CPU bus designs.  IBM used this
@@ -797,29 +788,29 @@
 		  longer rely on the bugs in the INS8250.</para>
               </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>NS16C450</term>
-		
+
 	      <listitem>
 		<para>This is a CMOS version (low power consumption)
 		  of the NS16450.</para>
               </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>NS16550</term>
-		
+
 	      <listitem>
 		<para>Same as NS16450 with a 16-byte send and receive
 		  buffer but the buffer design was flawed and could
 		  not be reliably be used.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>NS16550A</term>
-		
+
 	      <listitem>
 		<para>Same as NS16550 with the buffer flaws
 		  corrected. The 16550A and its successors have become
@@ -829,19 +820,19 @@
 		  interrupt response times.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>NS16C552</term>
-		
+
 	      <listitem>
 		<para>This component consists of two NS16C550A CMOS
 		  UARTs in a single package.</para>
 	      </listitem>
 	    </varlistentry>
-	      
+
 	    <varlistentry>
 	      <term>PC16550D</term>
-		
+
 	      <listitem>
 		<para>Same as NS16550A with subtle flaws
 		  corrected. This is revision D of the 16550 family
@@ -851,10 +842,10 @@
 	    </varlistentry>
 	  </variablelist>
 	</sect3>
-	  
+
 	<sect3>
 	  <title>The NS16550AF and the PC16550D are the same thing</title>
-		
+
 	  <para>National reorganized their part numbering system a few
 	    years ago, and the NS16550AFN no longer exists by that
 	    name. (If you have a NS16550AFN, look at the date code on
@@ -863,12 +854,12 @@
 	    year, and the last two digits are the week in that year
 	    when the part was packaged.  If you have a NS16550AFN, it
 	    is probably a few years old.)</para>
-		
+
 	  <para>The new numbers are like PC16550DV, with minor
 	    differences in the suffix letters depending on the package
 	    material and its shape.  (A description of the numbering
 	    system can be found below.)</para>
-		
+
 	  <para>It is important to understand that in some stores, you
 	    may pay $15(US) for a NS16550AFN made in 1990 and in
 	    the next bin are the new PC16550DN parts with minor fixes
@@ -877,27 +868,27 @@
 	    six months and it costs half (as low as $5(US) in
 	    volume) as much as the NS16550AFN because they are readily
 	    available.</para>
-		
+
 	  <para>As the supply of NS16550AFN chips continues to shrink,
 	    the price will probably continue to increase until more
 	    people discover and accept that the PC16550DN really has
 	    the same function as the old part number.</para>
 	</sect3>
-	  
+
 	<sect3>
 	  <title>National Semiconductor Part Numbering System</title>
-	    
+
 	  <para>The older NS<replaceable>nnnnnrqp</replaceable> part
 	    numbers are now of the format
 	    PC<replaceable>nnnnnrgp</replaceable>.</para>
-		
+
 	  <para>The <replaceable>r</replaceable> is the revision
 	    field.  The current revision of the 16550 from National
 	    Semiconductor is <literal>D</literal>.</para>
-		
+
 	  <para>The <replaceable>p</replaceable> is the package-type
 	    field.  The types are:</para>
-	    
+
 	  <informaltable frame="none">
 	    <tgroup cols="3">
 	      <tbody>
@@ -906,7 +897,7 @@
 		  <entry>QFP</entry>
 		  <entry>(quad flat pack) L lead type</entry>
 		</row>
-		  
+
 		<row>
 		  <entry>"N"</entry>
 		  <entry>DIP</entry>
@@ -922,7 +913,7 @@
 	      </tbody>
 	    </tgroup>
 	  </informaltable>
-	    
+
 	  <para>The <replaceable>g</replaceable> is the product grade
 	    field.  If an <literal>I</literal> precedes the
 	    package-type letter, it indicates an
@@ -930,7 +921,7 @@
 	    specs than a standard part but not as high as Military
 	    Specification (Milspec) component.  This is an optional
 	    field.</para>
-		
+
 	  <para>So what we used to call a NS16550AFN (DIP Package) is
 	    now called a PC16550DN or PC16550DIN.</para>
         </sect3>
@@ -938,7 +929,7 @@
 
       <sect2>
 	<title>Other Vendors and Similar UARTs</title>
-	  
+
 	<para>Over the years, the 8250, 8250A, 16450 and 16550 have
 	  been licensed or copied by other chip vendors.  In the case
 	  of the 8250, 8250A and 16450, the exact circuit (the
@@ -946,7 +937,7 @@
 	  including Western Digital and Intel. Other vendors
 	  reverse-engineered the part or produced emulations that had
 	  similar behavior.</para>
-	      
+
 	<para>In internal modems, the modem designer will frequently
 	  emulate the 8250A/16450 with the modem microprocessor, and
 	  the emulated UART will frequently have a hidden buffer
@@ -957,18 +948,18 @@
 	  8250A or 16450, and may not make effective use of the extra
 	  buffering present in the emulated UART unless special
 	  drivers are used.</para>
-	      
+
 	<para>Some modem makers are driven by market forces to abandon
 	  a design that has hundreds of bytes of buffer and instead
 	  use a 16550A UART so that the product will compare favorably
 	  in market comparisons even though the effective performance
 	  may be lowered by this action.</para>
-	      
+
 	<para>A common misconception is that all parts with
 	  <quote>16550A</quote> written on them are identical in
 	  performance.  There are differences, and in some cases,
 	  outright flaws in most of these 16550A clones.</para>
-	      
+
 	<para>When the NS16550 was developed, the National
 	  Semiconductor obtained several patents on the design and
 	  they also limited licensing, making it harder for other
@@ -980,7 +971,7 @@
 	  computer and modem makers want to buy but are sometimes
 	  unwilling to pay the price required to get the genuine
 	  part.</para>
-	      
+
 	<para>Some of the differences in the clone 16550A parts are
 	  unimportant, while others can prevent the device from being
 	  used at all with a given operating system or driver.  These
@@ -994,7 +985,7 @@
 	  different operating system is used, problems could appear
 	  due to subtle differences between the clones and genuine
 	  components.</para>
-	      
+
 	<para>National Semiconductor has made available a program
 	  named <application>COMTEST</application> that performs
 	  compatibility tests independent of any OS drivers.  It
@@ -1003,7 +994,7 @@
 	  competition, so the program will report major as well as
 	  extremely subtle differences in behavior in the part being
 	  tested.</para>
-	      
+
 	<para>In a series of tests performed by the author of this
 	  document in 1994, components made by National Semiconductor,
 	  TI, StarTech, and CMD as well as megacells and emulations
@@ -1012,7 +1003,7 @@
 	  below. Because these tests were performed in 1994, they may
 	  not reflect the current performance of the given product
 	  from a vendor.</para>
-	      
+
 	<para>It should be noted that COMTEST normally aborts when an
 	  excessive number or certain types of problems have been
 	  detected.  As part of this testing, COMTEST was modified so
@@ -1028,51 +1019,51 @@
 		  <entry>Errors (aka "differences" reported)</entry>
 		</row>
 	      </thead>
-	      
+
 	      <tbody>
 		<row>
 		  <entry>National</entry>
 		  <entry>(PC16550DV)</entry>
 		  <entry>0</entry>
 		</row>
-		
+
 		<row>
 		  <entry>National</entry>
 		  <entry>(NS16550AFN)</entry>
 		  <entry>0</entry>
 		</row>
-		
+
 		<row>
 		  <entry>National</entry>
 		  <entry>(NS16C552V)</entry>
 		  <entry>0</entry>
 		</row>
-		
+
 		<row>
 		  <entry>TI</entry>
 		  <entry>(TL16550AFN)</entry>
 		  <entry>3</entry>
 		</row>
-		
+
 		<row>
 		  <entry>CMD</entry>
 		  <entry>(16C550PE)</entry>
 		  <entry>19</entry>
 		</row>
-		
+
 		<row>
 		  <entry>StarTech</entry>
 		  <entry>(ST16C550J)</entry>
 		  <entry>23</entry>
 		</row>
-		
+
 		<row>
 		  <entry>Rockwell</entry>
 		  <entry>Reference modem with internal 16550 or an
 		    emulation (RC144DPi/C3000-25)</entry>
 		  <entry>117</entry>
 		</row>
-		
+
 		<row>
 		  <entry>Sierra</entry>
 		  <entry>Modem with an internal 16550
@@ -1082,7 +1073,7 @@
 	      </tbody>
 	    </tgroup>
 	  </informaltable>
-	  
+
 	<note>
 	  <para>To date, the author of this document has not found any
 	    non-National parts that report zero differences using the
@@ -1097,7 +1088,7 @@
 	    bugs in the A, B and C revisions of the parts, so this
 	    bias in COMTEST must be taken into account.</para>
 	</note>
-	  
+
 	<para>It is important to understand that a simple count of
 	  differences from COMTEST does not reveal a lot about what
 	  differences are important and which are not.  For example,
@@ -1111,7 +1102,7 @@
 	  particularly those with error-correction and compression
 	  capabilities.  This means that the differences related to
 	  five- and six-bit character modes can be discounted.</para>
-	      
+
 	<para>Many of the differences COMTEST reports have to do with
 	  timing.  In many of the clone designs, when the host reads
 	  from one port, the status bits in some other port may not
@@ -1124,12 +1115,12 @@
 	  faster or slower than the reference part (that would
 	  probably never affect the operation of a properly written
 	  driver) could have dozens of differences reported.</para>
-	      
+
 	<para>COMTEST can be used as a screening tool to alert the
 	  administrator to the presence of potentially incompatible
 	  components that might cause problems or have to be handled
 	  as a special case.</para>
-	      
+
 	<para>If you run COMTEST on a 16550 that is in a modem or a
 	  modem is attached to the serial port, you need to first
 	  issue a ATE0&W command to the modem so that the modem
@@ -1142,7 +1133,7 @@
 
       <sect2>
 	<title>8250/16450/16550 Registers</title>
-	  
+
 	<para>The 8250/16450/16550 UART occupies eight contiguous I/O
 	  port addresses.  In the IBM PC, there are two defined
 	  locations for these eight ports and they are known
@@ -1151,13 +1142,13 @@
 	  and COM4, but these extra COM ports conflict with other
 	  hardware on some systems.  The most common conflict is with
 	  video adapters that provide IBM 8514 emulation.</para>
-	      
+
 	<para>COM1 is located from 0x3f8 to 0x3ff and normally uses
 	  IRQ 4 COM2 is located from 0x2f8 to 0x2ff and normally uses
 	  IRQ 3 COM3 is located from 0x3e8 to 0x3ef and has no
 	  standardized IRQ COM4 is located from 0x2e8 to 0x2ef and has
 	  no standardized IRQ.</para>
-	      
+
 	<para>A description of the I/O ports of the 8250/16450/16550
 	  UART is provided below.</para>
 
@@ -1170,7 +1161,7 @@
 		<entry>Description</entry>
 	      </row>
 	    </thead>
-	      
+
 	    <tbody>
 	      <row>
 		<entry>+0x00</entry>
@@ -1180,7 +1171,7 @@
 		    treated as data words and will be transmitted by the
 		    UART.</para></entry>
 	      </row>
-		
+
 	      <row>
 		<entry>+0x00</entry>
 		<entry>read (DLAB==0)</entry>
@@ -1189,7 +1180,7 @@
 		    accessed by the host by reading this
 		    port.</para></entry>
 	      </row>
-		
+
 	      <row>
 		<entry>+0x00</entry>
 		<entry>write/read (DLAB==1)</entry>
@@ -1200,7 +1191,7 @@
 		      register holds bits 0 thru 7 of the
 		      divisor.</para></entry>
 	      </row>
-		
+
 	      <row>
 		<entry>+0x01</entry>
 		<entry>write/read (DLAB==1)</entry>
@@ -1211,7 +1202,7 @@
 		      register holds bits 8 thru 15 of the
 		      divisor.</para></entry>
 	      </row>
-		
+
 	      <row>
 		<entry>+0x01</entry>
 		<entry>write/read (DLAB==0)</entry>
@@ -1236,27 +1227,27 @@
 			    to determine the true cause(s) of the
 			    interrupt.</para></entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 7</entry>
 		      <entry>Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 6</entry>
 		      <entry>Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 5</entry>
 		      <entry>Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 4</entry>
 		      <entry>Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 3</entry>
 		      <entry>Enable Modem Status Interrupt (EDSSI). Setting
@@ -1264,7 +1255,7 @@
 			interrupt when a change occurs on one or more of the
 			status lines.</entry>
 		    </row>
-		     
+
 		    <row>
 		      <entry>Bit 2</entry>
 		      <entry>Enable Receiver Line Status Interrupt (ELSI)
@@ -1272,7 +1263,7 @@
 			an interrupt when the an error (or a BREAK signal)
 			has been detected in the incoming data.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 1</entry>
 		      <entry>Enable Transmitter Holding Register Empty
@@ -1281,7 +1272,7 @@
 			for one or more additional characters that are to be
 			transmitted.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 0</entry>
 		      <entry>Enable Received Data Available Interrupt
@@ -1295,7 +1286,7 @@
 		  </tbody>
 		</entrytbl>
 	      </row>
-		
+
 	      <row>
 		<entry>+0x02</entry>
 		<entry>write</entry>
@@ -1306,7 +1297,7 @@
 		  <colspec colnum="4" colname="col4">
 		  <spanspec namest="col1" nameend="col4" spanname="1to4">
 		  <spanspec namest="col2" nameend="col4" spanname="2to4">
-		   
+
 		  <tbody>
 		    <row>
 		      <entry spanname="1to4">FIFO Control Register (FCR)
@@ -1318,7 +1309,7 @@
 		      <entry>Bit 7</entry>
 		      <entry spanname="2to4">Receiver Trigger Bit #1</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 6</entry>
 		      <entry spanname="2to4"><para>Receiver Trigger Bit
@@ -1326,48 +1317,48 @@
 			point the receiver is to generate an interrupt
 			when the FIFO is active.</para></entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">7</entry>
 		      <entry colname="col3">6</entry>
 		      <entry colname="col4">How many words are received
 			before an interrupt is generated</entry>
 		    </row>
-			  
+
 		    <row>
 		      <entry colname="col2">0</entry>
 		      <entry colname="col3">0</entry>
 		      <entry colname="col4">1</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">0</entry>
 		      <entry colname="col3">1</entry>
 		      <entry colname="col4">4</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">1</entry>
 		      <entry colname="col3">0</entry>
 		      <entry colname="col4">8</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">1</entry>
 		      <entry colname="col3">1</entry>
 		      <entry colname="col4">14</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 5</entry>
 		      <entry spanname="2to4">Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 4</entry>
 		      <entry spanname="2to4">Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 3</entry>
 		      <entry spanname="2to4">DMA Mode Select.  If Bit 0 is
@@ -1375,7 +1366,7 @@
 			the operation of the -RXRDY and -TXRDY signals from
 			Mode 0 to Mode 1.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 2</entry>
 		      <entry spanname="2to4">Transmit FIFO Reset.  When a
@@ -1384,7 +1375,7 @@
 			will be sent intact.  This function is useful in
 			aborting transfers.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 1</entry>
 		      <entry spanname="2to4">Receiver FIFO Reset.  When a
@@ -1405,7 +1396,7 @@
 		  </tbody>
 		</entrytbl>
 	      </row>
-		
+
 	      <row>
 		<entry>+0x02</entry>
 		<entry>read</entry>
@@ -1430,34 +1421,34 @@
 		      <entry spanname="2to6">FIFOs enabled.  On the
 			8250/16450 UART, this bit is zero.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 6</entry>
 		      <entry spanname="2to6">FIFOs enabled.  On the
 			8250/16450 UART, this bit is zero.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 5</entry>
 		      <entry spanname="2to6">Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 4</entry>
 		      <entry spanname="2to6">Reserved, always 0.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 3</entry>
 		      <entry spanname="2to6">Interrupt ID Bit #2.  On the
 			8250/16450 UART, this bit is zero.</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 2</entry>
 		      <entry spanname="2to6">Interrupt ID Bit #1</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 1</entry>
 		      <entry spanname="2to6">Interrupt ID Bit #0.These
@@ -1473,7 +1464,7 @@
 			interrupts will be generated.  (This is a
 			limitation of the PC architecture.)</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">2</entry>
 		      <entry colname="col3">1</entry>
@@ -1481,7 +1472,7 @@
 		      <entry colname="col5">Priority</entry>
 		      <entry colname="col6">Description</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">0</entry>
 		      <entry colname="col3">1</entry>
@@ -1490,7 +1481,7 @@
 		      <entry colname="col6">Received Error (OE, PE, BI, or
 			FE)</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">0</entry>
 		      <entry colname="col3">1</entry>
@@ -1498,7 +1489,7 @@
 		      <entry colname="col5">Second</entry>
 		      <entry colname="col6">Received Data Available</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">1</entry>
 		      <entry colname="col3">1</entry>
@@ -1507,7 +1498,7 @@
 		      <entry colname="col6">Trigger level identification
 			(Stale data in receive buffer)</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">0</entry>
 		      <entry colname="col3">0</entry>
@@ -1516,7 +1507,7 @@
 		      <entry colname="col6">Transmitter has room for more
 			words (THRE)</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry colname="col2">0</entry>
 		      <entry colname="col3">0</entry>
@@ -1525,7 +1516,7 @@
 		      <entry colname="col6">Modem Status Change (-CTS, -DSR,
 			-RI, or -DCD)</entry>
 		    </row>
-		      
+
 		    <row>
 		      <entry>Bit 0</entry>
 		      <entry spanname="2to6">Interrupt Pending Bit.  If this
@@ -1535,7 +1526,7 @@
 		  </tbody>
 		</entrytbl>
 	        </row>
-		
+
 		<row>
 		  <entry>+0x03</entry>
 		  <entry>write/read</entry>
@@ -1554,7 +1545,7 @@
 			<entry spanname="1to5">Line Control Register
 			  (LCR)</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 7</entry>
 			<entry spanname="2to5">Divisor Latch Access Bit
@@ -1566,7 +1557,7 @@
 			  the Divisor Registers, and clearing DLAB should be
 			  done with interrupts disabled.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 6</entry>
 			<entry spanname="2to5">Set Break.  When set to "1",
@@ -1575,14 +1566,14 @@
 			  overrides any bits of characters that are being
 			  transmitted.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 5</entry>
 			<entry spanname="2to5">Stick Parity.  When parity is
 			  enabled, setting this bit causes parity to always be
 			  "1" or "0", based on the value of Bit 4.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 4</entry>
 			<entry spanname="2to5">Even Parity Select (EPS). When
@@ -1590,7 +1581,7 @@
 			  causes even parity to be transmitted and expected.
 			  Otherwise, odd parity is used.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 3</entry>
 			<entry spanname="2to5">Parity Enable (PEN).  When set
@@ -1599,7 +1590,7 @@
 			  also expect parity to be present in the received
 			  data.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 2</entry>
 			<entry spanname="2to5">Number of Stop Bits (STB). If
@@ -1609,53 +1600,53 @@
 			  transmitted and expected.  When this bit is set to
 			  "0", one Stop Bit is used on each data word.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 1</entry>
 			<entry spanname="2to5">Word Length Select Bit #1
 			  (WLSB1)</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 0</entry>
 			<entry spanname="2to5">Word Length Select Bit #0
 			  (WLSB0)</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry colname="col2" spanname="2to5">Together these
 			  bits specify the number of bits in each data
 			  word.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry colname="col2">1</entry>
 			<entry colname="col3">0</entry>
 			<entry colname="col4" spanname="4to5">Word
 			  Length</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry colname="col2">0</entry>
 			<entry colname="col3">0</entry>
 			<entry colname="col4" spanname="4to5">5 Data
 			  Bits</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry colname="col2">0</entry>
 			<entry colname="col3">1</entry>
 			<entry colname="col4" spanname="4to5">6 Data
 			  Bits</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry colname="col2">1</entry>
 			<entry colname="col3">0</entry>
 			<entry colname="col4" spanname="4to5">7 Data
 			  Bits</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry colname="col2">1</entry>
 			<entry colname="col3">1</entry>
@@ -1665,7 +1656,7 @@
 		    </tbody>
 		  </entrytbl>
 		</row>
-		
+
 		<row>
 		  <entry>+0x04</entry>
 		  <entry>write/read</entry>
@@ -1679,22 +1670,22 @@
 			<entry spanname="1to2">Modem Control Register
 			  (MCR)</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 7</entry>
 			<entry>Reserved, always 0.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 6</entry>
 			<entry>Reserved, always 0.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 5</entry>
 			<entry>Reserved, always 0.</entry>
 			  </row>
-		      
+
 		      <row>
 			<entry>Bit 4</entry>
 			<entry>Loop-Back Enable.  When set to "1", the UART
@@ -1706,7 +1697,7 @@
 			  connected to RI, and OUT 2 is connected to
 			  DCD.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 3</entry>
 			<entry>OUT 2.  An auxiliary output that the host
@@ -1715,21 +1706,21 @@
 			  tri-state (disable) the interrupt signal from the
 			  8250/16450/16550 UART.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 2</entry>
 			<entry>OUT 1.  An auxiliary output that the host
 			  processor may set high or low.  This output is not
 			  used on the IBM PC serial adapter.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 1</entry>
 			<entry>Request to Send (RTS).  When set to "1", the
 			  output of the UART -RTS line is Low
 			  (Active).</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 0</entry>
 			<entry>Data Terminal Ready (DTR).  When set to "1",
@@ -1739,7 +1730,7 @@
 		    </tbody>
 		  </entrytbl>
 		</row>
-		
+
 		<row>
 		  <entry>+0x05</entry>
 		  <entry>write/read</entry>
@@ -1753,7 +1744,7 @@
 			<entry spanname="1to2">Line Status Register
 			  (LSR)</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 7</entry>
 			<entry>Error in Receiver FIFO.  On the 8250/16450
@@ -1761,7 +1752,7 @@
 			  any of the bytes in the FIFO have one or more of the
 			  following error conditions: PE, FE, or BI.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 6</entry>
 			<entry>Transmitter Empty (TEMT).  When set to "1",
@@ -1769,7 +1760,7 @@
 			  or the transmit shift register.  The transmitter is
 			  completely idle.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 5</entry>
 			<entry>Transmitter Holding Register Empty (THRE).
@@ -1778,13 +1769,13 @@
 			  transmit.  The transmitter may still be transmitting
 			  when this bit is set to "1".</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 4</entry>
 			<entry>Break Interrupt (BI).  The receiver has
 			  detected a Break signal.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 3</entry>
 			<entry>Framing Error (FE).  A Start Bit was detected
@@ -1792,13 +1783,13 @@
 			  time.  The received word is probably
 			  garbled.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 2</entry>
 			<entry>Parity Error (PE).  The parity bit was
 			  incorrect for the word received.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 1</entry>
 			<entry>Overrun Error (OE).  A new word was received
@@ -1808,7 +1799,7 @@
 			  holding register is discarded and the newly- arrived
 			  word is put in the holding register.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 0</entry>
 			<entry>Data Ready (DR) One or more words are in the
@@ -1820,7 +1811,7 @@
 		    </tbody>
 		  </entrytbl>
 		</row>
-		
+
 		<row>
 		  <entry>+0x06</entry>
 		  <entry>write/read</entry>
@@ -1834,31 +1825,31 @@
 			<entry spanname="1to2">Modem Status Register
 			  (MSR)</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 7</entry>
 			<entry>Data Carrier Detect (DCD).  Reflects the state
 			  of the DCD line on the UART.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 6</entry>
 			<entry>Ring Indicator (RI).  Reflects the state of the
 			  RI line on the UART.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 5</entry>
 			<entry>Data Set Ready (DSR).  Reflects the state of
 			  the DSR line on the UART.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 4</entry>
 			<entry>Clear To Send (CTS).  Reflects the state of the
 			  CTS line on the UART.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 3</entry>
 			<entry>Delta Data Carrier Detect (DDCD).  Set to "1"
@@ -1866,7 +1857,7 @@
 			  time since the last time the MSR was read by the
 			  host.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 2</entry>
 			<entry>Trailing Edge Ring Indicator (TERI).  Set to
@@ -1874,7 +1865,7 @@
 			  since the last time the MSR was read by the
 			  host.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 1</entry>
 			<entry>Delta Data Set Ready (DDSR).  Set to "1" if the
@@ -1882,7 +1873,7 @@
 			  since the last time the MSR was read by the
 			  host.</entry>
 		      </row>
-		      
+
 		      <row>
 			<entry>Bit 0</entry>
 			<entry>Delta Clear To Send (DCTS).  Set to "1" if the
@@ -1893,7 +1884,7 @@
 		    </tbody>
 		  </entrytbl>
 		</row>
-		
+
 		<row>
 		  <entry>+0x07</entry>
 		  <entry>write/read</entry>
@@ -1909,7 +1900,7 @@
 
       <sect2>
 	<title>Beyond the 16550A UART</title>
-	  
+
 	<para>Although National Semiconductor has not offered any
 	  components compatible with the 16550 that provide additional
 	  features, various other vendors have.  Some of these
@@ -1918,7 +1909,7 @@
 	  have to be provided by the chip vendor since most of the
 	  popular operating systems do not support features beyond
 	  those provided by the 16550.</para>
-	      
+
 	  <variablelist>
 	    <varlistentry>
 	      <term>ST16650</term>
@@ -1929,20 +1920,20 @@
 		  enabled.  Made by StarTech.</para>
 	      </listitem>
 	    </varlistentry>
-	    
+
 	    <varlistentry>
 	      <term>TIL16660</term>
-	      
+
 	      <listitem>
 		<para>By default this part behaves similar to the NS16550A,
 		  but an extended 64-byte send and receive buffer can be
 		  optionally enabled.  Made by Texas Instruments.</para>
 	      </listitem>
 	    </varlistentry>
-	    
+
 	    <varlistentry>
 	      <term>Hayes ESP</term>
-	      
+
 	      <listitem>
 		<para>This proprietary plug-in card contains a 2048-byte send
 		  and receive buffer, and supports data rates to
@@ -1950,7 +1941,7 @@
 	      </listitem>
 	    </varlistentry>
 	  </variablelist>
-	  
+
 	  <para>In addition to these <quote>dumb</quote> UARTs, many vendors
 	    produce intelligent serial communication boards.  This type of
 	    design usually provides a microprocessor that interfaces with
@@ -1963,28 +1954,28 @@
 	    performance characteristics.</para>
       </sect2>
     </sect1>
-      
+
     <sect1 id="sio">
       <title>Configuring the <devicename>sio</devicename> driver</title>
-	    
+
       <para>The <devicename>sio</devicename> driver provides support
 	for NS8250-, NS16450-, NS16550 and NS16550A-based EIA RS-232C
 	(CCITT V.24) communications interfaces.  Several multiport
 	cards are supported as well.  See the &man.sio.4; manual page
 	for detailed technical documentation.</para>
-	    
+
       <sect2>
 	<title>Digi International (DigiBoard) PC/8</title>
-	  
+
 	<para><emphasis>Contributed by &a.awebster;.  26 August
 	  1995.</emphasis></para>
-	      
+
         <para>Here is a config snippet from a machine with a Digi
 	  International PC/8 with 16550.  It has 8 modems connected to
 	  these 8 lines, and they work just great.  Do not forget to
 	  add <literal>options COM_MULTIPORT</literal> or it will not
 	  work very well!</para>
-	      
+
 	<programlisting>device          sio4    at isa? port 0x100 flags 0xb05
 device          sio5    at isa? port 0x108 flags 0xb05
 device          sio6    at isa? port 0x110 flags 0xb05
@@ -1993,7 +1984,7 @@
 device          sio9    at isa? port 0x128 flags 0xb05
 device          sio10   at isa? port 0x130 flags 0xb05
 device          sio11   at isa? port 0x138 flags 0xb05 irq 9</programlisting>
-	      
+
 	<para>The trick in setting this up is that the MSB of the
 	  flags represent the last SIO port, in this case 11 so flags
 	  are 0xb05.</para>
@@ -2001,14 +1992,14 @@
 
       <sect2>
 	<title>Boca 16</title>
-	  
+
 	<para><emphasis>Contributed by &a.whiteside;.  26 August
 	  1995.</emphasis></para>
-	  
+
 	<para>The procedures to make a Boca 16 port board with FreeBSD
 	  are pretty straightforward, but you will need a couple
 	  things to make it work:</para>
-	  
+
 	<orderedlist>
 	  <listitem>
 	    <para>You either need the kernel sources installed so you
@@ -2018,21 +2009,21 @@
 		multiport support enabled and you will need to add a
 		device entry for each port anyways.</para>
 	  </listitem>
-	    
+
 	  <listitem>
 	    <para>Two, you will need to know the interrupt and IO
 	      setting for your Boca Board so you can set these options
 	      properly in the kernel.</para>
 	  </listitem>
 	</orderedlist>
-	  
+
 	<para>One important note — the actual UART chips for the
 	  Boca 16 are in the connector box, not on the internal board
 	  itself.  So if you have it unplugged, probes of those ports
 	  will fail.  I have never tested booting with the box
 	  unplugged and plugging it back in, and I suggest you do not
 	  either.</para>
-	      
+
         <para>If you do not already have a custom kernel
 	  configuration file set up, refer to <ulink
 	  url="../../books/handbook/kernelconfig.html">Kernel
@@ -2040,16 +2031,16 @@
 	  general procedures.  The following are the specifics for the
 	  Boca 16 board and assume you are using the kernel name
 	  MYKERNEL and editing with vi.</para>
-	      
+
 	<procedure>
 	  <step>
-	    <para>Add the line 
-		
+	    <para>Add the line
+
 	      <programlisting>options COM_MULTIPORT</programlisting>
 
 	      to the config file.</para>
 	  </step>
-	    
+
 	  <step>
 	    <para>Where the current <literal>device
 	      sio<replaceable>n</replaceable></literal> lines are, you
@@ -2084,7 +2075,7 @@
 	      1C indicates the minor number of the master port.  Do
 	      not change the 05 setting.</para>
 	  </step>
-		  
+
 	  <step>
 	    <para>Save and complete the kernel configuration,
 	      recompile, install and reboot.  Presuming you have
@@ -2093,7 +2084,7 @@
 	      should indicate the successful probe of the Boca ports
 	      as follows: (obviously the sio numbers, IO and IRQ could
 	      be different)</para>
-		    		    
+
 	    <screen>sio1 at 0x100-0x107 flags 0x1005 on isa
 sio1: type 16550A (multiport)
 sio2 at 0x108-0x10f flags 0x1005 on isa
@@ -2132,7 +2123,7 @@
 	    <screen>&prompt.root; <userinput>dmesg | more</userinput></screen>
 	      will show you the boot messages.</para>
 	  </step>
-	    
+
 	  <step>
 	    <para>Next, appropriate entries in
 	      <filename>/dev</filename> for the devices must be made
@@ -2140,27 +2131,27 @@
 	      script.  This step can be omitted if you are running
 	      FreeBSD 5.X with a kernel that has &man.devfs.5;
 	      support compiled in.</para>
-	      
+
 	    <para>If you do need to create the <filename>/dev</filename>
 	      entries, run the following as <username>root</username>:</para>
-	      
+
 	    <screen>&prompt.root; <userinput>cd /dev</userinput>
 &prompt.root; <userinput>./MAKEDEV tty1</userinput>
 &prompt.root; <userinput>./MAKEDEV cua1</userinput>
 <emphasis>(everything in between)</emphasis>
 &prompt.root; <userinput>./MAKEDEV ttyg</userinput>
 &prompt.root; <userinput>./MAKEDEV cuag</userinput></screen>
-		      
+
 	    <para>If you do not want or need call-out devices for some
 	      reason, you can dispense with making the
 	      <filename>cua*</filename> devices.</para>
 	  </step>
-	    
+
 	  <step>
 	    <para>If you want a quick and sloppy way to make sure the
 	      devices are working, you can simply plug a modem into
 	      each port and (as root)
-		    
+
             <screen>&prompt.root; <userinput>echo at > ttyd*</userinput></screen>
 	      for each device you have made.  You
 	      <emphasis>should</emphasis> see the RX lights flash for each
@@ -2175,11 +2166,11 @@
 	<para><emphasis>Contributed by Helge Oldach
 	  <email>hmo at sep.hamburg.com</email>, September
 	  1999</emphasis></para>
-	  
+
 	<para>Ever wondered about FreeBSD support for your 20$
 	  multi-I/O card with two (or more) COM ports, sharing IRQs?
 	  Here is how:</para>
-	  
+
 	<para>Usually the only option to support these kind of boards
 	  is to use a distinct IRQ for each port.  For example, if
 	  your CPU board has an on-board <devicename>COM1</devicename>
@@ -2194,7 +2185,7 @@
 	  basically possible to run both extension board ports using a
 	  single IRQ with the <literal>COM_MULTIPORT</literal>
 	  configuration described in the previous sections.</para>
-	  
+
 	<para>Such cheap I/O boards commonly have a 4 by 3 jumper
 	  matrix for the COM ports, similar to the following:</para>
 
@@ -2288,13 +2279,13 @@
 	  likely there is something wrong with your wiring.</para>
       </sect2>
     </sect1>
-      
+
     <sect1 id="cy">
       <title>Configuring the <devicename>cy</devicename> driver</title>
-	    
+
       <para><emphasis>Contributed by Alex Nash.  6 June
         1996.</emphasis></para>
-	    
+
       <para>The Cyclades multiport cards are based on the
 	<devicename>cy</devicename> driver instead of the usual
 	<devicename>sio</devicename> driver used by other multiport
@@ -2305,39 +2296,39 @@
 	    <para>Add the <devicename>cy</devicename> device to your
 	      kernel configuration (note that your irq and iomem
 	      settings may differ).</para>
-		    
+
 	    <programlisting>device cy0 at isa? irq 10 iomem 0xd4000 iosiz 0x2000</programlisting>
 	  </step>
-		
+
 	  <step>
 	    <para>Rebuild and install the new kernel.</para>
 	  </step>
-	  
+
 	  <step>
 	    <para>Make the device nodes by typing (the following
 	      example assumes an 8-port board)<footnote>
 	        <para>You can omit this part if you are running FreeBSD 5.X
 		  with &man.devfs.5;.</para>
 	      </footnote>:</para>
-		  
+
 	    <screen>&prompt.root; <userinput>cd /dev</userinput>
 &prompt.root; <userinput>for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done</userinput></screen>
 	  </step>
-	  
+
 	  <step>
 	    <para>If appropriate, add dialup entries to
 	      <filename>/etc/ttys</filename> by duplicating serial
 	      device (<literal>ttyd</literal>) entries and using
 	      <literal>ttyc</literal> in place of
 	      <literal>ttyd</literal>.  For example:</para>
-	    
+
 	    <programlisting>ttyc0   "/usr/libexec/getty std.38400"  unknown on insecure
 ttyc1   "/usr/libexec/getty std.38400"  unknown on insecure
 ttyc2   "/usr/libexec/getty std.38400"  unknown on insecure
 …
 ttyc7   "/usr/libexec/getty std.38400"  unknown on insecure</programlisting>
 	  </step>
-		
+
 	  <step>
 	    <para>Reboot with the new kernel.</para>
 	  </step>
@@ -2349,7 +2340,7 @@
 
       <para><emphasis>Contributed by &a.nsayer;. 25 March
 	1998.</emphasis></para>
-     
+
       <para>The Specialix SI/XIO and SX multiport cards use the
 	<devicename>si</devicename> driver. A single machine can have
 	up to 4 host cards. The following host cards are
@@ -2378,11 +2369,11 @@
 	<itemizedlist>
 	  <listitem><para>SI 4 or 8 port modules. Up to 57600 bps on each port
 	      supported.</para></listitem>
-	  
+
 	  <listitem><para>XIO 8 port modules. Up to 115200 bps on each port
 	      supported. One type of XIO module has 7 serial and 1 parallel
 	      port.</para></listitem>
-	  
+
 	  <listitem><para>SXDC 8 port modules. Up to 921600 bps on each port
 	      supported. Like XIO, a module is available with one parallel
 	      port as well.</para></listitem>
@@ -2391,19 +2382,19 @@
       <para>To configure an ISA host card, add the following line to
 	your kernel configuration file, changing the numbers as
 	appropriate:</para>
-     
+
       <programlisting>device si0 at isa? iomem 0xd0000 irq 11</programlisting>
 
       <para>Valid IRQ numbers are 9, 10, 11, 12 and 15 for SX ISA host
 	cards and 11, 12 and 15 for SI/XIO ISA host cards.</para>
-     
+
       <para>To configure an EISA or PCI host card, use this line:</para>
-     
+
       <programlisting>device si0</programlisting>
 
       <para>After adding the configuration entry, rebuild and
 	install your new kernel.</para>
-     
+
       <note>
         <para>The following step, is not necessary if you are using
           &man.devfs.5; in FreeBSD 5.<replaceable>X</replaceable>.</para>
@@ -2413,19 +2404,19 @@
 	device nodes in <filename>/dev</filename>.  The <filename>MAKEDEV</filename> script
 	will take care of this for you.  Count how many total ports
 	you have and type:</para>
-     
+
       <screen>&prompt.root; <userinput>cd /dev</userinput>
 &prompt.root; <userinput>./MAKEDEV ttyA<replaceable>nn</replaceable> cuaA<replaceable>nn</replaceable></userinput></screen>
-     
+
       <para>(where <replaceable>nn</replaceable> is the number of
 	ports)</para>
-     
+
       <para>If you want login prompts to appear on these ports, you
 	will need to add lines like this to
 	<filename>/etc/ttys</filename>:</para>
 
       <programlisting>ttyA01  "/usr/libexec/getty std.9600"   vt100   on insecure</programlisting>
-     
+
       <para>Change the terminal type as appropriate. For modems,
 	<userinput>dialup</userinput> or
 	<userinput>unknown</userinput> is fine.</para>
Index: en_US.ISO8859-1/articles//smp/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/smp/article.sgml,v
retrieving revision 1.6
diff -u -r1.6 article.sgml
--- en_US.ISO8859-1/articles//smp/article.sgml	18 Feb 2003 11:46:51 -0000	1.6
+++ en_US.ISO8859-1/articles//smp/article.sgml	14 Jun 2003 12:37:43 -0000
@@ -498,23 +498,23 @@
 
       <para><structname>struct ucred</structname> is the kernel's
 	internal credential structure, and is generally used as the
-	basis for process-driven access control within the kernel.  
-	BSD-derived systems use a <quote>copy-on-write</quote> model for credential 
-	data: multiple references may exist for a credential structure, 
+	basis for process-driven access control within the kernel.
+	BSD-derived systems use a <quote>copy-on-write</quote> model for credential
+	data: multiple references may exist for a credential structure,
 	and when a change needs to be made, the structure is duplicated,
 	modified, and then the reference replaced.  Due to wide-spread
 	caching of the credential to implement access control on open,
 	this results in substantial memory savings.  With a move to
 	fine-grained SMP, this model also saves substantially on
 	locking operations by requiring that modification only occur
-	on an unshared credential, avoiding the need for explicit   
+	on an unshared credential, avoiding the need for explicit
 	synchronization when consuming a known-shared
 	credential.</para>
 
       <para>Credential structures with a single reference are
-	considered mutable; shared credential structures must not be  
+	considered mutable; shared credential structures must not be
 	modified or a race condition is risked.  A mutex,
-	<structfield>cr_mtxp</structfield> protects the reference 
+	<structfield>cr_mtxp</structfield> protects the reference
 	count of <structname>struct ucred</structname> so as to
 	maintain consistency.  Any use of the structure requires a
 	valid reference for the duration of the use, or the structure
@@ -631,8 +631,8 @@
 
       <para>The newbus system will have one sx lock.  Readers will
 	hold a shared (read) lock (&man.sx.slock.9;) and writers will hold
-	an exclusive (write) lock (&man.sx.xlock.9;).  Internal functions 
-	will not do locking at all.  Externally visible ones will lock as 
+	an exclusive (write) lock (&man.sx.xlock.9;).  Internal functions
+	will not do locking at all.  Externally visible ones will lock as
 	needed.
 	Those items that do not matter if the race is won or lost will
 	not be locked, since they tend to be read all over the place
Index: en_US.ISO8859-1/articles//solid-state/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/solid-state/article.sgml,v
retrieving revision 1.10
diff -u -r1.10 article.sgml
--- en_US.ISO8859-1/articles//solid-state/article.sgml	16 Jan 2003 16:39:27 -0000	1.10
+++ en_US.ISO8859-1/articles//solid-state/article.sgml	14 Jun 2003 12:37:50 -0000
@@ -50,7 +50,7 @@
 	</affiliation>
       </author>
     </authorgroup>
-    
+
     <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/solid-state/article.sgml,v 1.10 2003/01/16 16:39:27 brueffer Exp $</pubdate>
 
     <copyright>
@@ -59,11 +59,11 @@
     </copyright>
 
     &legalnotice;
-    
+
     <abstract>
       <para>This article covers the use of solid state disk devices in FreeBSD
 	to create embedded systems.</para>
-    
+
       <para>Embedded systems have the advantage of increased stability due to
 	the lack of integral moving parts (hard drives).  Account must be
 	taken, however, for the generally low disk space available in the
@@ -316,7 +316,7 @@
 	    <tbody>
 	      <row>
 		<entry><para><screen>&prompt.root; <userinput>mknod /dev/ad0a c 116 0</userinput>
-&prompt.root; <userinput>mknod /dev/ad0c c 116 2</userinput>		      
+&prompt.root; <userinput>mknod /dev/ad0c c 116 2</userinput>
 &prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen></para></entry>
 
 		<entry><para><screen>&prompt.root; <userinput>mknod /dev/fla0a c 102 0</userinput>
@@ -390,7 +390,7 @@
 	    </tbody>
 	  </tgroup>
 	</informaltable>
-	
+
 	<para>Bring this machine up on the network so we may transfer our tar
 	  file and explode it onto our flash media filesystem.  One example of
 	  how to do this is:</para>
@@ -465,7 +465,7 @@
       <step>
 	<para><screen>&prompt.root; <userinput>mount /dev/vn0c /mnt</userinput></screen></para>
       </step>
-      
+
       <step>
 	<para>Place your kernel file into <filename>/mnt</filename>, replacing
 	  the existing one</para>
@@ -571,7 +571,7 @@
 	<filename>/var/db/pkg</filename>.  An example:</para>
 
       <screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
-      
+
       <para>Add another line in <filename>/etc/rc.diskless2</filename> that
 	creates and populates
 	<filename>/var/db/port.mkversion</filename></para>
@@ -609,7 +609,7 @@
       <para>First, add the directory <literal>log/apache</literal> to the list
 	of directories to be created in
 	<filename>/etc/rc.diskless2</filename>.</para>
-      
+
       <para>Second, add these commands to
 	<filename>/etc/rc.diskless2</filename> after the directory creation
 	section:</para>
Index: en_US.ISO8859-1/articles//storage-devices/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/storage-devices/article.sgml,v
retrieving revision 1.12
diff -u -r1.12 article.sgml
--- en_US.ISO8859-1/articles//storage-devices/article.sgml	21 May 2003 20:55:29 -0000	1.12
+++ en_US.ISO8859-1/articles//storage-devices/article.sgml	14 Jun 2003 12:38:23 -0000
@@ -8,36 +8,36 @@
 <article>
   <articleinfo>
     <title>Storage Devices</title>
-    
+
     <authorgroup>
       <author>
         <firstname>Wilko</firstname>
         <surname>Bulte</surname>
-        
+
         <affiliation>
           <address><email>wilko at FreeBSD.org</email></address>
         </affiliation>
       </author>
     </authorgroup>
-    
+
     <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/storage-devices/article.sgml,v 1.12 2003/05/21 20:55:29 keramida Exp $</pubdate>
-    
+
     <abstract>
       <para>This article talks about storage devices with FreeBSD.</para>
     </abstract>
   </articleinfo>
-  
+
   <sect1 id="esdi">
     <title>Using ESDI hard disks</title>
-      
+
     <para><emphasis>Copyright © 1995, &a.wilko;.  24 September
       1995.</emphasis></para>
-	  
+
     <para>ESDI is an acronym that means Enhanced Small Device
       Interface. It is loosely based on the good old ST506/412
       interface originally devised by Seagate Technology, the makers
       of the first affordable 5.25" winchester disk.</para>
-	  
+
     <para>The acronym says Enhanced, and rightly so.  In the first
       place the speed of the interface is higher, 10 or 15
       Mbits/second instead of the 5 Mbits/second of ST412 interfaced
@@ -45,33 +45,33 @@
       the ESDI interface somewhat <quote>smarter</quote> to the operating system
       driver writers.  It is by no means as smart as SCSI by the way.
       ESDI is standardized by ANSI.</para>
-	  
+
     <para>Capacities of the drives are boosted by putting more sectors
       on each track.  Typical is 35 sectors per track, high capacity
       drives I have seen were up to 54 sectors/track.</para>
-      
+
     <para>Although ESDI has been largely obsoleted by IDE and SCSI
       interfaces, the availability of free or cheap surplus drives
       makes them ideal for low (or now) budget systems.</para>
-      
+
       <sect2>
 	<title>Concepts of ESDI</title>
 
 	<sect3>
 	  <title>Physical connections</title>
-	  
+
 	  <para>The ESDI interface uses two cables connected to each drive.
 	    One cable is a 34 pin flat cable edge connector that carries the
 	    command and status signals from the controller to the drive and
 	    vice-versa.  The command cable is daisy chained between all the
 	    drives.  So, it forms a bus onto which all drives are
 	    connected.</para>
-	      
+
 	  <para>The second cable is a 20 pin flat cable edge connector that
 	    carries the data to and from the drive.  This cable is radially
 	    connected, so each drive has its own direct connection to the
 	    controller.</para>
-	      
+
 	  <para>To the best of my knowledge PC ESDI controllers are limited to
 	    using a maximum of 2 drives per controller.  This is compatibility
 	    feature(?) left over from the WD1003 standard that reserves only a
@@ -80,12 +80,12 @@
 
 	<sect3>
 	  <title>Device addressing</title>
-	  
+
 	  <para>On each command cable a maximum of 7 devices and 1 controller
 	    can be present.  To enable the controller to uniquely  identify
 	    which drive it addresses, each ESDI device is equipped with
 	    jumpers or switches to select the devices address.</para>
-	      
+
 	  <para>On PC type controllers the first drive is set to address 0,
 	    the second disk to address 1.  <emphasis>Always make
 	      sure</emphasis> you set each disk to an unique address! So, on a
@@ -95,12 +95,12 @@
 
 	<sect3>
 	  <title>Termination</title>
-	  
+
 	  <para>The daisy chained command cable (the 34 pin cable remember?)
 	    needs to be terminated at the last drive on the chain.  For this
 	    purpose ESDI drives come with a termination resistor network that
 	    can be removed or disabled by a jumper when it is not used.</para>
-	  
+
 	  <para>So, one and <emphasis>only</emphasis> one drive, the one at
 	    the farthest end of the command cable has its terminator
 	    installed/enabled.  The controller automatically terminates the
@@ -109,7 +109,7 @@
 	    <emphasis>not</emphasis> in the middle.</para>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>Using ESDI disks with FreeBSD</title>
 
@@ -120,18 +120,18 @@
 	  developed a profound sense of frustration.  A combination of factors
 	  works against you to produce effects that are hard to understand
 	  when you have never seen them before.</para>
-	    
+
 	<para>This has also led to the popular legend ESDI and FreeBSD is a
 	  plain NO-GO.  The following sections try to list all the pitfalls
 	  and  solutions.</para>
-	    
+
 	<sect3>
 	  <title>ESDI speed variants</title>
-	  
+
 	  <para>As briefly mentioned before, ESDI comes in two speed flavors.
 	    The older drives and controllers use a 10 Mbits/second data
 	    transfer rate.  Newer stuff uses 15 Mbits/second.</para>
-	      
+
 	  <para>It is not hard to imagine that 15 Mbits/second drive cause
 	    problems on controllers laid out for 10 Mbits/second.  As always,
 	    consult your controller <emphasis>and</emphasis> drive
@@ -140,18 +140,18 @@
 
 	<sect3>
 	  <title>Stay on track</title>
-	  
+
 	  <para>Mainstream ESDI drives use 34 to 36 sectors per track. Most
 	    (older) controllers cannot handle more than this  number of
 	    sectors.  Newer, higher capacity, drives use higher numbers of
 	    sectors per track.  For instance, I own a 670 MB drive that has 54
 	    sectors per track.</para>
-	      
+
 	  <para>In my case, the controller could not handle this number of
 	    sectors.  It proved to work well except that it only used 35
 	    sectors on each track.  This meant losing a lot of disk
 	    space.</para>
-	      
+
 	  <para>Once again, check the documentation of your hardware for more
 	    info.  Going out-of-spec like in the example might or might not
 	    work.  Give it a try or get another more capable
@@ -160,13 +160,13 @@
 
 	<sect3>
 	  <title>Hard or soft sectoring</title>
-	  
+
 	  <para>Most ESDI drives allow hard or soft sectoring to be selected
 	    using a jumper.  Hard sectoring means that the drive will produce
 	    a sector pulse on the start of each new sector. The controller
 	    uses this pulse to tell when it should start to write or
 	    read.</para>
-	  
+
 	  <para>Hard sectoring allows a selection of sector size (normally
 	    256, 512 or 1024 bytes per formatted sector).  FreeBSD uses 512
 	    byte sectors.  The number of sectors per track also varies while
@@ -177,12 +177,12 @@
 	    track  of course gives you more usable space, but might give
 	    problems if your controller needs more bytes than the  drive
 	    offers.</para>
-	      
+
 	  <para>In case of soft sectoring, the controller itself determines
 	    where to start/stop reading or writing.  For ESDI hard sectoring
 	    is the default (at least on everything I came across).  I never
 	    felt the urge to try soft sectoring.</para>
-	      
+
 	  <para>In general, experiment with sector settings before you install
 	    FreeBSD because you need to re-run the low-level format after each
 	    change.</para>
@@ -190,21 +190,21 @@
 
 	<sect3>
 	  <title>Low level formatting</title>
-	  
+
 	  <para>ESDI drives need to be low level formatted before they are
 	    usable.  A reformat is needed whenever you figgle with the number
 	    of sectors/track jumpers or the physical orientation of the drive
 	    (horizontal, vertical).  So, first think, then format.  The format
 	    time must not be underestimated, for big disks it can take
 	    hours.</para>
-	      
+
 	  <para>After a low level format, a surface scan is done to find and
 	    flag bad sectors.  Most disks have a manufacturer bad block list
 	    listed on a piece of paper or adhesive sticker.  In addition, on
 	    most disks the list is also written onto the disk.  Please use the
 	    manufacturer's list.  It is much easier to remap a defect now than
 	    after FreeBSD is installed.</para>
-	      
+
 	  <para>Stay away from low-level formatters that mark all sectors of a
 	    track as bad as soon as they find one bad sector.  Not only does
 	    this waste space, it also and more importantly causes you grief
@@ -213,13 +213,13 @@
 
 	<sect3>
 	  <title>Translations</title>
-	  
+
 	  <para>Translations, although not exclusively a ESDI-only problem,
 	    might give you real trouble.  Translations come in multiple
 	    flavors.  Most of them  have in common that they attempt to work
 	    around the limitations posed upon disk geometries by the original
 	    IBM PC/AT design (thanks IBM!).</para>
-	      
+
 	  <para>First of all there is the (in)famous 1024 cylinder limit. For
 	    a system to be able to boot, the stuff (whatever operating system)
 	    must be in the first 1024 cylinders of a disk.  Only 10 bits are
@@ -227,7 +227,7 @@
 	    sectors the limit is 64 (0-63).  When you combine the 1024
 	    cylinder limit with the 16 head limit (also a design feature) you
 	    max out at fairly limited  disk sizes.</para>
-	      
+
 	  <para>To work around this problem, the manufacturers of ESDI PC
 	    controllers added a BIOS prom extension on their boards.  This
 	    BIOS extension handles disk I/O for booting (and for some
@@ -238,7 +238,7 @@
 	    and is therefore usable by the system without problems.  It is
 	    noteworthy to know that FreeBSD does not use the BIOS after its
 	    kernel has started.  More on this later.</para>
-	      
+
 	  <para>A second reason for translations is the fact that most older
 	    system BIOSes could only handle drives with 17 sectors per track
 	    (the old ST412 standard).  Newer system BIOSes usually have a
@@ -250,7 +250,7 @@
 	      keep in mind that if you have multiple operating systems on the
 	      same disk, all must use the same translation</para>
 	  </warning>
-	  
+
 	  <para>While on the subject of translations, I have seen one
 	    controller type (but there are probably more like this) offer the
 	    option to logically split a drive in multiple partitions as a BIOS
@@ -259,29 +259,29 @@
 	    info and presented itself to the system based on the info from the
 	    disk.</para>
 	</sect3>
-	    
+
 	<sect3>
 	  <title>Spare sectoring</title>
-	  
+
 	  <para>Most ESDI controllers offer the possibility to remap bad
 	    sectors.  During/after the low-level format of the disk bad
 	    sectors are marked as such, and a replacement sector is put in
 	    place (logically of course) of the bad one.</para>
-	      
+
 	  <para>In most cases the remapping is done by using N-1 sectors on
 	    each track for actual data storage, and sector N itself is the
 	    spare sector.  N is the total number of sectors physically
 	    available on the track.  The idea behind this is that the
 	    operating system sees a <quote>perfect</quote> disk without bad sectors.  In
 	    the case of FreeBSD this concept is not usable.</para>
-	      
+
 	  <para>The problem is that the translation from
 	    <emphasis>bad</emphasis> to <emphasis>good</emphasis> is performed
 	    by the BIOS of the ESDI controller.  FreeBSD, being a true 32 bit
 	    operating system, does not use the BIOS after it has been booted.
 	    Instead, it has device drivers that talk directly to the
 	    hardware.</para>
-	      
+
 	  <para><emphasis>So: do not use spare sectoring, bad block remapping
 	      or whatever it may be called by the controller manufacturer when
 	      you want to use the disk for FreeBSD.</emphasis></para>
@@ -289,7 +289,7 @@
 
 	<sect3>
 	  <title>Bad block handling</title>
-	  
+
 	  <para>The preceding section leaves us with a problem.  The
 	    controller's bad block handling is not usable and still FreeBSD's
 	    filesystems assume perfect media without any flaws. To solve this
@@ -298,14 +298,14 @@
 	    scans a FreeBSD slice for bad blocks.  Having found these bad
 	    blocks, it writes a table with the offending block numbers to the
 	    end of the FreeBSD slice.</para>
-	      
+
 	  <para>When the disk is in operation, the disk accesses are checked
 	    against the table read from the disk.  Whenever a block number is
 	    requested that is in the <command>bad144</command> list, a
 	    replacement block (also from the end of the FreeBSD slice) is
 	    used.  In this way, the <command>bad144</command> replacement
 	    scheme presents <quote>perfect</quote> media to the FreeBSD filesystems.</para>
-	      
+
 	  <para>There are a number of potential pitfalls associated with the
 	    use of <command>bad144</command>.  First of all, the slice cannot
 	    have more than 126 bad sectors.  If your drive has a high number
@@ -315,7 +315,7 @@
 	    sector of a track as bad when  they find a flaw on the track.  As
 	    you can imagine, the  126 limit is quickly reached when the
 	    low-level format is done this way.</para>
-	      
+
 	  <para>Second, if the slice contains the root filesystem, the slice
 	    should be within the 1024 cylinder BIOS limit.  During the boot
 	    process the bad144 list is read using the BIOS and this only
@@ -331,20 +331,20 @@
 
 	<sect3>
 	  <title>Kernel configuration</title>
-	  
+
 	  <para>ESDI disks are handled by the same <literal>wd</literal>driver
 	    as IDE and ST412 MFM disks.  The <literal>wd</literal> driver
 	    should work for all WD1003 compatible interfaces.</para>
-	      
+
 	  <para>Most hardware is jumperable for one of two different I/O
 	    address ranges and IRQ lines.  This allows you to have  two wd
 	    type controllers in one system.</para>
-	  
+
 	  <para>When your hardware allows non-standard strappings, you can use
 	    these with FreeBSD as long as you enter the  correct info into the
 	    kernel config file.  An example from the kernel config file (they
 	    live in <filename>/sys/i386/conf</filename> BTW).</para>
-	      
+
 	  <programlisting># First WD compatible controller
 controller      wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr
 disk            wd0     at wdc0 drive 0
@@ -355,17 +355,17 @@
 disk            wd3     at wdc1 drive 1</programlisting>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>Particulars on ESDI hardware</title>
 
 	<sect3>
 	  <title>Adaptec 2320 controllers</title>
-	  
+
 	  <para>I successfully installed FreeBSD onto a ESDI disk controlled
 	    by a ACB-2320.  No other operating system was present on the
 	    disk.</para>
-	      
+
 	  <para>To do so I low level formatted the disk using
 	    <command>NEFMT.EXE</command> (<command>ftp</command>able from
 	    <hostid role="fqdn">www.adaptec.com</hostid>) and answered NO to
@@ -373,20 +373,20 @@
 	    sector on each track.  The BIOS on the ACD-2320 was disabled.  I
 	    used the <literal>free configurable</literal> option in the system
 	    BIOS to allow the BIOS to boot it.</para>
-	      
+
 	  <para>Before using <command>NEFMT.EXE</command> I tried to format
 	    the disk using the ACB-2320 BIOS built-in formatter.  This proved
 	    to be a show stopper, because it did not give me an option to
 	    disable spare sectoring.  With spare sectoring enabled the FreeBSD
 	    installation process broke down on the <command>bad144</command>
 	    run.</para>
-	      
+
 	  <para>Please check carefully which
 	    ACB-232<replaceable>xy</replaceable> variant you have. The
 	    <replaceable>x</replaceable> is either <literal>0</literal> or
 	    <literal>2</literal>, indicating a controller without or with a
 	    floppy controller on board.</para>
-	      
+
 	  <para>The <literal>y</literal> is more interesting.  It can either
 	    be a blank, a <literal>A-8</literal> or a <literal>D</literal>.  A
 	    blank indicates a plain 10 Mbits/second controller.  An
@@ -394,18 +394,18 @@
 	    capable of handling 52 sectors/track.  A <literal>D</literal>
 	    means a 15 Mbits/second controller that can also handle drives
 	    with > 36 sectors/track (also 52?).</para>
-	      
+
 	  <para>All variations should be capable of using 1:1 interleaving.
 	    Use 1:1, FreeBSD is fast enough to handle it.</para>
 	</sect3>
 
 	<sect3>
 	  <title>Western Digital WD1007 controllers</title>
-	  
+
 	  <para>I successfully installed FreeBSD onto a ESDI disk controlled
 	    by a WD1007 controller.  To be precise, it was a WD1007-WA2.
 	    Other variations of the WD1007 do exist.</para>
-	      
+
 	  <para>To get it to work, I had to disable the sector translation and
 	    the WD1007's onboard BIOS.  This implied I could not use the
 	    low-level formatter built into this BIOS.  Instead, I grabbed
@@ -416,34 +416,34 @@
 
 	<sect3>
 	  <title>Ultrastor U14F controllers</title>
-	  
+
 	  <para>According to multiple reports from the net, Ultrastor ESDI
 	    boards work OK with FreeBSD.  I lack any further info on
 	    particular settings.</para>
 	</sect3>
       </sect2>
-      
+
       <sect2 id="esdi-further-reading">
 	<title>Further reading</title>
-	    
+
 	<para>If you intend to do some serious ESDI hacking, you might want to
 	  have the official standard at hand:</para>
-	    
+
 	<para>The latest ANSI X3T10 committee document is: Enhanced Small
 	  Device Interface (ESDI) [X3.170-1990/X3.170a-1991]    [X3T10/792D
 	  Rev 11]</para>
-		
+
 	<para>On Usenet the newsgroup <ulink
 	    url="news:comp.periphs">comp.periphs</ulink> is a noteworthy place
 	  to look  for more info.</para>
-	    
+
 	<para>The World Wide Web (WWW) also proves to be a very handy info
 	  source: For info on Adaptec ESDI controllers see <ulink
 	    url="http://www.adaptec.com/"></ulink>. For
 	  info on Western Digital controllers see
 	  <ulink url="http://www.wdc.com/"></ulink>.</para>
       </sect2>
-      
+
       <sect2>
 	<title>Thanks to...</title>
 
@@ -451,20 +451,20 @@
 	  disk for testing.</para>
       </sect2>
     </sect1>
-    
+
     <sect1 id="scsi">
       <title>What is SCSI?</title>
-      
+
       <para><emphasis>Copyright © 1995, &a.wilko;.  July 6,
 	  1996.</emphasis></para>
-	  
+
       <para>SCSI is an acronym for Small Computer Systems Interface.  It is an
 	ANSI standard that has become one of the leading I/O buses in the
 	computer industry.  The foundation of the SCSI standard was laid by
 	Shugart Associates (the same guys that gave the world the first mini
 	floppy disks) when they introduced the SASI bus (Shugart Associates
 	Standard Interface).</para>
-	  
+
       <para>After some time an industry effort was started to come to a more
 	strict standard allowing devices from different vendors to work
 	together.  This effort was recognized in the ANSI SCSI-1 standard.
@@ -472,7 +472,7 @@
 	current standard is SCSI-2 (see <link
 	  linkend="scsi-further-reading">Further reading</link>), with SCSI-3
 	on the drawing boards.</para>
-	  
+
       <para>In addition to a physical interconnection standard, SCSI defines a
 	logical (command set) standard to which disk devices must adhere.
 	This standard is called the Common Command Set (CCS) and was developed
@@ -480,7 +480,7 @@
 	(revised) CCS as part of the standard itself. The commands are
 	dependent on the type of device at hand.  It does not make much sense
 	of course to define a Write command for a scanner.</para>
-	  
+
       <para>The SCSI bus is a parallel bus, which comes in a number of
 	variants.  The oldest and most used is an 8 bit wide bus, with
 	single-ended signals, carried on 50 wires.  (If you do not know what
@@ -494,13 +494,13 @@
 	is 40 million transfers per second (40 Mbytes/sec on a 8 bit bus).
 	Most hard drives sold today are single-ended Ultra SCSI (8 or 16
 	bits).</para>
-	  
+
       <para>Of course the SCSI bus not only has data lines, but also a number
 	of control signals.  A very elaborate protocol is part of the standard
 	to allow multiple devices to share the bus in an efficient manner.  In
 	SCSI-2, the data is always checked using a separate parity line.  In
 	pre-SCSI-2 designs parity was optional.</para>
-	  
+
       <para>In SCSI-3 even faster bus types are introduced, along with a
 	serial SCSI busses that reduces the cabling overhead and allows a
 	higher maximum bus length.  You might see names like SSA and
@@ -508,7 +508,7 @@
 	in widespread use (especially not in the typical FreeBSD environment).
 	For this reason the serial bus types are not discussed any
 	further.</para>
-	  
+
       <para>As you could have guessed from the description above, SCSI devices
 	are intelligent.  They have to be to adhere to the SCSI standard
 	(which is over 2 inches thick BTW).  So, for a hard disk drive for
@@ -516,12 +516,12 @@
 	particular block, but simply the number of the block you want.
 	Elaborate caching schemes, automatic bad block replacement etc are all
 	made possible by this <quote>intelligent device</quote> approach.</para>
-	  
+
       <para>On a SCSI bus, each possible pair of devices can communicate.
 	Whether their function allows this is another matter, but the standard
 	does not restrict it.  To avoid signal contention, the 2 devices have
 	to arbitrate for the bus before using it.</para>
-	  
+
       <para>The philosophy of SCSI is to have a standard that allows
 	older-standard devices to work with newer-standard ones.  So, an old
 	SCSI-1 device should normally work on a SCSI-2 bus.  I say Normally,
@@ -530,7 +530,7 @@
 	new bus.  Modern devices are usually more well-behaved, because the
 	standardization has become more strict and is better adhered to by the
 	device manufacturers.</para>
-	  
+
       <para>Generally speaking, the chances of getting a working set of
 	devices on a single bus is better when all the devices are SCSI-2 or
 	newer.  This implies that you do not have to dump all your old stuff
@@ -541,7 +541,7 @@
 	devices however. This is especially advantageous if you have an
 	Ultra160 host adapter where you should separate your U160 devices
 	from the Fast and Wide SCSI-2 devices.</para>
-      
+
       <sect2>
 	<title>Components of SCSI</title>
 
@@ -554,16 +554,16 @@
 	  their hardware particulars.  FreeBSD uses this capability during
 	  boot to check out what devices are connected and whether they need
 	  any special treatment.</para>
-	    
+
 	<para>The advantage of intelligent devices is obvious: the device
 	  drivers on the host can be made in a much more generic fashion,
 	  there is no longer a need to change (and qualify!) drivers for every
 	  odd new device that is introduced.</para>
-	    
+
 	<para>For cabling and connectors there is a golden rule: get good
 	  stuff.  With bus speeds going up all the time you will save yourself
 	  a lot of grief by using good material.</para>
-	    
+
 	<para>So, gold plated connectors, shielded cabling, sturdy connector
 	  hoods with strain reliefs etc are the way to go. Second golden rule:
 	  do no use cables longer than necessary.  I once spent 3 days hunting
@@ -571,7 +571,7 @@
 	  the SCSI bus by 1 meter solved the problem.  And the original bus
 	  length was well within the SCSI specification.</para>
       </sect2>
-	  
+
       <sect2>
 	<title>SCSI bus types</title>
 
@@ -582,27 +582,27 @@
 	  converter hardware to transform a single-ended bus into a
 	  differential one (and vice versa).  The differences between the bus
 	  types are explained in the next sections.</para>
-	    
+
 	<para>In lots of SCSI related documentation there is a sort of jargon
 	  in use to abbreviate the different bus types.  A small list:</para>
-	    
+
 	<itemizedlist>
 	  <listitem>
 	    <para>FWD:	Fast Wide Differential</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>FND:	Fast Narrow Differential</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>SE:	Single Ended</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>FN:	Fast Narrow</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>etc.</para>
 	  </listitem>
@@ -611,11 +611,11 @@
 
 	<para>With a minor amount of imagination one can usually imagine what
 	  is meant.</para>
-	    
+
 	<para>Wide is a bit ambiguous, it can indicate 16 or 32 bit buses. As
 	  far as I know, the 32 bit variant is not (yet) in use, so wide
 	  normally means 16 bit.</para>
-	    
+
 	<para>Fast means that the timing on the bus is somewhat different, so
 	  that on a narrow (8 bit) bus 10 Mbytes/sec are possible instead of 5
 	  Mbytes/sec for <quote>slow</quote> SCSI.  As discussed before, bus speeds of 20
@@ -633,7 +633,7 @@
 
 	<sect3>
 	  <title>Single ended buses</title>
-	  
+
 	  <para>A single-ended SCSI bus uses signals that are either 5 Volts
 	    or 0 Volts (indeed, TTL levels) and are relative to a COMMON
 	    ground reference.  A singled ended 8 bit SCSI bus has
@@ -643,7 +643,7 @@
 	    maximum length allowed drops to 3 meters.  Fast-SCSI means that
 	    instead of 5Mbytes/sec the bus allows 10Mbytes/sec
 	    transfers.</para>
-	      
+
 	  <para>Fast-20 (Ultra SCSI) and Fast-40 allow for 20 and 40 million
 	    transfers/second respectively.  So, F20 is 20 Mbytes/second on a 8
 	    bit bus, 40 Mbytes/second on a 16 bit bus etc.  For F20 the max
@@ -656,16 +656,16 @@
 	      bus must adhere to the length restrictions for fast
 	      buses!</para>
 	  </note>
-	  
+
 	  <para>It is obvious that with the newer fast-SCSI devices the bus
 	    length can become a real bottleneck.  This is why the differential
 	    SCSI bus was introduced in the SCSI-2 standard.</para>
-	      
+
 	  <para>For connector pinning and connector types please refer to the
 	    SCSI-2 standard (see <link linkend="scsi-further-reading">Further
 	      reading</link>) itself, connectors etc are listed there in
 	    painstaking detail.</para>
-	  
+
 	  <para>Beware of devices using non-standard cabling.  For instance
 	    Apple uses a 25pin D-type connecter (like the one on serial ports
 	    and parallel printers).  Considering that the official SCSI bus
@@ -678,7 +678,7 @@
 
 	<sect3>
 	  <title>Differential buses</title>
-	  
+
 	  <para>A differential SCSI bus has a maximum length of 25 meters.
 	    Quite a difference from the 3 meters for a single-ended fast-SCSI
 	    bus.  The idea behind differential signals is that each bus signal
@@ -688,7 +688,7 @@
 	    or de-asserted.  To a certain extent the voltage difference
 	    between ground and the signal wire pair is not relevant (do not
 	    try 10 kVolts though).</para>
-	      
+
 	  <para>It is beyond the scope of this document to explain why this
 	    differential idea is so much better.  Just accept that
 	    electrically seen the use of differential signals gives a much
@@ -696,7 +696,7 @@
 	    use for inter-cabinet connections.  Because of the lower cost
 	    single ended is mostly used for shorter buses like inside
 	    cabinets.</para>
-	      
+
 	  <para>There is nothing that stops you from using differential stuff
 	    with FreeBSD, as long as you use a controller that has device
 	    driver support in FreeBSD.  As an example, Adaptec marketed the
@@ -707,7 +707,7 @@
 
 	<sect3>
 	  <title>Terminators</title>
-	  
+
 	  <para>Terminators in SCSI terminology are resistor networks that are
 	    used to get a correct impedance matching.  Impedance matching is
 	    important to get clean signals on the bus, without reflections or
@@ -715,7 +715,7 @@
 	    line you probably know what reflections are.  With 20Mbytes/sec
 	    traveling over your SCSI bus, you do not want signals echoing
 	    back.</para>
-	      
+
 	  <para>Terminators come in various incarnations, with more or less
 	    sophisticated designs.  Of course, there are internal and external
 	    variants.  Many SCSI devices come with a number of sockets in
@@ -729,7 +729,7 @@
 	    onto a flat cable bus.  Others look like external connectors, or a
 	    connector hood without a cable.  So, lots of choice as you can
 	    see.</para>
-	      
+
 	  <para>There is much debate going on if and when you should switch
 	    from simple resistor (passive) terminators to active terminators.
 	    Active terminators contain slightly more elaborate circuit to give
@@ -738,11 +738,11 @@
 	    buses and/or fast devices.  If you ever have problems with your
 	    SCSI buses you might consider trying an active terminator.  Try to
 	    borrow one first, they reputedly are quite expensive.</para>
-	      
+
 	  <para>Please keep in mind that terminators for differential and
 	    single-ended buses are not identical.  You should <emphasis>not
 	      mix</emphasis> the two variants.</para>
-	      
+
 	  <para>OK, and now where should you install your terminators? This is
 	    by far the most misunderstood part of SCSI.  And it is by far the
 	    simplest.  The rule is: <emphasis>every single line on the SCSI
@@ -752,7 +752,7 @@
 	    grief, because wrong termination has the potential to introduce
 	    highly mysterious bugs.  (Note the <quote>potential</quote> here;
 	    the nastiest part is that it may or may not work.)</para>
-	      
+
 	  <para>A common pitfall is to have an internal (flat) cable in a
 	    machine and also an external cable attached to the controller. It
 	    seems almost everybody forgets to remove the terminators from the
@@ -767,13 +767,13 @@
 	      bits of the bus on the adapter (as well as the last devices on
 	      each bus, of course).</para>
 	      </note>
-	      
+
 	  <para>What I did myself is remove all terminators from my SCSI
 	    devices and controllers.  I own a couple of external terminators,
 	    for both the Centronics-type external cabling and for the internal
 	    flat cable connectors.  This makes reconfiguration much
 	    easier.</para>
-	      
+
 	  <para>On modern devices, sometimes integrated terminators are used.
 	    These things are special purpose integrated circuits that can be
 	    enabled or disabled with a control pin.  It is not necessary to
@@ -787,25 +787,25 @@
 
 	<sect3>
 	  <title>Terminator power</title>
-	  
+
 	  <para>The terminators discussed in the previous chapter need power
 	    to operate properly.  On the SCSI bus, a line is dedicated to this
 	    purpose.  So, simple huh?</para>
-	      
+
 	  <para>Not so.  Each device can provide its own terminator power to
 	    the terminator sockets it has on-device.  But if you have external
 	    terminators, or when the device supplying the terminator power to
 	    the SCSI bus line is switched off you are in trouble.</para>
-	      
+
 	  <para>The idea is that initiators (these are devices that initiate
 	    actions on the bus, a discussion follows) must supply terminator
 	    power.  All SCSI devices are allowed (but not required) to supply
 	    terminator power.</para>
-	      
+
 	  <para>To allow for un-powered devices on a bus, the terminator power
 	    must be supplied to the bus via a diode.  This prevents the
 	    backflow of current to un-powered devices.</para>
-	      
+
 	  <para>To prevent all kinds of nastiness, the terminator power is
 	    usually fused.  As you can imagine, fuses might blow.  This can,
 	    but does not have to, lead to a non functional bus.  If multiple
@@ -813,18 +813,18 @@
 	    you out of business.  A single supplier with a blown fuse
 	    certainly will.  Clever external terminators sometimes have a  LED
 	    indication that shows whether terminator power is present.</para>
-	      
+
 	  <para>In newer designs auto-restoring fuses that <quote>reset</quote> themselves
 	    after some time are sometimes used.</para>
 	</sect3>
 
 	<sect3>
 	  <title>Device addressing</title>
-	  
+
 	  <para>Because the SCSI bus is, ehh, a bus there must be a way to
 	    distinguish or address the different devices connected to
 	    it.</para>
-	      
+
 	  <para>This is done by means of the SCSI or target ID.  Each device
 	    has a unique target ID.  You can select the ID to which a device
 	    must respond using a set of jumpers, or a dip switch, or something
@@ -832,12 +832,12 @@
 	    from the boot menu.  (Yet some others will not let you change the
 	    ID from 7.)  Consult the documentation of your device for more
 	    information.</para>
-	  
+
 	  <para>Beware of multiple devices configured to use the same ID.
 	    Chaos normally reigns in this case.  A pitfall is that one of the
 	    devices sharing the same ID sometimes even manages to answer to
 	    I/O requests!</para>
-	      
+
 	  <para>For an 8 bit bus, a maximum of 8 targets is possible.  The
 	    maximum is 8 because the selection is done bitwise using the 8
 	    data lines on the bus.  For wide buses this increases to the
@@ -850,7 +850,7 @@
 	      something higher than 7 (or your CDROM will stop
 	      working).</para>
 	  </note>
-	  
+
 	  <para>The higher the SCSI target ID, the higher the priority the
 	    devices has.  When it comes to arbitration between devices that
 	    want to use the bus at the same time, the device that has the
@@ -861,7 +861,7 @@
 	    on a wide-SCSI system.  (If you are wondering why the lower 8
 	    have higher priority, read the previous paragraph for a
 	    hint.)</para>
-	      
+
 	  <para>For a further subdivision, the standard allows for Logical
 	    Units or LUNs for short.  A single target ID may have multiple
 	    LUNs.  For example, a tape device including a tape changer may
@@ -869,10 +869,10 @@
 	    changer.  In this way, the host system can address each of the
 	    functional units of the tape changer as desired.</para>
 	</sect3>
-	    
+
 	<sect3>
 	  <title>Bus layout</title>
-	  
+
 	  <para>SCSI buses are linear.  So, not shaped like Y-junctions, star
 	    topologies, rings, cobwebs or whatever else people might want to
 	    invent.  One of the most common mistakes is for people with
@@ -882,31 +882,31 @@
 	    really lucky, but I can almost guarantee that your system will
 	    stop functioning at the most unfortunate moment (this is also
 	    known as <quote>Murphy's law</quote>).</para>
-	      
+
 	  <para>You might notice that the terminator issue discussed earlier
 	    becomes rather hairy if your bus is not linear.  Also, if you have
 	    more connectors than devices on your internal SCSI cable, make
 	    sure you attach devices on connectors on both ends instead of
 	    using the connectors in the middle and let one or both ends
 	    dangle.  This will screw up the termination of the bus.</para>
-	      
+
 	  <para>The electrical characteristics, its noise margins and
 	    ultimately the reliability of it all are tightly related to linear
 	    bus rule.</para>
-	  
+
 	  <para><emphasis>Stick to the linear bus rule!</emphasis></para>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>Using SCSI with FreeBSD</title>
 
 	<sect3>
 	  <title>About translations, BIOSes and magic...</title>
-	  
+
 	  <para>As stated before, you should first make sure that you have a
 	    electrically sound bus.</para>
-	      
+
 	  <para>When you want to use a SCSI disk on your PC as boot disk, you
 	    must aware of some quirks related to PC BIOSes.  The PC BIOS in
 	    its first incarnation used a low level physical interface to the
@@ -915,20 +915,20 @@
 	    involved stating number of heads, number of cylinders, number of
 	    sectors per track, obscure things like precompensation and reduced
 	    write current cylinder etc.</para>
-	      
+
 	  <para>One might be inclined to think that since SCSI disks are smart
 	    you can forget about this.  Alas, the arcane setup issue is still
 	    present today.  The system BIOS needs to know how to access your
 	    SCSI disk with the head/cyl/sector method in order to load the
 	    FreeBSD kernel during boot.</para>
-	      
+
 	  <para>The SCSI host adapter or SCSI controller you have put in your
 	    AT/EISA/PCI/whatever bus to connect your disk therefore has its
 	    own on-board BIOS.  During system startup, the SCSI BIOS takes
 	    over the hard disk interface routines from the system BIOS.  To
 	    fool the system BIOS, the system setup is normally set to No hard
 	    disk present.  Obvious, is it not?</para>
-	      
+
 	  <para>The SCSI BIOS itself presents to the system a so called
 	    <emphasis>translated</emphasis> drive.  This means that a fake
 	    drive table is constructed that allows the PC to boot the drive.
@@ -938,37 +938,37 @@
 	    size.  It is useful to note that 32 * 64 / 2 = the size of your
 	    drive in megabytes.  The division by 2 is to get from disk blocks
 	    that are normally 512 bytes in size to Kbytes.</para>
-	      
+
 	  <para>Right.  All is well now?! No, it is not.  The system BIOS has
 	    another quirk you might run into.  The number of cylinders of a
 	    bootable hard disk cannot be greater than 1024.  Using the
 	    translation above, this is a show-stopper for disks greater than 1
 	    GB.  With disk capacities going up all the time this is causing
 	    problems.</para>
-	      
+
 	  <para>Fortunately, the solution is simple: just use another
 	    translation, e.g. with 128 heads instead of 32.  In most cases new
 	    SCSI BIOS versions are available to upgrade older SCSI host
 	    adapters.  Some newer adapters have an option, in the form of a
 	    jumper or software setup selection, to switch the translation the
 	    SCSI BIOS uses.</para>
-	      
+
 	  <para>It is very important that <emphasis>all</emphasis> operating
 	    systems on the disk use the <emphasis>same translation</emphasis>
 	    to get the right idea about where to find the relevant partitions.
 	    So, when installing FreeBSD you must answer any questions about
 	    heads/cylinders etc using the translated values your host adapter
 	    uses.</para>
-	      
+
 	  <para>Failing to observe the translation issue might lead to
 	    un-bootable systems or operating systems overwriting each others
 	    partitions.  Using fdisk you should be able to see all
 	    partitions.</para>
-	      
+
 	  <para>You might have heard some talk of <quote>lying</quote> devices?
 	    Older FreeBSD kernels used to report the geometry of SCSI disks
 	    when booting.  An example from one of my systems:</para>
-	      
+
 	  <screen>aha0 targ 0 lun 0: <MICROP 1588-15MB1057404HSP4>
 da0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512</screen>
 
@@ -977,9 +977,9 @@
 
 	  <screen>(bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2
 da0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors)</screen>
-		
+
 	  <para>Why has this changed?</para>
-	      
+
 	  <para>This info is retrieved from the SCSI disk itself.  Newer disks
 	    often use a technique called zone bit recording.  The idea is that
 	    on the outer cylinders of the drive there is more space so more
@@ -996,13 +996,13 @@
 
 	<sect3>
 	  <title>SCSI subsystem design</title>
-	  
+
 	  <para>FreeBSD uses a layered SCSI subsystem.  For each different
 	    controller card a device driver is written.  This driver knows all
 	    the intimate details about the hardware it controls.  The driver
 	    has a interface to the upper layers of the SCSI subsystem through
 	    which it receives its commands and reports back any status.</para>
-	      
+
 	  <para>On top of the card drivers there are a number of more generic
 	    drivers for a class of devices.  More specific: a driver for tape
 	    devices (abbreviation: sa, for serial access),
@@ -1010,7 +1010,7 @@
 	    In case you are wondering where you can find this stuff, it all
 	    lives in <filename>/sys/cam/scsi</filename>.  See the man pages in
 	    section 4 for more details.</para>
-	      
+
 	  <para>The multi level design allows a decoupling of low-level bit
 	    banging and more high level stuff.  Adding support for another
 	    piece of hardware is a much more manageable problem.</para>
@@ -1018,7 +1018,7 @@
 
 	<sect3>
 	  <title>Kernel configuration</title>
-	  
+
 	  <para>Dependent on your hardware, the kernel configuration file must
 	    contain one or more lines describing your host adapter(s).  This
 	    includes I/O addresses, interrupts etc. Consult the manual page for
@@ -1028,7 +1028,7 @@
 	    possible option you can dream of.  It does
 	    <emphasis>not</emphasis> imply <filename>LINT</filename> will
 	    actually get you to a working kernel at all.</para>
-	  
+
 	  <para>Although it is probably stating the obvious: the kernel config
 	    file should reflect your actual hardware setup.  So, interrupts,
 	    I/O addresses etc must match the kernel config file.  During
@@ -1043,11 +1043,11 @@
 	      adapters themselves at boot time; thus, you just need to write,
 	      for instance, <literal>controller ahc0</literal>.</para>
 	  </note>
-	  
+
 	  <para>An example loosely based on the FreeBSD 2.2.5-Release kernel
 	    config  file <filename>LINT</filename> with some added comments
 	    (between []):</para>
-	      
+
 	  <programlisting># SCSI host adapters: `aha', `ahb', `aic', `bt', `nca'
 #
 # aha: Adaptec 154x
@@ -1084,14 +1084,14 @@
 disk da3 at scbus2 target 4             [SCSI disk on the ncr0]
 tape sa1 at scbus0 target 6             [SCSI tape at target 6]
 device cd0 at scbus?                    [the first ever CDROM found, no wiring]</programlisting>
-	      
+
 	  <para>The example above tells the kernel to look for a ahc (Adaptec
 	    274x) controller, then for an NCR/Symbios board, and so on.  The
 	    lines following the controller specifications  tell the kernel to
 	    configure specific devices but <emphasis>only</emphasis> attach
 	    them when they match the target ID and LUN specified on the
 	    corresponding bus.</para>
-	      
+
 	  <para>Wired down devices get <quote>first shot</quote> at the unit
 	    numbers so the first non <quote>wired down</quote> device, is
 	    allocated the unit number  one greater than the highest
@@ -1109,26 +1109,26 @@
 	      <emphasis>no</emphasis> relationship with its target ID on  the
 	      SCSI bus.</para>
 	  </note>
-	  
+
 	  <para>Below is another example of a kernel config file as used by
 	    FreeBSD version < 2.0.5.  The difference with the first example
 	    is that devices are not <quote>wired down</quote>.  <quote>Wired
 	    down</quote> means that you specify which SCSI target belongs to
 	    which device.</para>
-	      
+
 	  <para>A kernel built to the config file below will attach  the first
 	    SCSI disk it finds to da0, the second disk to da1 etc. If you ever
 	    removed or added a disk, all other devices of the same type (disk
 	    in this case) would <quote>move around</quote>.  This implies you have to
 	    change <filename>/etc/fstab</filename> each time.</para>
-	      
+
 	  <para>Although the old style still works, you  are
 	    <emphasis>strongly</emphasis> recommended to use this new feature.
 	    It will save you a lot of grief whenever you shift your hardware
 	    around on the SCSI buses.  So, when you re-use your old trusty
 	    config file after upgrading from a pre-FreeBSD2.0.5.R system check
 	    this out.</para>
-	  
+
 	  <programlisting>[driver for Adaptec 174x]
 controller      ahb0 at isa? bio irq 11 vector ahbintr
 
@@ -1145,14 +1145,14 @@
 
 [for the CDROM]
 device          cd0     #Only need one of these, the code dynamically grows</programlisting>
-	      
+
 	  <para>Both examples support SCSI disks.  If during boot more devices
 	    of a specific type (e.g. da disks) are found than are configured
 	    in the booting kernel, the system will simply allocate more
 	    devices, incrementing the unit number starting at the last number
 	    <quote>wired down</quote>.  If there are no <quote>wired
 	    down</quote> devices then counting starts at unit 0.</para>
-	      
+
 	  <para>Use <command>man 4 scsi</command> to check for the latest info
 	    on the SCSI subsystem.  For more detailed info on host adapter
 	    drivers use e.g., <command>man 4 ahc</command> for info on the
@@ -1161,19 +1161,19 @@
 
 	<sect3>
 	  <title>Tuning your SCSI kernel setup</title>
-	  
+
 	  <para>Experience has shown that some devices are slow to respond to
 	    INQUIRY commands after a SCSI bus reset (which happens at boot
 	    time).  An INQUIRY command is sent by the kernel on boot to see
 	    what kind of device (disk, tape, CDROM etc.) is connected to a
 	    specific target ID.  This process is called device probing by the
 	    way.</para>
-	      
+
 	  <para>To work around the <quote>slow response</quote> problem, FreeBSD allows a
 	    tunable delay time before the SCSI devices are probed following a
 	    SCSI bus reset.  You can set this delay time in your kernel
 	    configuration file using a line like:</para>
-	      
+
 	  <programlisting>options         SCSI_DELAY=15         #Be pessimistic about Joe SCSI device</programlisting>
 
 	  <para>This line sets the delay time to 15 seconds.  On my own system
@@ -1185,29 +1185,29 @@
 
 	<sect3 id="scsi-rogue-devices">
 	  <title>Rogue SCSI devices</title>
-	      
+
 	  <para>Although the SCSI standard tries to be complete and concise,
 	    it is a complex standard and implementing things correctly is no
 	    easy task.  Some vendors do a better job then others.</para>
-	      
+
 	  <para>This is exactly where the <quote>rogue</quote> devices come
 	    into view. Rogues are devices that are recognized by the FreeBSD
 	    kernel as behaving slightly (...) non-standard.  Rogue devices are
 	    reported by the kernel when booting.  An example for two of my
 	    cartridge tape units:</para>
-	  
+
 	  <screen>Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: <TANDBERG TDC 3600       -06:>
 Feb 25 21:03:34 yedi /kernel: sa0: Tandberg tdc3600 is a known rogue
 
 Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: <ARCHIVE VIPER 150  21247-005>
 Mar 29 21:16:37 yedi /kernel: sa1: Archive  Viper 150 is a known rogue </screen>
-	      
+
 	  <para>For instance, there are devices that respond to all LUNs on a
 	    certain target ID, even if they are actually only one device.  It
 	    is easy to see that the kernel might be fooled into believing that
 	    there are 8 LUNs at that particular target ID. The confusion this
 	    causes is left as an exercise to the reader.</para>
-	      
+
 	  <para>The SCSI subsystem of FreeBSD recognizes devices with bad
 	    habits by looking at the INQUIRY response they send when probed.
 	    Because the INQUIRY response also includes the version number of
@@ -1216,12 +1216,12 @@
 	    <filename>/sys/cam/scsi/scsi_sa.c</filename> and
 	    <filename>/sys/cam/scsi/scsi_all.c</filename> for more info on how
 	    this is done.</para>
-	      
+
 	  <para>This scheme works fine, but keep in mind that it of course
 	    only works for devices that are known to be weird.  If you are the
 	    first to connect your bogus Mumbletech SCSI CDROM you might be
 	    the one that has to define which workaround is needed.</para>
-	      
+
 	  <para>After you got your Mumbletech working, please send the
 	    required workaround to the FreeBSD development team for inclusion
 	    in the next release of FreeBSD.  Other Mumbletech owners will be
@@ -1230,18 +1230,18 @@
 
 	<sect3>
 	  <title>Multiple LUN devices</title>
-	  
+
 	  <para>In some cases you come across devices that use multiple
 	    logical units (LUNs) on a single SCSI ID.  In most cases FreeBSD
 	    only probes devices for LUN 0.  An example are so called bridge
 	    boards that connect 2 non-SCSI hard disks to a SCSI bus (e.g. an
 	    Emulex MD21 found in old Sun systems).</para>
-	      
+
 	  <para>This means that any devices with LUNs != 0 are not normally
 	    found during device probe on system boot.  To work around this
 	    problem you must add an appropriate entry in /sys/cam/scsi
 	    and rebuild your kernel.</para>
-	      
+
 	  <para>Look for a struct that is initialized like below:
 	    (FIXME: which file? Do these entries still exist in this form
             now that we use CAM?)</para>
@@ -1250,16 +1250,16 @@
         T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A",
         "mx1", SC_ONE_LU
 }</programlisting>
-	      
+
 	  <para>For your Mumbletech BRIDGE2000 that has more than one LUN, acts
 	    as a SCSI disk and has firmware revision 123 you would add
 	    something like:</para>
-	      
+
 	  <programlisting>{
         T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123",
         "da", SC_MORE_LUS
 }</programlisting>
-	      
+
 	  <para>The kernel on boot scans the inquiry data it receives against
 	    the table and acts accordingly.  See the source for more
 	    info.</para>
@@ -1267,10 +1267,10 @@
 
 	<sect3>
 	  <title>Tagged command queuing</title>
-	  
+
 	  <para>Modern SCSI devices, particularly magnetic disks,
 	    support what is called tagged command queuing (TCQ).</para>
-	  
+
 	  <para>In a nutshell, TCQ allows the device to have multiple I/O
 	    requests outstanding at the same time.  Because the device is
 	    intelligent, it can optimize its operations (like head
@@ -1278,12 +1278,12 @@
 	    like RAID (Redundant Array of Independent Disks) arrays the TCQ
 	    function is indispensable to take advantage of the device's
 	    inherent parallelism.</para>
-	      
+
 	  <para>Each I/O request is uniquely identified by a <quote>tag</quote>
 	    (hence the name tagged command queuing) and this tag is used by
 	    FreeBSD to see which I/O in the device drivers queue is reported
 	    as complete by the device.</para>
-	      
+
 	  <para>It should be noted however that TCQ requires device driver
 	    support and that some devices implemented it <quote>not quite
 	    right</quote> in their firmware.  This problem bit me once, and it
@@ -1293,84 +1293,84 @@
 
 	<sect3>
 	  <title>Bus-master host adapters</title>
-	  
+
 	  <para>Most, but not all, SCSI host adapters are bus mastering
 	    controllers.  This means that they can do I/O on their own without
 	    putting load onto the host CPU for data movement.</para>
-	      
+
 	  <para>This is of course an advantage for a multitasking operating
 	    system like FreeBSD.  It must be noted however that there might be
 	    some rough edges.</para>
-	      
+
 	  <para>For instance an Adaptec 1542 controller can be set to use
 	    different transfer speeds on the host bus (ISA or AT in this
 	    case).  The controller is settable to different rates because not
 	    all motherboards can handle the higher speeds.  Problems like
 	    hang-ups, bad data etc might be the result of using a higher data
 	    transfer rate then your motherboard can stomach.</para>
-	      
+
 	  <para>The solution is of course obvious: switch to a lower data
 	    transfer rate and try if that works better.</para>
-	      
+
 	  <para>In the case of a Adaptec 1542, there is an option that can be
 	    put into the kernel config file to allow dynamic determination of
 	    the right, read: fastest feasible, transfer rate.  This option is
 	    disabled by default:</para>
-	      
+
 	  <programlisting>options        "TUNE_1542"             #dynamic tune of bus DMA speed</programlisting>
-	      
+
 	  <para>Check the manual pages for the host adapter that you use.  Or
 	    better still, use the ultimate documentation (read: driver
 	    source).</para>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>Tracking down problems</title>
 
 	<para>The following list is an attempt to give a guideline for the
 	  most common SCSI problems and their solutions.  It is by no means
 	  complete.</para>
-	    
+
 	<itemizedlist>
 	  <listitem>
 	    <para>Check for loose connectors and cables.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Check and double check the location and number of your
 	      terminators.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Check if your bus has at least one supplier of terminator
 	      power (especially with external terminators.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Check if no double target IDs are used.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Check if all devices to be used are powered up.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Make a minimal bus config with as little devices as
 	      possible.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>If possible, configure your host adapter to use slow bus
 	      speeds.</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Disable tagged command queuing to make things as simple as
 	      possible (for a NCR host adapter based system see man
 	      ncrcontrol)</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>If you can compile a kernel, make one with the
 	      <literal>SCSIDEBUG</literal> option, and try accessing the
@@ -1388,16 +1388,16 @@
 	  </listitem>
 	</itemizedlist>
       </sect2>
-      
+
       <sect2 id="scsi-further-reading">
 	<title>Further reading</title>
 
 	<para>If you intend to do some serious SCSI hacking, you might want to
 	  have the official standard at hand:</para>
-	    
+
 	<para>Approved American National Standards can be purchased from
 	  ANSI at
-	  
+
 	  <address>
 	    <otheraddr>13th Floor</otheraddr>
 	    <street>11 West 42nd Street</street>
@@ -1424,7 +1424,7 @@
 	<para>Many X3T10 draft documents are available electronically on the
 	  SCSI BBS (719-574-0424) and on the <hostid
 	    role="fqdn">ncrinfo.ncr.com</hostid> anonymous FTP site.</para>
-	    
+
 	<para>Latest X3T10 committee documents are:</para>
 
 	<itemizedlist>
@@ -1432,22 +1432,22 @@
 	    <para>AT Attachment (ATA or IDE) [X3.221-1994]
 	      (<emphasis>Approved</emphasis>)</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>ATA Extensions (ATA-2) [X3T10/948D Rev 2i]</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Enhanced Small Device Interface (ESDI)
 	      [X3.170-1990/X3.170a-1991]
 	      (<emphasis>Approved</emphasis>)</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>Small Computer System Interface — 2 (SCSI-2)
 	      [X3.131-1994] (<emphasis>Approved</emphasis>)</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para>SCSI-2 Common Access Method Transport and SCSI Interface
 	      Module (CAM)  [X3T10/792D Rev 11]</para>
@@ -1464,33 +1464,33 @@
 	      Prentice Hall, Englewood Cliffs, NJ, 07632 Phone: (201) 767-5937
 	      ISBN 0-13-796855-8</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para><quote>Basics of SCSI</quote>, a SCSI tutorial written by
 	      Ancot Corporation Contact Ancot for availability information at:
 	      Phone: (415) 322-5322  Fax: (415) 322-0455</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para><quote>SCSI Interconnection Guide Book</quote>, an AMP
 	      publication (dated 4/93, Catalog  65237) that lists the various
 	      SCSI connectors and suggests cabling schemes.  Available from
 	      AMP at (800) 522-6752 or (717) 564-0100</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para><quote>Fast Track to SCSI</quote>, A Product Guide written by
 	      Fujitsu.  Available from: Prentice Hall, Englewood Cliffs, NJ,
 	      07632 Phone: (201) 767-5937 ISBN 0-13-307000-X</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para><quote>The SCSI Bench Reference</quote>, <quote>The SCSI
 	      Encyclopedia</quote>, and the <quote>SCSI Tutor</quote>, ENDL
 	      Publications, 14426 Black Walnut Court, Saratoga CA, 95070
 	      Phone: (408) 867-6642</para>
 	  </listitem>
-	  
+
 	  <listitem>
 	    <para><quote>Zadian SCSI Navigator</quote> (quick ref. book) and
 	      <quote>Discover the Power of SCSI</quote>  (First book along with
@@ -1511,38 +1511,38 @@
 	  information about the devices you own.</para>
       </sect2>
     </sect1>
-    
+
     <sect1 id="hw-storage-controllers">
       <title>* Disk/tape controllers</title>
-      
+
       <sect2>
 	<title>* SCSI</title>
 
 	<para></para>
       </sect2>
-      
+
       <sect2>
 	<title>* IDE</title>
 
 	<para></para>
       </sect2>
-      
+
       <sect2>
 	<title>* Floppy</title>
 
 	<para></para>
       </sect2>
     </sect1>
-    
+
     <sect1>
       <title>Hard drives</title>
-      
+
       <sect2>
 	<title>SCSI hard drives</title>
 
 	<para><emphasis>Contributed by &a.asami;.  17 February
 	    1998.</emphasis></para>
-	    
+
 	<para>As mentioned in the <link linkend="scsi">SCSI</link> section,
 	  virtually all SCSI hard drives sold today are SCSI-2 compliant and
 	  thus will work fine as long as you connect them to a supported SCSI
@@ -1556,7 +1556,7 @@
 
 	<sect3>
 	  <title>Rotational speed</title>
-	  
+
 	  <para>Rotational speeds of SCSI drives sold today range from around
 	    4,500RPM to 15,000RPM.  Most of them are either 7,200RPM or
 	    10,000RPM, with 15,000RPM becoming affordable (June 2002).
@@ -1565,7 +1565,7 @@
 	    counterparts.  A large fraction of today's disk drive malfunctions
 	    are heat-related.  If you do not have very good cooling in your PC
 	    case, you may want to stick with 7,200RPM or slower drives.</para>
-	      
+
 	  <para>Note that newer drives, with higher areal recording densities,
 	    can deliver much more bits per rotation than older ones.  Today's
 	    top-of-line 7,200RPM drives can sustain a throughput comparable to
@@ -1574,13 +1574,13 @@
 	    (or transfer) rate</quote>.  It is usually in megabits/sec so
 	    divide it by 8 and you will get the rough approximation of how much
 	    megabytes/sec you can get out of the drive.</para>
-	      
+
 	  <para>(If you are a speed maniac and want a 15,000RPM drive for your
 	    cute little PC, be my guest; however, those drives become
 	    extremely hot.  Do not even think about it if you do not have a fan
 	    blowing air <emphasis>directly at</emphasis> the drive or a
 	    properly ventilated disk enclosure.)</para>
-	      
+
 	  <para>Obviously, the latest 15,000RPM drives and 10,000RPM drives can
 	    deliver more data than the latest 7,200RPM drives, so if absolute
 	    bandwidth is the necessity for your applications, you have little
@@ -1599,7 +1599,7 @@
 	    similar or even better results by using the ccd (concatenated
 	    disk) driver to create a striped disk array out of multiple slower
 	    drives for comparable overall cost.</para>
-	      
+
 	  <para>Make sure you have adequate air flow around the drive,
 	    especially if you are going to use a fast-spinning drive.  You
 	    generally need at least 1/2” (1.25cm) of spacing above and below a
@@ -1608,7 +1608,7 @@
 	    where the air flows in, and put the drive where it will have the
 	    largest volume of cool air flowing around it. You may need to seal
 	    some unwanted holes or add a new fan for effective cooling.</para>
-	      
+
 	  <para>Another consideration is noise.  Many 10,000 or faster drives
 	    generate a high-pitched whine which is quite unpleasant to most
 	    people.  That, plus the extra fans often required for cooling, may
@@ -1618,7 +1618,7 @@
 
 	<sect3>
 	  <title>Form factor</title>
-	  
+
 	  <para>Most SCSI drives sold today are of 3.5” form factor.  They
 	    come in two different heights; 1.6” (<quote>half-height</quote>) or
 	    1” (<quote>low-profile</quote>).  The half-height drive is the same
@@ -1630,7 +1630,7 @@
 
 	<sect3>
 	  <title>Interface</title>
-	  
+
 	  <para>The majority of SCSI hard drives sold today are Ultra,
 	    Ultra-wide, or Ultra160 SCSI. As of this writing (June 2002),
 	    the first Ultra320 host adapters and devices become available.
@@ -1642,7 +1642,7 @@
 	    bus integrity problems.  Unless you have a well-designed disk
 	    enclosure, it is not easy to make more than 5 or 6 Ultra SCSI
 	    drives work on a single bus.</para>
-	      
+
 	  <para>On the other hand, if you need to connect many drives, going
 	    for Fast-wide SCSI may not be a bad idea.  That will have the same
 	    max bandwidth as Ultra (narrow) SCSI, while electronically it is
@@ -1652,7 +1652,7 @@
 	    cost a little more but it may save you down the road.  (Besides,
 	    if you can not afford the cost difference, you should not be building
 	    a disk array.)</para>
-	      
+
 	  <para>There are two variant of wide SCSI drives; 68-pin and 80-pin
 	    SCA (Single Connector Attach).  The SCA drives do not have a
 	    separate 4-pin power connector, and also read the SCSI ID settings
@@ -1668,20 +1668,20 @@
 	    LED lines).</para>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>* IDE hard drives</title>
 
 	<para></para>
       </sect2>
     </sect1>
-    
+
     <sect1>
       <title>Tape drives</title>
-      
+
       <para><emphasis>Contributed by &a.jmb;.  2 July
 	  1996.</emphasis></para>
-      
+
       <sect2>
 	<title>General tape access commands</title>
 
@@ -1690,7 +1690,7 @@
 	  <command>erase</command>, and <command>status</command>.  See the
 	    &man.mt.1; manual page for a detailed description.</para>
       </sect2>
-      
+
       <sect2>
 	<title>Controller Interfaces</title>
 
@@ -1701,7 +1701,7 @@
 	    linkend="hw-storage-controllers">Disk/tape
 	    controllers</link>.</para>
       </sect2>
-      
+
       <sect2>
 	<title>SCSI drives</title>
 
@@ -1718,150 +1718,150 @@
 
 	<sect3>
 	  <title>4mm (DAT: Digital Audio Tape)</title>
-	  
+
 	  <para><link linkend="hw-storage-python-28454">Archive Python
 	      28454</link></para>
 
 	  <para><link linkend="hw-storage-python-04687">Archive Python
 	      04687</link></para>
-	  
+
 	  <para><link linkend="hw-storage-hp1533a">HP C1533A</link></para>
-	      
+
 	  <para><link linkend="hw-storage-hp1534a">HP C1534A</link></para>
-	      
+
 	  <para><link linkend="hw-storage-hp35450a">HP 35450A</link></para>
-	      
+
 	  <para><link linkend="hw-storage-hp35470a">HP 35470A</link></para>
-	      
+
 	  <para><link linkend="hw-storage-hp35480a">HP 35480A</link></para>
-	      
+
 	  <para><link linkend="hw-storage-sdt5000">SDT-5000</link></para>
-	      
+
 	  <para><link linkend="hw-storage-wangtek6200">Wangtek
 	      6200</link></para>
 	</sect3>
 
 	<sect3>
 	  <title>8mm (Exabyte)</title>
-	  
+
 	  <para><link linkend="hw-storage-exb8200">EXB-8200</link></para>
-	  
+
 	  <para><link linkend="hw-storage-exb8500">EXB-8500</link></para>
-	  
+
 	  <para><link linkend="hw-storage-exb8505">EXB-8505</link></para>
 	</sect3>
 
 	<sect3>
 	  <title>QIC (Quarter-Inch Cartridge)</title>
-	  
+
 	  <para><link linkend="hw-storage-anaconda">Archive Anaconda
 	      2750</link></para>
-	      
+
 	  <para><link linkend="hw-storage-viper60">Archive Viper
 	      60</link></para>
-	      
+
 	  <para><link linkend="hw-storage-viper150">Archive Viper
 	      150</link></para>
-	      
+
 	  <para><link linkend="hw-storage-viper2525">Archive Viper
 	      2525</link></para>
-	      
+
 	  <para><link linkend="hw-storage-tandberg3600">Tandberg TDC
 	      3600</link></para>
 
 	  <para><link linkend="hw-storage-tandberg3620">Tandberg TDC
 	      3620</link></para>
-	    
+
 	  <para><link linkend="hw-storage-tandberg3800">Tandberg TDC
 	      3800</link></para>
-	      
+
 	  <para><link linkend="hw-storage-tandberg4222">Tandberg TDC
 	      4222</link></para>
-	      
+
 	  <para><link linkend="hw-storage-wangtek5525es">Wangtek
 	      5525ES</link></para>
 	</sect3>
 
 	<sect3>
 	  <title>DLT (Digital Linear Tape)</title>
-	  
+
 	  <para><link linkend="hw-storage-dectz87">Digital TZ87</link></para>
 	</sect3>
 
 	<sect3>
 	  <title>Mini-Cartridge</title>
-	  
+
 	  <para><link linkend="hw-storage-ctms3200">Conner CTMS
 	      3200</link></para>
-	      
+
 	  <para><link linkend="hw-storage-exb2501">Exabyte 2501</link></para>
 	</sect3>
 
 	<sect3>
 	  <title>Autoloaders/Changers</title>
-	  
+
 	  <para><link linkend="hw-storage-hp1553a">Hewlett-Packard HP C1553A
 	      Autoloading DDS2</link></para>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>* IDE drives</title>
 
 	<para></para>
       </sect2>
-      
+
       <sect2>
 	<title>Floppy drives</title>
 
 	<para><link linkend="hw-storage-conner420r">Conner 420R</link></para>
       </sect2>
-      
+
       <sect2>
 	<title>* Parallel port drives</title>
 
 	<para></para>
       </sect2>
-      
+
       <sect2>
 	<title>Detailed Information</title>
 
 	<sect3 id="hw-storage-anaconda">
 	  <title>Archive Anaconda 2750</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>ARCHIVE
 	      ANCDA 2750 28077 -003 type 1 removable SCSI 2</literal></para>
-	  
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 1.35GB when using QIC-1350 tapes.  This
 	    drive will read and write QIC-150 (DC6150), QIC-250 (DC6250), and
 	    QIC-525 (DC6525) tapes as well.</para>
-	      
+
 	  <para>Data transfer rate is 350kB/s using &man.dump.8;.
 	    Rates of 530kB/s have been reported when using
 	    Amanda</para>
 
 	  <para>Production of this drive has been discontinued.</para>
-	  
+
 	  <para>The SCSI bus connector on this tape drive is reversed from
 	    that on most other SCSI devices.  Make sure that you have enough
 	    SCSI cable to twist the cable one-half turn before and after the
 	    Archive Anaconda tape drive, or turn your other SCSI devices
 	    upside-down.</para>
-	  
+
 	  <para>Two kernel code changes are required to use this drive. This
 	    drive will not work as delivered.</para>
-	      
+
 	  <para>If you have a SCSI-2 controller, short jumper 6. Otherwise,
 	    the drive behaves are a SCSI-1 device.  When operating as a SCSI-1
 	    device, this drive, <quote>locks</quote> the SCSI bus during some
 	    tape operations, including: fsf, rewind, and rewoffl.</para>
-	      
+
 	  <para>If you are using the NCR SCSI controllers, patch the file
 	    <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below).
 	    Build and install a new kernel.</para>
-	      
+
 	  <programlisting>*** 4831,4835 ****
                 };
         
@@ -1874,29 +1874,29 @@
 !               if (np->latetime>1200) {
                         /*
                         **      Although we tried to wake it up,</programlisting>
-	      
+
 	  <para>Reported by: &a.jmb;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-python-28454">
 	  <title>Archive Python 28454</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>ARCHIVE
 	      Python 28454-XXX4ASB</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>density code 0x8c, 512-byte
 	      blocks</literal></para>
-	      
+
 	  <para>This is a DDS-1 tape drive.</para>
-	      
+
 	  <para>Native capacity is 2.5GB on 90m tapes.</para>
-	  
+
 	  <para>Data transfer rate is XXX.</para>
-	  
+
 	  <para>This drive was repackaged by Sun Microsystems as model
 	    595-3067.</para>
-	      
+
 	  <para>Reported by: Bob Bishop <email>rb at gid.co.uk</email></para>
-	  
+
 	  <para>Throughput is in the 1.5 MByte/sec range, however this will
 	    drop if the disks and tape drive are on the same SCSI
 	    controller.</para>
@@ -1908,7 +1908,7 @@
 	<sect3 id="hw-storage-python-04687">
 	  <title>Archive Python 04687</title>
 
-	  <para>The boot message identifier for this drive is <literal>ARCHIVE 
+	  <para>The boot message identifier for this drive is <literal>ARCHIVE
 	      Python 04687-XXX 6580</literal> <literal>Removable Sequential
 	      Access SCSI-2 device</literal></para>
 
@@ -1923,7 +1923,7 @@
 
 	  <para>Parity is controlled by switch 5.  Switch 5
 	    <emphasis>on</emphasis> to enable parity control.  Compression is
-	    enabled with Switch 6 <emphasis>off</emphasis>.  It is possible to 
+	    enabled with Switch 6 <emphasis>off</emphasis>.  It is possible to
 	    override compression with the <literal>SCSI MODE SELECT</literal>
 	    command (see &man.mt.1;).</para>
 
@@ -1932,117 +1932,117 @@
 
 	<sect3 id="hw-storage-viper60">
 	  <title>Archive Viper 60</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>ARCHIVE
 	      VIPER 60 21116 -007</literal> <literal>type 1 removable SCSI
 	      1</literal></para>
-	      
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 60MB.</para>
-	  
+
 	  <para>Data transfer rate is XXX.</para>
-	  
+
 	  <para>Production of this drive has been discontinued.</para>
-	  
+
 	  <para>Reported by: Philippe Regnauld
 	    <email>regnauld at hsc.fr</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-viper150">
 	  <title>Archive Viper 150</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>ARCHIVE
 	      VIPER 150 21531 -004</literal> <literal>Archive Viper 150 is a
 	      known rogue</literal> <literal>type 1 removable SCSI
 	      1</literal>.  A multitude of firmware revisions exist for this
 	    drive.  Your drive may report different numbers (e.g
 	    <literal>21247 -005</literal>.</para>
-	      
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 150/250MB.  Both 150MB (DC6150) and 250MB
 	    (DC6250) tapes have the recording format.  The 250MB tapes are
 	    approximately 67% longer than the 150MB tapes.  This drive can
 	    read 120MB tapes as well.  It can not write 120MB tapes.</para>
-	      
+
 	  <para>Data transfer rate is 100kB/s</para>
-	  
+
 	  <para>This drive reads and writes DC6150 (150MB) and DC6250 (250MB)
 	    tapes.</para>
-	      
+
 	  <para>This drives quirks are known and pre-compiled into the SCSI
 	    tape device driver (&man.st.4;).</para>
-	      
+
 	  <para>Under FreeBSD 2.2-CURRENT, use <command>mt blocksize
 	      512</command> to set the blocksize.  (The particular drive had
 	    firmware revision 21247 -005.  Other firmware revisions may behave
 	    differently) Previous versions of FreeBSD did not have this
 	    problem.</para>
-	      
+
 	  <para>Production of this drive has been discontinued.</para>
-	  
+
 	  <para>Reported by: Pedro A M Vazquez
 	    <email>vazquez at IQM.Unicamp.BR</email></para>
-	  
+
 	  <para>&a.msmith;</para>
 	</sect3>
-	    
+
 	<sect3 id="hw-storage-viper2525">
 	  <title>Archive Viper 2525</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>ARCHIVE
 	      VIPER 2525 25462 -011</literal> <literal>type 1 removable SCSI
 	      1</literal></para>
-	  
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 525MB.</para>
-	  
+
 	  <para>Data transfer rate is 180kB/s at 90 inches/sec.</para>
-	  
+
 	  <para>The drive reads QIC-525, QIC-150, QIC-120 and QIC-24 tapes.
 	    Writes QIC-525, QIC-150, and QIC-120.</para>
-	      
+
 	  <para>Firmware revisions prior to <literal>25462 -011</literal> are
 	    bug ridden and will not function properly.</para>
-	  
+
 	  <para>Production of this drive has been discontinued.</para>
 	</sect3>
 
 	<sect3 id="hw-storage-conner420r">
 	  <title>Conner 420R</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>Conner
 	      tape</literal>.</para>
-	      
+
 	  <para>This is a floppy controller, mini cartridge tape drive.</para>
-	      
+
 	  <para>Native capacity is XXXX</para>
-	  
+
 	  <para>Data transfer rate is XXX</para>
-	  
+
 	  <para>The drive uses QIC-80 tape cartridges.</para>
-	  
+
 	  <para>Reported by: Mark Hannon
 	    <email>mark at seeware.DIALix.oz.au</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-ctms3200">
 	  <title>Conner CTMS 3200</title>
-	      
+
 	  <para>The boot message identifier for this drive is <literal>CONNER
 	      CTMS 3200 7.00</literal> <literal>type 1 removable SCSI
 	      2</literal>.</para>
-	      
+
 	  <para>This is a mini cartridge tape drive.</para>
-	  
+
 	  <para>Native capacity is XXXX</para>
-	  
+
 	  <para>Data transfer rate is XXX</para>
-	  
+
 	  <para>The drive uses QIC-3080 tape cartridges.</para>
-	  
+
 	  <para>Reported by: Thomas S. Traylor
 	    <email>tst at titan.cs.mci.com</email></para>
 	</sect3>
@@ -2050,156 +2050,156 @@
 	<sect3 id="hw-storage-dectz87">
 	  <title><ulink
 	      url="http://www.digital.com/info/Customer-Update/931206004.txt.html">DEC TZ87</ulink></title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>DEC
 	      TZ87 (C) DEC 9206</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>density code 0x19</literal></para>
-	      
+
 	  <para>This is a DLT tape drive.</para>
-	  
+
 	  <para>Native capacity is 10GB.</para>
-	  
+
 	  <para>This drive supports hardware data compression.</para>
-	  
+
 	  <para>Data transfer rate is 1.2MB/s.</para>
-	  
+
 	  <para>This drive is identical to the Quantum DLT2000.  The drive
 	    firmware can be set to emulate several well-known drives,
 	    including an Exabyte 8mm drive.</para>
-	      
+
 	  <para>Reported by: &a.wilko;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-exb2501">
 	  <title><ulink
 	      url="http://www.Exabyte.COM:80/Products/Minicartridge/2501/Rfeatures.html">Exabyte EXB-2501</ulink></title>
-	      
+
 	  <para>The boot message identifier for this drive is <literal>EXABYTE
 	      EXB-2501</literal></para>
-	      
+
 	  <para>This is a mini-cartridge tape drive.</para>
-	      
+
 	  <para>Native capacity is 1GB when using MC3000XL
 	    mini cartridges.</para>
-	      
+
 	  <para>Data transfer rate is XXX</para>
-	  
+
 	  <para>This drive can read and write DC2300 (550MB), DC2750 (750MB),
 	    MC3000 (750MB), and MC3000XL (1GB) mini cartridges.</para>
-	      
+
 	  <para>WARNING: This drive does not meet the SCSI-2 specifications.
 	    The drive locks up completely in response to a SCSI MODE_SELECT
 	    command unless there is a formatted tape in the drive.  Before
 	    using this drive, set the tape blocksize with</para>
-	      
+
 	  <screen>&prompt.root; <userinput>mt -f /dev/st0ctl.0 blocksize 1024</userinput></screen>
-	      
+
 	  <para>Before using a mini cartridge for the first time, the
 	    mini cartridge must be formated.  FreeBSD 2.1.0-RELEASE and
 	    earlier:</para>
-	      
+
 	  <screen>&prompt.root; <userinput>/sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0"</userinput></screen>
-	      
+
 	  <para>(Alternatively, fetch a copy of the
 	    <command>scsiformat</command> shell script from FreeBSD
 	    2.1.5/2.2.) FreeBSD 2.1.5 and later:</para>
-	      
+
 	  <screen>&prompt.root; <userinput>/sbin/scsiformat -q -w /dev/rst0.ctl</userinput></screen>
-	      
+
 	  <para>Right now, this drive cannot really be recommended for
 	    FreeBSD.</para>
-	      
+
 	  <para>Reported by: Bob Beaulieu
 	    <email>ez at eztravel.com</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-exb8200">
 	  <title>Exabyte EXB-8200</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>EXABYTE
 	      EXB-8200 252X</literal> <literal>type 1 removable SCSI
 	      1</literal></para>
-	      
+
 	  <para>This is an 8mm tape drive.</para>
-	  
+
 	  <para>Native capacity is 2.3GB.</para>
-	  
+
 	  <para>Data transfer rate is 270kB/s.</para>
-	  
+
 	  <para>This drive is fairly slow in responding to the SCSI bus during
 	    boot.  A custom kernel may be required (set SCSI_DELAY to 10
 	    seconds).</para>
-	  
+
 	  <para>There are a large number of firmware configurations for this
 	    drive, some have been customized to a particular vendor's
 	    hardware.  The firmware can be changed via EPROM
 	    replacement.</para>
-	      
+
 	  <para>Production of this drive has been discontinued.</para>
-	  
+
 	  <para>Reported by: &a.msmith;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-exb8500">
 	  <title>Exabyte EXB-8500</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>EXABYTE
 	      EXB-8500-85Qanx0 0415</literal> <literal>type 1 removable SCSI
 	      2</literal></para>
-	      
+
 	  <para>This is an 8mm tape drive.</para>
-	  
+
 	  <para>Native capacity is 5GB.</para>
-	  
+
 	  <para>Data transfer rate is 300kB/s.</para>
-	      
+
 	  <para>Reported by: Greg Lehey <email>grog at lemis.de</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-exb8505">
 	  <title><ulink
 	      url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">Exabyte EXB-8505</ulink></title>
-	      
+
 	      <para>The boot message identifier for this drive is
 	    <literal>EXABYTE EXB-85058SQANXR1 05B0</literal> <literal>type 1
 	      removable SCSI 2</literal></para>
-	      
+
 	  <para>This is an 8mm tape drive which supports compression, and is
 	    upward compatible with the EXB-5200 and EXB-8500.</para>
-	  
+
 	  <para>Native capacity is 5GB.</para>
-	  
+
 	  <para>The drive supports hardware data compression.</para>
-	  
+
 	  <para>Data transfer rate is 300kB/s.</para>
-	  
+
 	  <para>Reported by: Glen Foster
 	    <email>gfoster at gfoster.com</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-hp1533a">
 	  <title>Hewlett-Packard HP C1533A</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>HP
 	      C1533A 9503</literal> <literal>type 1 removable SCSI
 	      2</literal>.</para>
-	      
+
 	  <para>This is a DDS-2 tape drive.  DDS-2 means hardware data
 	    compression and narrower tracks for increased data
 	    capacity.</para>
-	  
+
 	  <para>Native capacity is 4GB when using 120m tapes.  This drive
 	    supports hardware data compression.</para>
-	      
+
 	  <para>Data transfer rate is 510kB/s.</para>
-	  
+
 	  <para>This drive is used in Hewlett-Packard's SureStore 6000eU and
 	    6000i tape drives and C1533A DDS-2 DAT drive.</para>
-	  
+
 	  <para>The drive has a block of 8 dip switches.  The proper settings
 	    for FreeBSD are: 1 ON; 2 ON; 3 OFF; 4 ON; 5 ON; 6 ON; 7 ON; 8
 	    ON.</para>
-	  
+
 	  <informaltable frame="none">
 	    <tgroup cols="3">
 	      <thead>
@@ -2209,7 +2209,7 @@
 		  <entry>Result</entry>
 		</row>
 	      </thead>
-	      
+
 	      <tbody>
 		<row>
 		  <entry>On</entry>
@@ -2217,21 +2217,21 @@
 		  <entry>Compression enabled at power-on, with host
 		    control</entry>
 		</row>
-		
+
 		<row>
 		  <entry>On</entry>
 		  <entry>Off</entry>
 		  <entry>Compression enabled at power-on, no host
 		    control</entry>
 		</row>
-		
+
 		<row>
 		  <entry>Off</entry>
 		  <entry>On</entry>
 		  <entry>Compression disabled at power-on, with host
 		    control</entry>
 		</row>
-		
+
 		<row>
 		  <entry>Off</entry>
 		  <entry>Off</entry>
@@ -2241,46 +2241,46 @@
 	      </tbody>
 	    </tgroup>
 	  </informaltable>
-	  
+
 	  <para>Switch 3 controls MRS (Media Recognition System).  MRS tapes
 	    have stripes on the transparent leader.  These identify the tape
 	    as DDS (Digital Data Storage) grade media.  Tapes that do not have
 	    the stripes will be treated as write-protected.  Switch 3 OFF
 	    enables MRS.  Switch 3 ON disables MRS.</para>
-	      
+
 	      <para>See <ulink url="http://www.hp.com/tape/c_intro.html">HP
 	      SureStore Tape Products</ulink> and <ulink
 	      url="http://www.impediment.com/hp/hp_technical.html">Hewlett-Packard
 	      Disk and Tape Technical Information</ulink> for more information
 	    on configuring this drive.</para>
-	      
+
 	  <para><emphasis>Warning:</emphasis> Quality control on these drives
 	    varies greatly.  One FreeBSD core-team member has returned 2 of
 	    these drives.  Neither lasted more than 5 months.</para>
-	      
+
 	  <para>Reported by: &a.se;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-hp1534a">
 	  <title>Hewlett-Packard HP 1534A</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>HP
 	      HP35470A T503</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>Sequential-Access density code 0x13,
 	      variable blocks</literal>.</para>
-	      
+
 	  <para>This is a DDS-1 tape drive.  DDS-1 is the original DAT tape
 	    format.</para>
-	      
+
 	  <para>Native capacity is 2GB when using 90m tapes.</para>
-	      
+
 	  <para>Data transfer rate is 183kB/s.</para>
-	  
+
 	  <para>The same mechanism is used in Hewlett-Packard's SureStore
 	    <ulink url="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink>
 	    tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT
 	    drive and HP C1536A DDS format DAT drive.</para>
-	      
+
 	  <para>The HP C1534A DDS format DAT drive has two indicator lights,
 	    one green and one amber.  The green one indicates tape action:
 	    slow flash during load, steady when loaded, fast flash during
@@ -2288,40 +2288,40 @@
 	    flash when cleaning is required or tape is nearing the end of its
 	    useful life, steady indicates an hard fault.  (factory service
 	    required?)</para>
-	      
+
 	  <para>Reported by Gary Crutcher
 	    <email>gcrutchr at nightflight.com</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-hp1553a">
 	  <title>Hewlett-Packard HP C1553A Autoloading DDS2</title>
-	  
+
 	  <para>The boot message identifier for this drive is "".</para>
-	  
+
 	  <para>This is a DDS-2 tape drive with a tape changer.  DDS-2 means
 	    hardware data compression and narrower tracks for increased data
 	    capacity.</para>
-	      
+
 	  <para>Native capacity is 24GB when using 120m tapes.  This drive
 	    supports hardware data compression.</para>
-	      
+
 	  <para>Data transfer rate is 510kB/s (native).</para>
-	      
+
 	  <para>This drive is used in Hewlett-Packard's SureStore <ulink
 	      url="http://www.dmo.hp.com/tape/sst12000.htm">12000e</ulink>
 	    tape drive.</para>
-	      
+
 	  <para>The drive has two selectors on the rear panel.  The selector
 	    closer to the fan is SCSI id.  The other selector should be set to
 	    7.</para>
-	      
+
 	  <para>There are four internal switches.  These should be set: 1 ON;
 	    2 ON; 3 ON; 4 OFF.</para>
-	      
+
 	  <para>At present the kernel drivers do not automatically change
 	    tapes at the end of a volume.  This shell script can be used to
 	    change tapes:</para>
-	      
+
 	  <programlisting>#!/bin/sh
 PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH
 
@@ -2362,80 +2362,80 @@
 
 	<sect3 id="hw-storage-hp35450a">
 	  <title>Hewlett-Packard HP 35450A</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>HP
 	      HP35450A -A C620</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>Sequential-Access density code
 	      0x13</literal></para>
-	      
+
 	  <para>This is a DDS-1 tape drive.  DDS-1 is the original DAT tape
 	    format.</para>
-	      
+
 	  <para>Native capacity is 1.2GB.</para>
-	      
+
 	  <para>Data transfer rate is 160kB/s.</para>
-	  
+
 	  <para>Reported by: Mark Thompson
 	    <email>mark.a.thompson at pobox.com</email></para>
 	</sect3>
 
 	<sect3 id="hw-storage-hp35470a">
 	  <title>Hewlett-Packard HP 35470A</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>HP
 	      HP35470A 9 09</literal> <literal>type 1 removable SCSI
 	      2</literal></para>
-	      
+
 	  <para>This is a DDS-1 tape drive.  DDS-1 is the original DAT tape
 	    format.</para>
-	      
+
 	  <para>Native capacity is 2GB when using 90m tapes.</para>
-	      
+
 	  <para>Data transfer rate is 183kB/s.</para>
-	  
+
 	  <para>The same mechanism is used in Hewlett-Packard's SureStore
 	    <ulink url="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink>
 	    tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT
 	    drive, and HP C1536A DDS format DAT drive.</para>
-	      
+
 	  <para><emphasis>Warning:</emphasis> Quality control on these drives
 	    varies greatly.  One FreeBSD core-team member has returned 5 of
 	    these drives.  None lasted more than 9 months.</para>
-	      
+
 	  <para>Reported by: David Dawes
 	    <email>dawes at rf900.physics.usyd.edu.au</email> (9 09)</para>
-	      
+
 	</sect3>
 
 	<sect3 id="hw-storage-hp35480a">
 	  <title>Hewlett-Packard HP 35480A</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>HP
 	      HP35480A 1009</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>Sequential-Access density code
 	      0x13</literal>.</para>
-	      
+
 	  <para>This is a DDS-DC tape drive.  DDS-DC is DDS-1 with hardware
 	    data compression.  DDS-1 is the original DAT tape format.</para>
-	      
+
 	  <para>Native capacity is 2GB when using 90m tapes.  It cannot handle
 	    120m tapes.  This drive supports hardware data compression.
 	    Please refer to the section on <link
 	      linkend="hw-storage-hp1533a">HP C1533A</link> for the proper
 	    switch settings.</para>
-	      
+
 	  <para>Data transfer rate is 183kB/s.</para>
-	  
+
 	  <para>This drive is used in Hewlett-Packard's SureStore <ulink
 	      url="http://www.dmo.hp.com/tape/sst5000.htm">5000eU</ulink> and
 	    <ulink url="http://www.dmo.hp.com/tape/sst5000.htm">5000i</ulink>
 	    tape drives and C35480A DDS format DAT drive..</para>
-	      
+
 	  <para>This drive will occasionally hang during a tape eject
 	    operation (<command>mt offline</command>). Pressing the front
 	    panel button will eject the tape and bring the tape drive back to
 	    life.</para>
-	      
+
 	  <para>WARNING: HP 35480-03110 only.  On at least two occasions this
 	    tape drive when used with FreeBSD 2.1.0, an IBM Server 320 and an
 	    2940W SCSI controller resulted in all SCSI disk partitions being
@@ -2446,68 +2446,68 @@
 	<sect3 id="hw-storage-sdt5000">
 	  <title><ulink
 	      url="http://www.sel.sony.com/SEL/ccpg/storage/tape/t5000.html">Sony SDT-5000</ulink></title>
-	      
+
 	  <para>There are at least two significantly different models: one is
 	    a DDS-1 and the other DDS-2.  The DDS-1 version is
 	    <literal>SDT-5000 3.02</literal>.  The DDS-2 version is
 	    <literal>SONY SDT-5000 327M</literal>. The DDS-2 version has a 1MB
 	    cache.  This cache is able to keep the tape streaming in almost
 	    any circumstances.</para>
-	      
+
 	  <para>The boot message identifier for this drive is <literal>SONY
 	      SDT-5000 3.02</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>Sequential-Access density code
 	      0x13</literal></para>
-	      
+
 	  <para>Native capacity is 4GB when using 120m tapes.  This drive
 	    supports hardware data compression.</para>
-	      
+
 	  <para>Data transfer rate is depends upon the model or the drive. The
 	    rate is 630kB/s for the <literal>SONY SDT-5000 327M</literal>
 	    while compressing the data.  For the <literal>SONY SDT-5000
 	      3.02</literal>, the data transfer rate is 225kB/s.</para>
-	      
+
 	  <para>In order to get this drive to stream, set the blocksize to 512
 	    bytes (<command>mt blocksize 512</command>) reported by Kenneth
 	    Merry <email>ken at ulc199.residence.gatech.edu</email>.</para>
-	      
+
 	  <para><literal>SONY SDT-5000 327M</literal> information reported by
 	    Charles Henrich <email>henrich at msu.edu</email>.</para>
-	      
+
 	  <para>Reported by: &a.jmz;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-tandberg3600">
 	  <title>Tandberg TDC 3600</title>
-	  
+
 	  <para>The boot message identifier for this drive is
 	    <literal>TANDBERG TDC 3600 =08:</literal> <literal>type 1
 	      removable SCSI 2</literal></para>
-	      
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 150/250MB.</para>
-	  
+
 	  <para>This drive has quirks which are known and work around code is
 	    present in the SCSI tape device driver (&man.st.4;).
 	    Upgrading the firmware to XXX version will fix the quirks and
 	    provide SCSI 2 capabilities.</para>
-	      
+
 	  <para>Data transfer rate is 80kB/s.</para>
-	  
+
 	  <para>IBM and Emerald units will not work.  Replacing the firmware
 	    EPROM of these units will solve the problem.</para>
-	      
+
 	  <para>Reported by: &a.msmith;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-tandberg3620">
 	  <title>Tandberg TDC 3620</title>
-	  
+
 	  <para>This is very similar to the <link
 	      linkend="hw-storage-tandberg3600">Tandberg TDC 3600</link>
 	    drive.</para>
-	      
+
 	  <para>Reported by: &a.joerg;</para>
 	</sect3>
 
@@ -2517,56 +2517,56 @@
 	  <para>The boot message identifier for this drive is
 	    <literal>TANDBERG TDC 3800 =04Y</literal> <literal>Removable
 	      Sequential Access SCSI-2 device</literal></para>
-	      
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 525MB.</para>
-	  
+
 	  <para>Reported by: &a.jhs;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-tandberg4222">
 	  <title>Tandberg TDC 4222</title>
-	  
+
 	  <para>The boot message identifier for this drive is
 	    <literal>TANDBERG TDC 4222 =07</literal> <literal>type 1 removable
 	      SCSI 2</literal></para>
-	      
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 2.5GB.  The drive will read all cartridges
 	    from the 60 MB (DC600A) upwards, and write 150 MB (DC6150)
 	    upwards.  Hardware compression is optionally supported for the 2.5
 	    GB cartridges.</para>
-	      
+
 	  <para>This drives quirks are known and pre-compiled into the SCSI
 	    tape device driver (&man.st.4;) beginning with FreeBSD
 	    2.2-CURRENT.  For previous versions of FreeBSD, use
 	    <command>mt</command> to read one block from the tape, rewind the
 	    tape, and then execute the backup program (<command>mt fsr 1; mt
 	      rewind; dump ...</command>)</para>
-	      
+
 	  <para>Data transfer rate is 600kB/s (vendor claim with compression),
 	    350 KB/s can even be reached in start/stop mode. The rate
 	    decreases for smaller cartridges.</para>
-	  
+
 	  <para>Reported by: &a.joerg;</para>
 	</sect3>
 
 	<sect3 id="hw-storage-wangtek5525es">
 	  <title>Wangtek 5525ES</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>WANGTEK
 	      5525ES SCSI REV7 3R1</literal> <literal>type 1 removable SCSI
 	      1</literal> <literal>density code 0x11, 1024-byte
 	      blocks</literal></para>
-	      
+
 	  <para>This is a QIC tape drive.</para>
-	  
+
 	  <para>Native capacity is 525MB.</para>
-	  
+
 	  <para>Data transfer rate is 180kB/s.</para>
-	  
+
 	  <para>The drive reads 60, 120, 150, and 525MB tapes.  The drive will
 	    not write 60MB (DC600 cartridge) tapes.  In order to overwrite 120
 	    and 150 tapes reliably, first erase (<command>mt erase</command>)
@@ -2575,13 +2575,13 @@
 	    previous tracks is not overwritten, as a result the new data lies
 	    in a band surrounded on both sides by the previous data unless the
 	    tape have been erased.</para>
-	      
+
 	  <para>This drives quirks are known and pre-compiled into the SCSI
 	    tape device driver (&man.st.4;).</para>
-	  
+
 	  <para>Other firmware revisions that are known to work are:
 	    M75D</para>
-	  
+
 	  <para>Reported by: Marc van Kempen <email>marc at bowtie.nl</email>
 	    <literal>REV73R1</literal> Andrew Gordon
 	    <email>Andrew.Gordon at net-tel.co.uk</email>
@@ -2590,35 +2590,35 @@
 
 	<sect3 id="hw-storage-wangtek6200">
 	  <title>Wangtek 6200</title>
-	  
+
 	  <para>The boot message identifier for this drive is <literal>WANGTEK
 	      6200-HS 4B18</literal> <literal>type 1 removable SCSI
 	      2</literal> <literal>Sequential-Access density code
 	      0x13</literal></para>
-	  
+
 	  <para>This is a DDS-1 tape drive.</para>
-	  
+
 	  <para>Native capacity is 2GB using 90m tapes.</para>
-	  
+
 	  <para>Data transfer rate is 150kB/s.</para>
-	  
+
 	  <para>Reported by: Tony Kimball <email>alk at Think.COM</email></para>
 	</sect3>
       </sect2>
-      
+
       <sect2>
 	<title>* Problem drives</title>
 
 	<para></para>
       </sect2>
     </sect1>
-    
+
     <sect1>
       <title>CDROM drives</title>
-      
+
       <para><emphasis>Contributed by &a.obrien;.  23 November
 	      1997.</emphasis></para>
-      
+
       <para>Generally speaking those in <emphasis>The FreeBSD
 	Project</emphasis> prefer SCSI CDROM drives over IDE CDROM
 	drives.  However not all SCSI CDROM drives are equal.  Some
@@ -2628,7 +2628,7 @@
 	found displeasure with the 12x speed XM-5701TA as its volume
 	(when playing audio CDROMs) is not controllable by the various
 	audio player software.</para>
-	  
+
       <para>Another area where SCSI CDROM manufacturers are cutting corners is
 	adherence to the <link linkend="scsi-further-reading">SCSI
 	  specification</link>. Many SCSI CDROMs will respond to <link
Index: en_US.ISO8859-1/articles//vinum/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/vinum/article.sgml,v
retrieving revision 1.12
diff -u -r1.12 article.sgml
--- en_US.ISO8859-1/articles//vinum/article.sgml	25 Mar 2003 14:58:11 -0000	1.12
+++ en_US.ISO8859-1/articles//vinum/article.sgml	14 Jun 2003 12:38:51 -0000
@@ -544,7 +544,7 @@
 	performance disk server at a very reasonable cost.</para>
 
       <para>However, you can indeed get started with
-	<application>Vinum</application> very simply.  
+	<application>Vinum</application> very simply.
 	A minimum system can be as simple as
 	an old CPU (even a 486 is fine) and a pair of drives
 	that are 500 MB or more.  They need not be the same size or
@@ -586,7 +586,7 @@
       for the server against available resources and make design
       tradeoffs.
       We will plan the transition from no
-      <application>Vinum</application> to 
+      <application>Vinum</application> to
       <application>Vinum</application>
       on just one spindle, to <application>Vinum</application>
       on two spindles.</para>
@@ -1067,7 +1067,7 @@
 	      allocations as described above in <xref linkend=AssignSmall>.
 	      For this example on a 2 GB spindle, I will use
 	      200,000 blocks for root, 200,265 blocks for swap,
-	      1,000,000 blocks for <filename>/home</filename>, and 
+	      1,000,000 blocks for <filename>/home</filename>, and
 	      the rest of the spindle (2,724,408 blocks) for
 	      <filename>/usr</filename>.
 	      (<command>/stand/sysinstall</command>
@@ -1231,7 +1231,7 @@
 	  <step>
 	    <para>We now need to install new spindle partitioning for
 	      <devicename>/dev/ad0</devicename>.
-	      This requires that 
+	      This requires that
 	      <devicename>/dev/ad0s1b</devicename> not be in use for
 	      swapping so we have to reboot in single-user mode.</para>
 
@@ -1567,7 +1567,7 @@
 	    <application>Vinum</application>
 	    may automatically avoid failed hardware in a way that users
 	    do not notice.
-	    You must watch for such failures and get them repaired before a 
+	    You must watch for such failures and get them repaired before a
 	    second failure results in data loss.
 	    You may see
 	    <application>Vinum</application> noting damaged objects
@@ -1602,7 +1602,7 @@
     sd name hope.p0.s0 drive UpWindow plex hope.p0 len 0</programlisting>
 
 	  <note>
-	    <para>Specifying a length of <literal>0</literal> for 
+	    <para>Specifying a length of <literal>0</literal> for
 	      the <filename>hope.p0.s0</filename> subdisk
 	      asks <application>Vinum</application>
 	      to use whatever space is left available on the underlying
@@ -1664,7 +1664,7 @@
       For each scenario, there is a subsection on how to configure your
       server for degraded mode operation, how to recover from the failure,
       how to exit degraded mode, and how to simulate the failure.</para>
-      
+
     <tip>
       <para>Make a hard copy of these instructions and leave them inside the CPU
 	case, being careful not to interfere with ventilation.</para></tip>
@@ -1804,7 +1804,7 @@
 	<title>Simulation</title>
 
 	<para>This kind of failure can be simulated by shutting down to
-	  single-user mode and then booting as shown above in 
+	  single-user mode and then booting as shown above in
 	  <xref linkend=enter1>.</para>
       </section>
     </section>
@@ -1868,7 +1868,7 @@
 	<procedure>
 
 	  <para>We assume here that your server is up and running multi-user in
-	    degraded mode on just 
+	    degraded mode on just
 	    <devicename>/dev/ad0</devicename> and that you have
 	    a new spindle now on
 	    <devicename>/dev/ad2</devicename> ready to go.</para>
Index: en_US.ISO8859-1/articles//vm-design/article.sgml
===================================================================
RCS file: /u/cvs/cvs/doc/en_US.ISO8859-1/articles/vm-design/article.sgml,v
retrieving revision 1.11
diff -u -r1.11 article.sgml
--- en_US.ISO8859-1/articles//vm-design/article.sgml	3 Jul 2002 23:19:12 -0000	1.11
+++ en_US.ISO8859-1/articles//vm-design/article.sgml	14 Jun 2003 12:39:01 -0000
@@ -42,7 +42,7 @@
     </abstract>
 
     <legalnotice>
-      <para>This article was originally published in the January 2000 issue of 
+      <para>This article was originally published in the January 2000 issue of
 	<ulink url="http://www.daemonnews.org/">DaemonNews</ulink>.  This
 	version of the article may include updates from Matt and other authors
 	to reflect changes in FreeBSD's VM implementation.</para>
@@ -165,7 +165,7 @@
       <imageobject>
         <imagedata fileref="fig1" format="EPS">
       </imageobject>
-	
+
       <textobject>
 	<literallayout class="monospaced">+---------------+
 |       A       |
@@ -207,7 +207,7 @@
       <imageobject>
         <imagedata fileref="fig3" format="EPS">
       </imageobject>
-      
+
       <textobject>
 	<literallayout class="monospaced">+-------+-------+
 |   C1  |   C2  |
@@ -627,7 +627,7 @@
 	      cache queue counts and high active queue counts when doing a
 	      <command>systat -vm</command> command.</para>
 	  </blockquote>
-	  
+
 	  <para>How is the separation of clean and dirty (inactive) pages
 	    related to the situation where you see low cache queue counts and
 	    high active queue counts in <command>systat -vm</command>?  Do the
--- articles.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-doc mailing list