<!-- $Id: hw.sgml,v 1.66 1997-03-21 17:02:44 wosch Exp $ -->
<!-- The FreeBSD Documentation Project -->

<!--
<!DOCTYPE chapt PUBLIC "-//FreeBSD//DTD linuxdoc//EN"> -->
 
<chapt><heading>PC Hardware compatibility<label id="hw"></heading>

  <p>Issues of hardware compatibility are among the most
    troublesome in the computer industry today and FreeBSD is by
    no means immune to trouble.  In this respect, FreeBSD's
    advantage of being able to run on inexpensive commodity PC
    hardware is also its liability when it comes to support for
    the amazing variety of components on the market.  While it
    would be impossible to provide a exhaustive listing of
    hardware that FreeBSD supports, this section serves as a
    catalog of the device drivers included with FreeBSD and the
    hardware each drivers supports.  Where possible and
    appropriate, notes about specific products are included.

    As FreeBSD is a volunteer project without a funded testing
    department, we depend on you, the user, for much of the
    information contained in this catalog.  If you have direct
    experience of hardware that does or does not work with
    FreeBSD, please let us know by sending e-mail to the &a.doc;.
    Questions about supported hardware
    should be directed to the &a.questions (see
    <ref id="eresources:mail" name="Mailing Lists"> for more
    information).  When submitting information or asking a
    question, please remember to specify exactly what version of
    FreeBSD you are using and include as many details of your
    hardware as possible.

<sect><heading>Resources on the Internet</heading>
<p>The following links have proven useful in selecting hardware.
Though some of what you see won't necessarily be specific (or even
applicable) to FreeBSD, most of the hardware information out there
is OS independent.  Please check with the FreeBSD hardware guide
to make sure that your chosen configuration is supported before
making any purchases.</p>

    <p>
    <itemize>
	<item><htmlurl url="http://sysdoc.pair.com/"
	name="The Pentium Systems Hardware Performance Guide"></item>
    </itemize>

<sect><heading>Sample Configurations<label id="hw:configs"></heading>
<p>The following list of sample hardware configurations by no means
constitutes an endorsement of a given hardware vendor or product by
<em>The FreeBSD Project</em>.  This information is provided only as a public
service and merely catalogs some of the experiences that various individuals
have had with different hardware combinations.  Your mileage may vary.
Slippery when wet.  Beware of dog.

 <sect1><heading>Jordan's Picks</heading>
    <p>I have had fairly good luck building workstation and server
    configurations with the following components.  I can't guarantee that
    you will too, nor that any of the companies here will remain "best buys"
    forever.  I will try, when I can, to keep this list up-to-date but
    cannot obviously guarantee that it will be at any given time.

  <sect2><heading>Motherboards<label id="hw:mb"></heading>
    <p>The <htmlurl url="http://asustek.asus.com.tw/" name="ASUS">
    <htmlurl url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pi-p55tp4.txt"
     name="P55T2P4">
    motherboard appears to be a good choice for mid-to-high range Pentium
    server and workstation systems.  You might also wish to investigate ASUS's
    <htmlurl url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pvi-486sp3.txt"
    name="486SP3G"> offering if it's a 486-class motherboard you're looking
    for (Note:  These have become increasingly hard to get as ASUS apparently
    no longer manufactures them).

    Those wishing to build more fault-tolerant systems should also be sure to
    use Parity memory or, for truly 24/7 applications, ECC memory.  Note
    that ECC memory does involve a slight performance trade-off (which may
    or may not be noticable depending on your application) but buys you
    significantly increased fault-tolerance to memory errors.

    <p>At the higher end, the Intel/Venus Pro (<ref id="hw:mb:pci"
    name="VS440FX">) motherboard appears to work very well with FreeBSD,
    as does its accompanying 200Mhz P6 (Pentium Pro) CPU.  Recent price
    drops have dropped P6 systems into a very affordable price bracket,
    at least in the United States, and for serious server applications you
    may wish to look no further than the Pentium Pro.  My personal
    `make world' times dropped from 3 hours and 40 minutes with a P5/166
    to 1 hour and 22 minutes when I upgraded to a P6/200 machine - not
    a fair comparison, to be sure, but just to note that in terms of
    increased productivity, the P6/200 has definitely been worth the upgrade
    for me.

    NOTE: The Intel motherboards are designed to a different form-factor
    and hence require <em>an entirely different PC case</em>, the so-called
    "ATX" case design.  Consider this fact carefully if you're thinking of
    upgrading an existing system - all the commonly available ATX cases
    I've seen so far have been in the "midi-tower" class, with limited space
    for drives or other internal peripherals available.  On the plus side,
    most ATX cases appear to be of much higher quality than their typical PC
    counterparts.

    The only known interoperability problem with the
    <ref id="hw:mb:pci" name="VS440FX"> chipset (also known as ``Natoma'')
    is that the Matrox Meteor frame-grabber board will lock up your system
    if used in one of these motherboards.  Matrox blames Intel, Intel
    blames Matrox, all we know is that it definitely doesn't work.  That is
    the only card I've had any troubles with in my P6 system and the card
    works just fine in my older Triton chipset based motherboard.

  <sect2><heading>Disk Controllers</heading>
    <p>This one is a bit trickier, and while I used to recommend the
    <htmlurl url="http://www.buslogic.com" name="Buslogic"> controllers
    unilaterally for everything from ISA to PCI, now I tend to lean
    towards the <htmlurl url="http://www.adaptec.com" name="Adaptec">
    1542CF for ISA, Buslogic Bt747c for EISA and Adaptec 2940 for PCI.

    The NCR/Symbios cards for PCI have also worked well for me, though
    you need to make sure that your motherboard supports the BIOS-less
    model if you're using one of those (if your card has nothing which
    looks even vaguely like a ROM chip on it, you've probably got one
    which expects its BIOS to be on your motherboard).

    <p>If you should find that you need more than one SCSI controller in a
    PCI machine, you may wish to consider conserving your scarce PCI
    bus resources by buying the Adaptec 3940 card, which puts two SCSI
    controllers (and internal busses) in a single slot.

  <sect2><heading>Disk drives<label id="hw:disks"></heading>
    <p>In this particular game of Russian roulette, I'll make few specific
    recommendations except to say "SCSI over IDE whenever you can afford it."
    Even in small desktop configurations, SCSI often makes more sense since it
    allows you to easily migrate drives from server to desktop as falling drive
    prices make it economical to do so.  If you have more than one machine
    to administer then think of it not simply as storage, think of it as a
    food chain!

    <p>I do not currently see SCSI WIDE drives as a necessary expense unless
    you're putting together an NFS or NEWS server that will be doing a lot
    of multiuser disk I/O.  

  <sect2><heading>CDROM drives<label id="hw:cdrom"></heading>
    <p>My SCSI preferences extend to SCSI CDROM drives as well, and while
    the <htmlurl url="http://www.toshiba.com" name="Toshiba"> XM-3501B (also
    released in a caddy-less model called the XM-5401B) drive has always
    performed well for me, I'm now a great fan of the <htmlurl
    url="http://www.plextor.com" name="Plextor"> PX-12CS drive.  It's
    a 12 speed drive with excellent performance and reliability.

    <p>Generally speaking, most SCSI CDROM drives I've seen have been of
    pretty solid construction and you probably won't go wrong with an HP or
    NEC SCSI CDROM drive either.  SCSI CDROM prices also appear to have
    dropped considerably in the last few months and are now quite competitive
    with IDE CDROMs while remaining a technically superior solution.  I now see
    no reason whatsoever to settle for an IDE CDROM drive if given a choice
    between the two.


  <sect2><heading>CD Recordable (WORM) drives<label id="hw:worm"></heading>
    <p>At the time of this writing, FreeBSD supports 3 types of CDR drives
    (though I believe they all ultimately come from Phillips anyway):
    The Phillips CDD 522 (Acts like a Plasmon), the PLASMON RF4100 and
    the HP 4020i.  I myself use the HP 4020i for burning CDROMs (with
    2.2-current - it does not work with 2.1.5 or earlier releases of the
    SCSI code) and it works very well.  See <htmlurl
    url="file:/usr/share/examples/worm" name="/usr/share/examples/worm">
    on your 2.2 system for example scripts used to created ISO9660
    filesystem images (with RockRidge extensions) and burn them onto an
    HP4020i CDR.

  <sect2><heading>Tape drives<label id="hw:tape"></heading>
   <p>I've had pretty good luck with both
   <htmlurl url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html"
   name="8mm drives"> from <htmlurl url="http://www.exabyte.com"
   name="Exabyte"> and 
   <htmlurl url="http://www-dmo.external.hp.com:80/tape/_cpb0001.htm" 
   name="4mm (DAT)"> drives from <htmlurl url="http://www.hp.com" name="HP">.
   
   <p>For backup purposes, I'd have to give the higher recommendation to the
   Exabyte due to the more robust nature (and higher storage capacity) of
   8mm tape.

  <sect2><heading>Video Cards<label id="hw:video"></heading>
    <p>If you can also afford to buy a commercial X server for US&dollar;99
    from <htmlurl url="http://www.xig.com/"
    name="Xi Graphics, Inc. (formerly X Inside, Inc)"> then I can heartily
    recommend the <htmlurl url="http://www.matrox.com/" name="Matrox">
    <htmlurl url="http://www.matrox.com/mgaweb/brochure.htm"
    name="Millenium"> card.  Note that support for this card is also
    getting better with the <htmlurl url="http://www.xfree86.org"
    name="XFree86"> server, which is available free of charge, though it's
    still a fair bit slower than the XiG product at this time.  I'm told that
    support is also a fair bit better in the 3.2A release of XFree86, but
    it's not yet available for general release.

    You also certainly can't go wrong with one of
    <htmlurl url="http://www.nine.com/" name="Number 9's"> cards -
    their S3 Vision 868 and 968 based cards (the 9FX series) also being
    quite fast and very well supported by XFree86's S3 server.

  <sect2><heading>Monitors<label id="hw:monitors"></heading>
    <p>I have had very good luck with the <htmlurl url="http://cons3.sel.sony.com/SEL/ccpg/display/ms17se2.html"
    name="Sony Multiscan 17SE monitors">, as have I with 
    the Viewsonic offering in the same (trinitron) tube.  For larger than
    17", all I can recommend at the time of this writing is to not spend
    any less than U.S. &dollar;2,500 for a 21" monitor if that's what you really
    need.  There are good monitors available in the >=20" range and there
    are also cheap monitors in the >=20" range.  Unfortunately, very few are
    both cheap and good!

  <sect2><heading>Networking<label id="hw:networking"></heading>
    <p>I can recommend the <htmlurl url="http://www.smc.com/" name="SMC">
    Ultra 16 controller for any ISA application and the SMC EtherPower
    or Compex ENET32 cards for any serious PCI based networking.  Both of
    the PCI cards are based around DEC's DC21041 Ethernet controller
    chip and other cards using it, such as the Zynx ZX342 or DEC DE435,
    will generally work as well.  For 100Mbit networking, either the
    SMC SMC9332DST 10/100MB or Intel EtherExpress Pro/100B cards will do
    a fine job.

    If what you're looking for is, on the other hand, the cheapest possible
    solution which will still work reasonably well, then almost any NE2000
    clone is a good choice.


   <sect2><heading>Serial<label id="hw:serial"></heading>
    <p>If you're looking for high-speed serial networking solutions, then
    <htmlurl url="http://www.dgii.com/" name="Digi International">
    makes the <htmlurl url="http://www.dgii.com/prodprofiles/profiles-prices/digiprofiles/digispecs/sync570.html" name="SYNC/570"> series, with drivers now in
    FreeBSD-current. <htmlurl url="http://www.etinc.com"
    name="Emerging Technologies"> also manufactures a board with T1/E1
    capabilities, using software they provide.  I have no direct experience
    using either product, however.

    <p>Multiport card options are somewhat more numerous, though it has to be
    said that FreeBSD's support for <htmlurl url="http://www.cyclades.com/"
    name="Cyclades">'s products is probably the tightest, primarily as a result
    of that company's commitment to making sure that we are adequately supplied
    with evaluation boards and technical specs.  I've heard that the Cyclom-16Ye
    offers the best price/performance, though I've not checked the prices lately.
    Other multiport cards I've heard good things about are the BOCA and AST
    cards, and <htmlurl url="http://www.stallion.com/" name="Stallion
    Technologies"> apparently offers an unofficial driver for their 
    cards at <htmlurl url="ftp://ftp.stallion.com/drivers/unsupported/freebsd/stalbsd-0.0.4.tar.gz" name="this"> location.

   <sect2><heading>Audio<label id="hw:audio"></heading>
    <p>I currently use the <htmlurl url="http://www.gravis.com/" name="Gravis">
    Ultrasound MAX due to its high sound quality and full-duplex audio
    capabilities (dual DMA channels).  Support for Windows NT and OS/2 is
    fairly anemic, however, so I'm not sure that I can recommend it as an
    all-around card for a machine that will be running both FreeBSD and NT
    or OS/2.  In such a scenario, I might recommend the <htmlurl url="http://www.creaf.com/" name="Creative Labs"> AWE32 instead.

   <sect2><heading>Video<label id="hw:vgrabbers"></heading>
   <p>For video capture, there's really only once choice - the
   <htmlurl url="http://www.matrox.com/" name="Matrox">
   <htmlurl url="http://www.matrox.com/imgweb/meteor.htm" name="Meteor">
   card.  FreeBSD also supports the older video spigot card from
   Creative Labs, but those are getting somewhat difficult to find
   and the Meteor is a more current generation frame-grabber with
   a higher-speed PCI interface.  Note that this card <em>will not work</em>
   with motherboards based on the VS440FX chipset!  See the
   <ref id="hw:mb" name="motherboard reference"> section for details.

<sect><heading>Core/Processing<label id="hw:core"></heading>

<sect1><heading>Motherboards, busses, and chipsets</heading>
  <sect2><heading>* ISA</heading>
  <sect2><heading>* EISA</heading>
  <sect2><heading>* VLB</heading>
  <sect2><heading>PCI<label id="hw:mb:pci"></heading>
	  <p><em>Contributed by &a.rgrimes;.<newline>25 April 1995.</em></p>
	  <p><em>Continuing updates by &a.jkh;.</em><newline>Last update on
	  <em>26 August 1996.</em></p>
	  <p>Of the Intel PCI chip sets, the following list describes
	    various types of known-brokenness and the degree of
            breakage, listed from worst to best.
	    </p>

	  <p><descrip>

	      <tag>Mercury:</tag> Cache coherency problems,
		especially if there are ISA bus masters behind
		the ISA to PCI bridge chip.  Hardware flaw, only
		known work around is to turn the cache
		off.

	      <tag>Saturn-I <em>(ie, 82424ZX at rev 0, 1 or 2)</em>:</tag>
		Write back cache coherency
		problems.  Hardware flaw, only known work around
		is to set the external cache to write-through
		mode.  Upgrade to Saturn-II.

	      <tag>Saturn-II <em>(ie, 82424ZX at rev 3 or 4)</em>:</tag>
                Works fine, but many MB
		manufactures leave out the external dirty bit
		SRAM needed for write back operation.  Work
		arounds are either run it in write through mode,
		or get the dirty bit SRAM installed.  (I have
		these for the ASUS PCI/I-486SP3G rev 1.6 and
		later boards).

	      <tag>Neptune:</tag> Can not run more than 2 bus
		master devices.  Admitted Intel design flaw.
		Workarounds include do not run more than 2 bus
		masters, special hardware design to replace the
		PCI bus arbiter (appears on Intel Altair board
		and several other Intel server group MB's).  And
		of course Intel's official answer, move to the
		Triton chip set, we ``fixed it there''.

	      <tag>Triton:</tag> No known cache coherency or bus
		master problems, chip set does not implement
		parity checking.  Workaround for parity issue.
		Use Triton-II based motherboards if you have the choice.

	      <tag>Triton-II:</tag> All reports on motherboards using
		this chipset have been favorable so far.  No known
		problems.

	      <tag>Orion:</tag> Early versions of this chipset suffered from
	 	a PCI write-posting bug which can cause noticeable performance
		degradation in applications where large amounts of PCI bus
		traffic is involved.  B0 stepping or later revisions of the
		chipset fixed this problem.

	      <tag><htmlurl
	      url="http://www-cs.intel.com/oem_developer/motherbd/vs_index.htm" 
	      name="VS440FX">:</tag>This <htmlurl
	      url="http://www.intel.com/procs/ppro/intro/index.htm"
	      name="Pentium Pro"> support chipset seems to work well,
	      and does not suffer from any of the early Orion chipset
	      problems.  It also supports a wider variety of memory,
	      including ECC and parity.  The only known problem with it
	      is that the Matrox Meteor frame grabber card doesn't like it.
	    </descrip>
	  </p>

<sect1><heading>CPUs/FPUs</heading>
  <sect2><heading>* Pentium Pro class</heading>
  <sect2><heading>Pentium class</heading>
     <sect3><heading>Clock speeds</heading>
     <p><em>Contributed by &a.rgrimes;.<newline>1 October 1996.</em></p>
       <p>Pentium class machines use different clock speeds for the various
         parts of the system.  These being the speed of the CPU, external
	 memory bus, and the PCI bus.  It is not always true that a "faster"
	 processor will make a system faster than a "slower" one, due to
	 the various clock speeds used.
	 Below is a table showing the differences:
       <p>
       <tscreen><verb>
         Rated External Clock  External to     PCI Bus
          CPU  and Memory Bus  Internal Clock  Clock
          MHZ  MHZ**           Multiplier      MHZ
        
	  60   60              1.0             30
	  66   66              1.0             33
          75   50              1.5             25
          90   60              1.5             30
          100  50*             2               25
          100  66              1.5             33
          120  60              2               30
          133  66              2               33
          150  60              2.5             30
          166  66              2.5             33
          180  60              3               30
          200  66              3               33

	 *  The Pentium 100 can be run at either 50MHz external clock with
	    a multiplier of 2 or at 66MHz and a multiplier of 1.5.
	 ** 66 Mhz may actually be 66.667 MHz, but don't assume so.
       </verb></tscreen>
       <p>As can be seen the best parts to be using are the 100, 133, 166
         and 200, with the exception that at a mulitplier of 3 the CPU
         starves for memory.
  <sect2><heading>* 486 class</heading>
  <sect2><heading>* 386 class</heading>
  <sect2><heading>286 class</heading>
    <p>Sorry, FreeBSD does not run on 80286 machines.  It is nearly
      impossible to run today's large full-featured UNIXes on such
      hardware.

<sect1><heading>* Memory</heading>
  <p>The mininum amount of memory you must have to install FreeBSD is 5 MB.
    Once your system is up and running you can <ref id="kernelconfig:building"
    name="build a custom kernel"> that will use less memory.
    If you use the boot4.flp you can get away with having only 4 MB.

<sect1><heading>* BIOS</heading>

<sect><heading>Input/Output Devices<label id="hw:io"></heading>

<sect1><heading>* Video cards</heading>
<sect1><heading>* Sound cards</heading>
<sect1><heading>Serial ports and multiport cards</heading>

	&uart;
	&sio;
	&cy;

<sect1><heading>* Parallel ports</heading>
<sect1><heading>* Modems</heading>
<sect1><heading>* Network cards</heading>
<sect1><heading>* Keyboards</heading>
<sect1><heading>* Mice</heading>
<sect1><heading>* Other</heading>

<sect><heading>Storage Devices<label id="hw:storage"></heading>
&esdi;
&scsi;

<sect1><heading>* Disk/tape controllers
	<label id="hw:storage:controllers"></heading>
  <sect2><heading>* SCSI</heading>
  <sect2><heading>* IDE</heading>
  <sect2><heading>* Floppy</heading>

<sect1><heading>* Hard drives</heading>
<sect1><heading> Tape drives</heading>
	  <p><em>Contributed by &a.jmb;.<newline>2 July 1996.</em></p>
  <sect2><heading> General tape access commands</heading>
	<p><tt>mt(1)</tt> provides generic access to the tape
drives.  Some of the more common commands are <tt>rewind</tt>,
<tt>erase</tt>, and <tt>status</tt>.  See the <tt>mt(1)</tt>
manual page for a detailed description.

  <sect2><heading> Controller Interfaces</heading>
	<p>There are several different interfaces that support
tape drives.  The interfaces are SCSI, IDE, Floppy and Parallel
Port.  A wide variety of tape drives are available for these
interfaces.  Controllers are discussed in
	 <ref id="hw:storage:controllers" name="Disk/tape controllers">

  <sect2><heading> SCSI drives</heading>
       <p>The <tt>st(4)</tt> driver provides support for 8mm
	(Exabyte), 4mm (DAT: Digital Audio Tape), QIC (Quarter-Inch
	Cartridge), DLT (Digital Linear Tape), QIC Minicartridge
	and 9-track (remember the big reels that you see spinning
	in Hollywood computer rooms) tape drives. See the
	<tt>st(4)</tt> manual page for a detailed description. 

	<p>The drives listed below are currently being used by
members of the FreeBSD community.  They are not the only drives
that will work with FreeBSD.  They just happen to be the ones
that we use.

     <sect3><heading> 4mm (DAT: Digital Audio Tape)</heading>
	<p><ref id="hw:storage:python" name="Archive Python"
	<p><ref id="hw:storage:hp1533a" name="HP C1533A">
	<p><ref id="hw:storage:hp1534a" name="HP C1534A">
	<p><ref id="hw:storage:hp35450a" name="HP 35450A">
	<p><ref id="hw:storage:hp35470a" name="HP 35470A">
	<p><ref id="hw:storage:hp35480a" name="HP 35480A">
	<p><ref id="hw:storage:sdt5000"  name="SDT-5000">
	<p><ref id="hw:storage:wangtek6200" name="Wangtek 6200"

     <sect3><heading> 8mm (Exabyte)</heading>
	<p><ref id="hw:storage:exb8200" name="EXB-8200">
	<p><ref id="hw:storage:exb8500" name="EXB-8500">
	<p><ref id="hw:storage:exb8505" name="EXB-8505">

     <sect3><heading> QIC (Quarter-Inch Cartridge)</heading>
	<p><ref id="hw:storage:anaconda" name="Archive Ananconda 2750"
	<p><ref id="hw:storage:viper60" name="Archive Viper 60"
	<p><ref id="hw:storage:viper150" name="Archive Viper 150"
	<p><ref id="hw:storage:viper2525" name="Archive Viper 2525"
	<p><ref id="hw:storage:tandberg3600" name="Tandberg TDC 3600"
	<p><ref id="hw:storage:tandberg3620" name="Tandberg TDC 3620"
	<p><ref id="hw:storage:tandberg4222" name="Tandberg TDC 4222"
	<p><ref id="hw:storage:wangtek5525es" name="Wangtek 5525ES"
     <sect3><heading> DLT (Digital Linear Tape)</heading>
	<p><ref id="hw:storage:dectz87" name="Digital TZ87"
     <sect3><heading> Mini-Cartridge</heading>
	<p><ref id="hw:storage:ctms3200" name="Conner CTMS 3200"
	<p><ref id="hw:storage:exb2501" name="Exabyte 2501"
     <sect3><heading> Autoloaders/Changers</heading>
	<p><ref id="hw:storage:hp1553a" name="Hewlett-Packard HP
C1553A Autoloading DDS2">
	
  <sect2><heading>* IDE drives</heading>
  <sect2><heading> Floppy drives</heading>
	<p><ref id="hw:storage:conner420r" name="Conner 420R"
  <sect2><heading>* Parallel port drives</heading>
  <sect2><heading> Detailed Information </heading>

	<sect3><heading><label id="hw:storage:anaconda">
Archive Ananconda 2750</heading>
	<p>The boot message identifier for this drive is "ARCHIVE
ANCDA 2750 28077 -003 type 1 removable SCSI 2"
	<p>This is a QIC tape drive.
	<p>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.
	<p>Data transfer rate is 350kB/s using <tt>dump(8)</tt>.
Rates of 530kB/s have been reported when using <ref
id="hw:storage:amanda" name="Amanda">
	<p>Production of this drive has been discontinued.
	<p>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.
	<p>Two kernel code changes are required to use this
drive.  This drive will not work as delivered.
	<p>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, "locks" the SCSI bus during some
tape operations, including: fsf, rewind, and rewoffl.
	<p>If you are using the NCR SCSI controllers, patch the
file /usr/src/sys/pci/ncr.c (as shown below).  Build and install
a new kernel.

<tscreen><verb>
*** 4831,4835 ****
                };
  
!               if (np->latetime>4) {
                        /*
                        **      Although we tried to wake it up,
--- 4831,4836 ----
                };
  
!               if (np->latetime>1200) {
                        /*
                        **      Although we tried to wake it up,

</verb></tscreen>
	<p>Reported by: &a.jmb;


	<sect3><heading><label id="hw:storage:python">
Archive Python</heading>
	<p>The boot message identifier for this drive is "ARCHIVE
Python 28454-XXX4ASB" "type 1 removable SCSI 2" "density code
0x8c, 512-byte blocks"
	<p>This is a DDS-1 tape drive.
	<p>Native capacity is 2.5GB on 90m tapes.
	<p>Data transfer rate is XXX.
	<p>This drive was repackaged by Sun Microsystems as model 411.
	<p>Reported by: Bob Bishop rb@gid.co.uk

	<sect3><heading><label id="hw:storage:viper60">
Archive Viper 60</heading>
	<p>The boot message identifier for this drive is "ARCHIVE
VIPER 60 21116 -007" "type 1 removable SCSI 1"
	<p>This is a QIC tape drive.
	<p>Native capacity is 60MB.
	<p>Data transfer rate is XXX.
	<p>Production of this drive has been discontinued.
	<p>Reported by: Philippe Regnauld regnauld@hsc.fr

	<sect3><heading><label id="hw:storage:viper150">
Archive Viper 150</heading>
	<p>The boot message identifier for this drive is "ARCHIVE
VIPER 150 21531 -004" "Archive Viper 150 is a known rogue" "type
1 removable SCSI 1".  A multitude of firmware revisions exist
for this drive. Your drive may report different numbers (e.g
"21247 -005".
	<p>This is a QIC tape drive.
	<p>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.
	<p>Data transfer rate is 100kB/s
	<p>This drive reads and writes DC6150 (6150MB) and DC6250
(250MB) tapes.
	<p>This drives quirks are known and pre-compiled into the
scsi tape device driver (<tt>st(4)</tt>).
	<p>Under FreeBSD 2.2-current, use <tt>mt blocksize
512</tt> 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.
	<p>Production of this drive has been discontinued.
	<p>Reported by: Pedro A M Vazquez vazquez@IQM.Unicamp.BR
	<p>             Mike Smith msmith@atrad.adelaide.edu.au

	<sect3><heading><label id="hw:storage:viper2525">
Archive Viper 2525</heading>
	<p>The boot message identifier for this drive is "ARCHIVE
VIPER 2525 25462 -011" "type 1 removable SCSI 1"
	<p>This is a QIC tape drive.
	<p>Native capacity is 525MB.
	<p>Data transfer rate is 180kB/s at 90 inches/sec.
	<p>The drive reads QIC-525, QIC-150, QIC-120 and QIC-24 tapes.
Writes QIC-525, QIC-150, and QIC-120.
	<p>Firmware revisions prior to "25462 -011" are bug
ridden and will not function properly.
	<p>Production of this drive has been discontinued.
	<p>Reported by: &a.hm;

	<sect3><heading><label id="hw:storage:conner420r">
Conner 420R</heading>
	<p>The boot message identifier for this drive is "Conner tape".
	<p>This is a floppy controller, minicartridge tape drive.
	<p>Native capacity is XXXX
	<p>Data transfer rate is XXX
	<p>The drive uses QIC-80 tape cartridges.
	<p>Reported by: Mark Hannon mark@seeware.DIALix.oz.au

	<sect3><heading><label id="hw:storage:ctms3200">
Conner CTMS 3200</heading>
	<p>The boot message identifier for this drive is "CONNER
CTMS  3200 7.00" "type 1 removable SCSI 2".
	<p>This is a minicartridge tape drive.
	<p>Native capacity is XXXX
	<p>Data transfer rate is XXX
	<p>The drive uses QIC-3080 tape cartridges.
	<p>Reported by: Thomas S. Traylor tst@titan.cs.mci.com

	<sect3><heading><label id="hw:storage:dectz87">
	<htmlurl
url="http://www.digital.com/info/Customer-Update/931206004.txt.html"
name="DEC TZ87"></heading>
	<p>The boot message identifier for this drive is "DEC
TZ87 (C) DEC 9206" "type 1 removable SCSI 2" "density code 0x19"
	<p>This is a DLT tape drive.
	<p>Native capacity is 10GB.
	<p>This drive supports hardware data compression.
	<p>Data transfer rate is 1.2MB/s.
	<p>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.
	<p>Reported by: &a.wilko;

	<sect3><heading><label id="hw:storage:exb2501">
	<htmlurl
url="http://www.Exabyte.COM:80/Products/Minicartridge/2501/Rfeatures.html"
name="Exabyte EXB-2501"></heading>
	<p>The boot message identifier for this drive is "EXABYTE
EXB-2501"
	<p>This is a mini-cartridge tape drive.
	<p>Native capacity is 1GB when using MC3000XL minicartridges.
	<p>Data transfer rate is XXX
	<p>This drive can read and write DC2300 (550MB), DC2750
(750MB), MC3000 (750MB), and MC3000XL (1GB) minicartridges.
	<p>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

	<verb>mt -f /dev/st0ctl.0 blocksize 1024</verb>

Before using a minicartridge for the first time, the minicartridge
must be formated. FreeBSD 2.1.0-RELEASE and earlier:

	<verb>/sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0"</verb>

(Alternatively, fetch a copy of the <tt>scsiformat</tt> shell script
from FreeBSD 2.1.5/2.2.) FreeBSD 2.1.5 and later:

	<verb>/sbin/scsiformat -q -w /dev/rst0.ctl</verb>

	<p>Right now, this drive cannot really be recommended for FreeBSD.
	<p>Reported by: Bob Beaulieu ez@eztravel.com

	<sect3><heading><label id="hw:storage:exb8200"> Exabyte
EXB-8200</heading>
	<p>The boot message identifier for this drive is "EXABYTE
EXB-8200 252X" "type 1 removable SCSI 1"
	<p>This is an 8mm tape drive.
	<p>Native capacity is 2.3GB.  
	<p>Data transfer rate is 270kB/s.
	<p>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). 
	<p>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.
	<p>Production of this drive has been discontinued.
	<p>Reported by: Mike Smith msmith@atrad.adelaide.edu.au

	<sect3><heading><label id="hw:storage:exb8500">
Exabyte EXB-8500</heading>
	<p>The boot message identifier for this drive is "EXABYTE
EXB-8500-85Qanx0 0415" "type 1 removable SCSI 2"
	<p>This is an 8mm tape drive.
	<p>Native capacity is 5GB.  
	<p>Data transfer rate is 300kB/s.
	<p>Reported by: Greg Lehey grog@lemis.de

	<sect3><heading><label id="hw:storage:exb8505">
	<htmlurl
url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html"
name="Exabyte EXB-8505"></Heading>
	<p>The boot message identifier for this drive is "EXABYTE
EXB-85058SQANXR1 05B0" "type 1 removable SCSI 2"
	<p>This is an 8mm tape drive which supports compression, and is
              upward compatible with the EXB-5200 and EXB-8500.
	<p>Native capacity is 5GB.  
	<p>The drive supports hardware data compression.
	<p>Data transfer rate is 300kB/s.
	<p>Reported by: Glen Foster gfoster@gfoster.com

	<sect3><heading><label id="hw:storage:hp1533a">
Hewlett-Packard HP C1533A</heading>
	<p>The boot message identifier for this drive is "HP
C1533A 9503" "type 1 removable SCSI 2".
	<p>This is a DDS-2 tape drive.  DDS-2 means hardware data
compression and narrower tracks for increased data capacity.
	<p>Native capacity is 4GB when using 120m tapes.  This drive
supports hardware data compression.
	<p>Data transfer rate is 510kB/s.
	<p>This drive is used in Hewlett-Packard's SureStore
6000eU and 6000i tape drives and C1533A DDS-2 DAT drive.
	<p>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.
<tscreen><verb>
switch	1	2	Result
	ON	ON	Compression enabled at power-on, with host control
	ON	OFF	Compression enabled at power-on, no host
control
	OFF	ON	Compression disabled at power-on; the
host is allowed to control compression
	OFF	OFF	Compression disabled at power-on, no host
control
</verb></tscreen>
	<p>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.
	<p><em>Warning:</em> Quality control on these drives
varies greatly.  One FreeBSD core-team member has returned 2 of
these drives.  Neither lasted more than 5 months.
	<p>Reported by: &a.se;

	<sect3><heading><label id="hw:storage:hp1534a">
Hewlett-Packard HP 1534A</heading>
	<p>The boot message identifier for this drive is "HP
HP35470A T503" type 1 removable SCSI 2" "Sequential-Access
density code 0x13, variable blocks".
	<p>This is a DDS-1 tape drive.  DDS-1 is the original DAT
tape format.
	<p>Native capacity is 2GB when using 90m tapes.
	<p>Data transfer rate is 183kB/s.
	<p>The same mechanism is used in Hewlett-Packard's
SureStore <htmlurl url="http://www.dmo.hp.com/tape/sst2000.htm"
name="2000i"> tape drive, C35470A DDS format DAT drive, C1534A DDS
format DAT drive and HP C1536A DDS format DAT drive.
	<p>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 read/write operations.  The amber one indicates warnings:
slow flash when cleaning is required or tape is nearing the end
of its useful life, steady indicates an hard fault.  (factory
service required?)
	<p>Reported by Gary Crutcher gcrutchr@nightflight.com

	<sect3><heading><label id="hw:storage:hp1553a">
Hewlett-Packard HP C1553A Autoloading DDS2</heading>
	<p>The boot message identifier for this drive is "".
	<p>This is a DDS-2 tape drive.  DDS-2 means hardware data
compression and narrower tracks for increased data capacity.
	<p>Native capacity is 24GB when using 120m tapes.  This
drive supports hardware data compression.
	<p>Data transfer rate is 510kB/s (native).
	<p>This drive is used in Hewlett-Packard's SureStore
<htmlurl url="http://www.dmo.hp.com/tape/sst12000.htm"
name="12000e"> tape drive.
	<p>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.
	<p>There are four internal switches.  These should be
set: 1 ON; 2 ON; 3 ON; 4 OFF.
	<p>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:

<tscreen><verb>
#!/bin/sh
PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH

usage()
{
      echo "Usage: dds_changer [123456ne] raw-device-name
      echo "1..6 = Select cartridge"
      echo "next cartridge"
      echo "eject magazine"
      exit 2
}

if [ $# -ne 2 ] ; then
    usage
fi

cdb3=0
cdb4=0
cdb5=0

case $1 in
     [123456])
       cdb3=$1
       cdb4=1
       ;;
     n)
       ;;
     e)
       cdb5=0x80
       ;;
     ?)
       usage
       ;;
esac

scsi -f $2 -s 100 -c "1b 0 0 $cdb3 $cdb4 $cdb5"
</verb></tscreen>

	<sect3><heading><label id="hw:storage:hp35450a">
Hewlett-Packard HP 35450A</heading>
	<p>The boot message identifier for this drive is "HP
HP35450A -A C620" "type 1 removable SCSI 2" "Sequential-Access
density code 0x13"
	<p>This is a DDS-1 tape drive.  DDS-1 is the original DAT
tape format.
	<p>Native capacity is 1.2GB.
	<p>Data transfer rate is 160kB/s.
	<p>Reported by: mark thompson mark.a.thompson@pobox.com

	<sect3><heading><label id="hw:storage:hp35470a">
Hewlett-Packard HP 35470A</heading>
	<p>The boot message identifier for this drive is "HP
HP35470A 9 09" type 1 removable SCSI 2"
	<p>This is a DDS-1 tape drive.  DDS-1 is the original DAT
tape format.
	<p>Native capacity is 2GB when using 90m tapes.
	<p>Data transfer rate is 183kB/s.
	<p>The same mechanism is used in Hewlett-Packard's
SureStore <htmlurl url="http://www.dmo.hp.com/tape/sst2000.htm"
name="2000i"> tape drive, C35470A DDS format DAT drive, C1534A
DDS format DAT drive, and HP C1536A DDS format DAT drive.
	<p><em>Warning:</em> Quality control on these drives
varies greatly.  One FreeBSD core-team member has returned 5 of
these drives.  None lasted more than 9 months.
	<p>Reported by: David Dawes dawes@rf900.physics.usyd.edu.au (9 09)

	<Sect3><heading><label id="hw:storage:hp35480a">
Hewlett-Packard HP 35480A</heading>
	<p>The boot message identifier for this drive is "HP
HP35480A 1009" "type 1 removable SCSI 2" "Sequential-Access
density code 0x13".
	<p>This is a DDS-DC tape drive.  DDS-DC is DDS-1 with
hardware data compression.  DDS-1 is the original DAT tape
format.
	<p>Native capacity is 2GB when using 90m tapes.  This
drive supports hardware data compression
	<p>Data transfer rate is 183kB/s.
	<p>This drive is used in Hewlett-Packard's SureStore
<htmlurl url="http://www.dmo.hp.com/tape/sst5000.htm" name=
"5000eU"> and <htmlurl
url="http://www.dmo.hp.com/tape/sst5000.htm" name="5000i"> tape
drives and C35480A DDS format DAT drive..
	<p>This drive will occasionally hang during a tape eject
operation (<tt>mt offline</tt>).  Pressing the front panel button
will eject the tape and bring the tape drive back to life.
	<p>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 lost.  The problem has not be analyzed or
resolved at this time.

	<sect3><heading><label id="hw:storage:sdt5000">
	<htmlurl
url="http://www.sel.sony.com/SEL/ccpg/storage/tape/t5000.html"
name="Sony SDT-5000"</heading>
	<p>There are at least two significantly different models: one is
a DDS-1 and the other DDS-2.  The DDS-1 version is "SDT-5000 3.02".  The
DDS-2 version is "SONY SDT-5000 327M".  The DDS-2 version has a
1MB cache.  This cache is able to keep the tape streaming in almost any
circumstances. 
	<p>The boot message identifier for this drive is "SONY
SDT-5000 3.02" "type 1 removable SCSI 2" "Sequential-Access
density code 0x13"
	<p>Native capacity is 4GB when using 120m tapes.  This
drive supports hardware data compression.
	<p>Data transfer rate is depends upon the model or
	the drive.  The rate is 630kB/s for the "SONY SDT-5000 327M"
	while compressing the data.  For the "SONY SDT-5000 3.02", the
	data transfer rate is 225kB/s.
	<p>In order to get this drive to stream, set the
blocksize to 512 bytes (<tt>mt blocksize 512</tt>) reported by
Kenneth Merry ken@ulc199.residence.gatech.edu"
	<p>"SONY SDT-5000 327M" information reported by Charles Henrich
	henrich@msu.edu
	<p>Reported by: &a.jmz;

	<sect3><heading><label id="hw:storage:tandberg3600">
Tandberg TDC 3600</heading>
	<p>The boot message identifier for this drive is
"TANDBERG  TDC 3600 =08:" "type 1 removable SCSI 2"
	<p>This is a QIC tape drive.
	<p>Native capacity is 150/250MB.
	<p>This drive has quirks which are known and work around
code is present in the scsi tape device driver (<tt>st(4)</tt>).
Upgrading the firmware to XXX version will fix the quirks and
provide SCSI 2 capabilities.
	<p>Data transfer rate is 80kB/s.
	<p>IBM and Emerald units will not work.  Replacing the
firmware EPROM of these units will solve the problem.
	<p>Reported by: Michael Smith msmith@atrad.adelaide.edu.au

	<sect3><heading><label id="hw:storage:tandberg3620">
Tandberg TDC 3620</heading>
	<p>This is very similar to the <ref
	 id="hw:storage:tandberg3600" name="Tandberg TDC 3600"> drive.
	<p>Reported by: &a.joerg;

	<sect3><heading><label id="hw:storage:tandberg4222">
Tandberg TDC 4222</heading>
	<p>The boot message identifier for this drive is
"TANDBERG  TDC 4222 =07" "type 1 removable SCSI 2"
	<p>This is a QIC tape drive.
	<p>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.
	<p>This drives quirks are known and pre-compiled into the
scsi tape device driver (<tt>st(4)</tt>) beginning with FreeBSD
2.2-current.  For previous versions of FreeBSD, use <tt>mt</tt>
to read one block from the tape, rewind the tape, and then
execute the backup program (<tt>mt fsr 1; mt rewind; dump ...</tt>)
	<p>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.
	<p>Reported by: &a.joerg;

	<sect3><heading><label id="hw:storage:wangtek5525es">
Wangtek 5525ES</heading>
	<p>The boot message identifier for this drive is "WANGTEK
5525ES SCSI REV7 3R1" "type 1 removable SCSI 1" "density code 0x11, 1024-byte
blocks"
	<p>This is a QIC tape drive.
	<p>Native capacity is 525MB.
	<p>Data transfer rate is 180kB/s.
	<p>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 (<tt>mt
erase</tt>) the tape.  120 and 150 tapes used a wider track
(fewer tracks per tape) than 525MB tapes. The "extra" width of
the 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.
	<p>This drives quirks are known and pre-compiled into the
scsi tape device driver (<tt>st(4)</tt>).
	<p>Other firmware revisions that are known to work are: M75D
	<p>Reported by: Marc van Kempen marc@bowtie.nl  "REV73R1"
                        Andrew Gordon Andrew.Gordon@net-tel.co.uk "M75D"

	<sect3><heading><label id="hw:storage:wangtek6200">
Wangtek 6200</heading>
	<p>The boot message identifier for this drive is "WANGTEK
6200-HS 4B18" "type 1 removable SCSI 2" "Sequential-Access density code 0x13"
	<p>This is a DDS-1 tape drive.
	<p>Native capacity is 2GB using 90m tapes.
	<p>Data transfer rate is 150kB/s.
	<p>Reported by: Tony Kimball alk@Think.COM

  <sect2><heading>* Problem drives</heading>

<sect1><heading>* CD-ROM drives</heading>
<sect1><heading>* Other</heading>

<sect1><heading>* Adding and reconfiguring disks</heading>
<sect1><heading> Tapes and backups<label id="hw:storage:tapebackups"></heading>
  <sect2><heading>* What about backups to floppies?</heading>
  <sect2><heading> Tape Media</heading>
     <sect3><heading><label id="hw:storage:tapebackups:4mm">
 4mm (DDS: Digital Data Storage)</heading>
<!--gen-->
	<p>4mm tapes are replacing QIC as the workstation backup
media of choice.  This trend accelerated greatly when Conner
purchased Archive, a leading manufacturer of QIC drives, and then
stopped production of QIC drives.  4mm drives are small and quiet
but do not have the reputation for reliability that is enjoyed by 8mm drives.
The cartridges are less expensive and smaller (3 x 2 x 0.5
inches, 76 x 51 x 12 mm) than 8mm cartridges.  4mm, like 8mm, has
comparatively short head life for the same reason, both use
helical scan.

<!--spec-->
	<p>Data thruput on these drives starts ~150kB/s, peaking
at ~500kB/s.  Data capacity starts at 1.3 GB and ends at 2.0 GB.
Hardware compression, available with most of these drives,
approximately doubles the capacity.  Multi-drive tape library
units can have 6 drives in a single cabinet with automatic tape
changing.  Library capacities reach 240 GB.

<!--tech-->
	<p>4mm drives, like 8mm drives, use helical-scan.  All
the benefits and drawbacks of helical-scan apply to both 4mm and
8mm drives.

	<p>Tapes should be retired from use after 2,000 passes or
100 full backups.

     <sect3><heading><label id="hw:storage:tapebackups:8mm">
8mm (Exabyte)</heading>

<!--gen-->
	<p>8mm tapes are the most common SCSI tape drives; they
are the best choice of exchanging tapes.  Nearly every site has
an exabyte 2 GB 8mm tape drive.  8mm drives are reliable,
convenient and quiet.  Cartridges are inexpensive and small (4.8 x
3.3 x 0.6 inches; 122 x 84 x 15 mm).  One downside of 8mm tape is
relatively short head and tape life due to the high rate of
relative motion of the tape across the heads.

<!--spec-->
 	<p>Data thruput ranges from ~250kB/s to ~500kB/s.  Data
sizes start at 300 MB and go up to 7 GB.  Hardware compression,
available with most of these drives, approximately doubles the
capacity.  These drives are available as single units or
multi-drive tape libraries with 6 drives and 120 tapes in a
single cabinet.  Tapes are changed automatically by the unit.
Library capacities reach 840+ GB.

<!--tech-->
	<p>Data is recorded onto the tape using helical-scan, the
heads are positioned at an angle to the media (approximately 6
degrees).  The tape wraps around 270 degrees of the spool that
holds the heads.  The spool spins while the tape slides over the
spool.  The result is a high density of data and closely packed
tracks that angle across the tape from one edge to the other.
 

     <sect3><heading><label id="hw:storage:tapebackups:qic">
QIC</heading>
<!--gen-->
	<p>QIC-150 tapes and drives are, perhaps, the most common
tape drive and media around.  QIC tape drives are the least
expensive "serious" backup drives.  The downside is the cost of
media.  QIC tapes are expensive compared to 8mm or 4mm tapes, up
to 5 times the price per GB data storage.  But, if your needs can
be satisfied with a half-dozen tapes, QIC may be the correct
choice.  QIC is the <em>most</em> common tape drive.  Every site
has a QIC drive of some density or another.  Therein lies the
rub, QIC has a large number of densities on physically similar
(sometimes identical) tapes. QIC drives are not quiet.  These
drives audibly seek before they begin to record data and are
clearly audible whenever reading, writing or seeking.  QIC tapes
measure (6 x 4 x 0.7 inches; 15.2 x 10.2 x 1.7 mm). <ref
id="hw:storage:tapebackups:mini" name="Mini-cartridges">, which also
use 1/4" wide tape are discussed separately.  Tape libraries and
changers are not available.

<!--spec-->
	<p>Data thruput ranges from ~150kB/s to ~500kB/s.  Data
capacity ranges from 40 MB to 15 GB.  Hardware compression is
available on many of the newer QIC drives.  QIC drives are less
frequently installed; they are being supplanted by DAT drives.

<!--tech-->
	<p>Data is recorded onto the tape in tracks.  The tracks
run along the long axis of the tape media from one end to the
other.  The number of tracks, and therefore the width of a track,
varies with the tape's capacity.  Most if not all newer drives
provide backward-compatibility at least for reading (but often
also for writing).  QIC has a good reputation regarding the
safety of the data (the mechanics are simpler and more robust
than for helical scan drives).

	<p>Tapes should be retired from use after 5,000 backups.

     <sect3><heading><label id="hw:storage:tapebackups:mini">
* Mini-Cartridge</heading>

     <sect3><heading><label id="hw:storage:tapebackups:dlt">
DLT</heading>
<!--gen-->
	<p>DLT has the fastest data transfer rate of all the drive
types listed here.  The 1/2" (12.5mm) tape is contained in a
single spool cartridge (4 x 4 x 1 inches; 100 x 100 x 25 mm). The
cartridge has a swinging gate along one entire side of the
cartridge.  The drive mechanism opens this gate to extract the
tape leader.  The tape leader has an oval hole in it which the
drive uses to "hook" the tape.  The take-up spool is located
inside the tape drive.  All the other tape cartridges listed here
(9 track tapes are the only exception) have both the supply and
take-up spools located inside the tape cartridge itself.

<!--spec-->
	Data thruput is approximately 1.5MB/s, three times the
thruput of 4mm, 8mm, or QIC tape drives.  Data capacities range
from 10GB to 20GB for a single drive.  Drives are available in
both multi-tape changers and multi-tape, multi-drive tape
libraries containing from 5 to 900 tapes over 1 to 20 drives,
providing from 50GB to 9TB of storage.

<!--tech-->
	Data is recorded onto the tape in tracks parallel to the
direction of travel (just like QIC tapes). Two tracks are written
at once.  Read/write head lifetimes are relatively long; once the
tape stops moving, there is no relative motion between the heads
and the tape.

  <sect2><heading> Using a new tape for the first time</heading>
	<p>The first time that you try to read or write a new,
completely blank tape, the operation will fail.  The console
messages should be similar to:
<tscreen><verb>
        st0(ncr1:4:0): NOT READY asc:4,1
        st0(ncr1:4:0):  Logical unit is in process of becoming ready
</verb></tscreen>

The tape does not contain an Identifier Block (block number
0). All QIC tape drives since the adoption of QIC-525 standard
write an Identifier Block to the tape.  There are two
solutions: 
	<p><tt>mt fsf 1</tt> causes the tape drive to write an
Identifier Block to the tape.
	<p>Use the front panel button to eject the tape.
	<p>Re-insert the tape and <tt>dump(8)</tt> data to the
tape.
	<p><tt>dump(8)</tt> will report <tt>DUMP: End of tape
detected</tt> and the console will show: <tt>HARDWARE FAILURE
info:280 asc:80,96</tt>
	<p>rewind the tape using: <tt>mt rewind</tt>
	
	<p>Subsequent tape operations are successful.

  <sect2><heading> Backup Programs</heading>
	<p>The three major programs are <tt>dump(8)</tt>,
<tt>tar(1)</tt>, and <tt>cpio(1)</tt>.

     <sect3><heading> Dump and Restore</heading>
<!--gen-->
	<p><tt>dump(8)</tt> and <tt>restore(8)</tt> are the
traditional Unix backup programs.  They operate on the drive as a
collection of disk blocks, below the abstractions of files, links
and directories that are created by the filesystems.
<tt>dump(8)</tt> backs up devices, entire filesystems, not parts
of a filesystem and not directory trees that span more than one
filesystem, using either soft links <tt>ln(1)</tt> or mounting
one filesystem onto another.  <tt>dump(8)</tt> does not write
files and directories to tape, but rather writes the data blocks
that are the building blocks of files and directories.
<tt>dump(8)</tt> has quirks that remain from its early days in
Version 6 of ATT Unix (circa 1975).  The default parameters are
suitable for 9-track tapes (6250 bpi), not the high-density media
available today (up to 62,182 ftpi).  These defaults must be
overridden on the command line to utilize the capacity of current
tape drives.

	<p><tt>rdump(8)</tt> and <tt>rrestore(8)</tt> backup data
across the network to a tape drive attached to another computer.
Both programs rely upon <tt>rcmd(3)</tt> and <tt>ruserok(3)</tt>
to access the remote tape drive.  Therefore, the user performing
the backup must have <tt>rhosts</tt> access to the remote
computer.  The arguments to <tt>rdump(8)</tt> and
<tt>rrestore(8)</tt> must suitable to use on the remote computer.
(e.g. When <tt>rdump</tt>'ing from a FreeBSD computer to an
Exabyte tape drive connected to a Sun called komodo, use: <tt>/sbin/rdump
0dsbfu 54000 13000 126 komodo:/dev/nrst8 /dev/rsd0a 2>&amp;1</tt>)
Beware:  there are security implications to allowing
<tt>rhosts</tt> commands.  Evaluate your situation carefully.



     <sect3><heading> Tar</heading>
<!--gen-->
	<p><tt>tar(1)</tt> also dates back to Version 6 of ATT
Unix (circa 1975).  <tt>tar(1)</tt> operates in cooperation with
the filesystem; <tt>tar(1)</tt> writes files and directories to
tape.  <tt>tar(1)</tt> does not support the full range of options
that are available from <tt>cpio(1)</tt>, but <tt>tar(1)</tt>
does not require the unusual command pipeline that
<tt>cpio(1)</tt> uses.  

	<p><tt>tar(1)</tt> does not support backups across the
network.  You can use a pipeline and <tt>rsh(1)</tt> to send the
data to a remote tape drive. (XXX add an example command)

     <sect3><heading> Cpio</heading>
<!--gen-->
	<p><tt>cpio(1)</tt> is the original Unix file interchange
tape program for magnetic media.  <tt>cpio(1)</tt> has options (among
many others) to perform byte-swapping, write a number of
different archives format, and pipe the data to other programs.
This last feature makes <tt>cpio(1)</tt> and excellent choice for
installation media.  <tt>cpio(1)</tt> does not know how to walk
the directory tree and a list of files must be provided thru <tt>STDIN</tt>.

	<p><tt>cpio(1)</tt> does not support backups across the
network.  You can use a pipeline and <tt>rsh(1)</tt> to send the
data to a remote tape drive. (XXX add an example command)

     <sect3><heading><label id="hw:storage:amanda"><htmlurl
url="http://www.freebsd.org/ports/misc.html#amanda-2.2.6.5"
name="Amanda"></heading>
	<p>Amanda (Advanced Maryland Network Disk Archiver) is a
client/server backup system, rather than a single program.  An
Amanda server will backup to a single tape drive any number of
computers that have Amanda clients and network communications
with the Amanda server.  A common problem at locations with a
number of large disks is the length of time required to backup to
data directly to tape exceeds the amount of time available for
the task.  Amanda solves this problem.  Amanda can use a "holding
disk" to backup several filesystems at the same time.  Amanda
creates "archive sets": a group of tapes used over a period of
time to create full backups of all the filesystems listed in
Amanda's configuration file.  The "archive set" also contains
nightly incremental (or differential) backups of all the
filesystems.  Restoring a damaged filesystem requires the most
recent full backup and the incremental backups.

	<p>The configuration file provides fine control backups
and the network traffic that Amanda generates.  Amanda will use
any of the above backup programs to write the data to tape.
Amanda is available as either a port or a package, it is not
installed by default.

     <sect3><heading> Do nothing</heading>
	<p>"Do nothing" is not a computer program, but it is the
most widely used backup strategy.  There are no initial costs.
There is no backup schedule to follow.  Just say no.  If
something happens to your data, grin and bear it!

	<p>If your time and your data is worth little to nothing,
then "Do nothing" is the most suitable backup program for your
computer.  But beware, Unix is a useful tool, you may find that
within six months you have a collection of files that are
valuable to you.

	<p>"Do nothing" is the correct backup method for
<tt>/usr/obj</tt> and other directory trees that can be exactly
recreated by your computer.  An example is the files that
comprise these handbook pages-they have been generated from
<tt>SGML</tt> input files.  Creating backups of these
<tt>HTML</tt> files is not necessary.  The <tt>SGML</tt> source
files are backed up regularly.

     <sect3><heading> Which Backup Program is Best?</heading>
	<p><tt>dump(8)</tt> <em>Period.</em> Elizabeth D. Zwicky
torture tested all the backup programs discussed here.  The clear
choice for preserving all your data and all the peculiarities of
Unix filesystems is <tt>dump(8)</tt>.  Elizabeth created
filesystems containing a large variety of unusual conditions (and
some not so unusual ones) and tested each program by do a backup
and restore of that filesystems.  The peculiarities included:
files with holes, files with holes and a block of nulls, files
with funny characters in their names, unreadable and unwriteable
files, devices, files that change size during the backup, files
that are created/deleted during the backup and more.  She
presented the results at LISA V in Oct. 1991.

  <sect2><heading>Emergency Restore Procedure</heading>
     <sect3><heading> Before the Disaster</heading>
	<p>There are only four steps that you need to perform in
preparation for any disaster that may occur.  

	<p>First, print the disklabel from each of your disks
(<tt>e.g. disklabel sd0 | lpr</tt>), your filesystem table
(<tt>/etc/fstab</tt>) and all boot messages, two copies of each.

	<p>Second, determine the boot and fixit floppies
(boot.flp and fixit.flp) have all your devices.  The easiest way
to check is to reboot your machine with the boot floppy in the
floppy drive and check the boot messages.  If all your devices
are listed and functional, skip on to step three.

	<p>Otherwise, you have to create two custom bootable
floppies which has a kernel that can mount your all of your disks
and access your tape drive.  These floppies must contain:
<tt>fdisk(8)</tt>, <tt>disklabel(8)</tt>, <tt>newfs(8)</tt>,
<tt>mount(8)</tt>, and whichever backup program you use.  These
programs must be statically linked.  If you use <tt>dump(8)</tt>,
the floppy must contain <tt>restore(8)</tt>.

	<p>Third, create backup tapes regularly.
Any changes that you make after your last backup may be
irretrievably lost.  Write-protect the backup tapes.

	<p>Fourth, test the floppies (either boot.flp and
fixit.flp or the two custom bootable floppies you made in step
two.)  and backup tapes.  Make notes of the procedure.  Store
these notes with the bootable floppy, the printouts and the
backup tapes.  You will be so distraught when restoring that the
notes may prevent you from destroying your backup tapes (How?  In
place of <tt>tar xvf /dev/rst0</tt>, you might accidently type
<tt> tar cvf /dev/rst0</tt> and over-write your backup tape).

	<p>For an added measure of security, make bootable
floppies and two backup tapes each time.  Store one of each at a
remote location.  A remote location is NOT the basement of the
same office building. A number of firms in the World Trade Center
learned this lesson the hard way.  A remote location should be
physically separated from your computers and disk drives by a
significant distance.

	<p>An example script for creating a bootable floppy:
<tscreen><verb>
 #!/bin/sh
 #
 # create a restore floppy
 #
 # format the floppy
 #
 PATH=/bin:/sbin:/usr/sbin:/usr/bin
 
 fdformat -q fd0
 if [ $? -ne 0 ]
 then
	 echo "Bad floppy, please use a new one"
	 exit 1
 fi
 
 # place boot blocks on the floppy
 #
 disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd /dev/rfd0c fd1440
 
 #
 # newfs the one and only partition
 #
 newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a
 
 #
 # mount the new floppy
 #
 mount /dev/fd0a /mnt
 
 #
 # create required directories 
 #
 mkdir /mnt/dev
 mkdir /mnt/bin
 mkdir /mnt/sbin
 mkdir /mnt/etc
 mkdir /mnt/root
 mkdir /mnt/mnt			# for the root partition
 mkdir /mnt/tmp
 mkdir /mnt/var
 
 #
 # populate the directories
 #
 if [ ! -x /sys/compile/MINI/kernel ] 
 then
	 cat << EOM
 The MINI kernel does not exist, please create one.
 Here is an example config file:
 #
 # MINI -- A kernel to get FreeBSD on onto a disk.
 #
 machine		"i386"
 cpu		"I486_CPU"
 ident		MINI
 maxusers	5
 
 options		INET			# needed for _tcp _icmpstat _ipstat
					 #            _udpstat _tcpstat _udb
 options		FFS			#Berkeley Fast File System
 options		FAT_CURSOR		#block cursor in syscons or pccons
 options		SCSI_DELAY=15		#Be pessimistic about Joe SCSI device
 options		NCONS=2		#1 virtual consoles
 options		USERCONFIG		#Allow user configuration with -c XXX
 
 config		kernel	root on sd0 swap on sd0 and sd1 dumps on sd0
 
 controller	isa0
 controller	pci0
 
 controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
 disk		fd0	at fdc0 drive 0
 
 controller	ncr0
 
 controller	scbus0
 
 device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
 device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr
 
 device		sd0
 device		sd1
 device		sd2
 
 device		st0
 
 pseudo-device	loop		# required by INET
 pseudo-device	gzip		# Exec gzipped a.out's
 EOM
	 exit 1
 fi
 
 cp -f /sys/compile/MINI/kernel /mnt
 
 gzip -c -best /sbin/init > /mnt/sbin/init
 gzip -c -best /sbin/fsck > /mnt/sbin/fsck
 gzip -c -best /sbin/mount > /mnt/sbin/mount
 gzip -c -best /sbin/halt > /mnt/sbin/halt
 gzip -c -best /sbin/restore > /mnt/sbin/restore
 
 gzip -c -best /bin/sh > /mnt/bin/sh
 gzip -c -best /bin/sync > /mnt/bin/sync
 
 cp /root/.profile /mnt/root
 
 cp -f /dev/MAKEDEV /mnt/dev
 chmod 755 /mnt/dev/MAKEDEV
 
 chmod 500 /mnt/sbin/init
 chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
 chmod 555 /mnt/bin/sh /mnt/bin/sync
 chmod 6555 /mnt/sbin/restore
 
 #
 # create the devices nodes 
 #
 cd /mnt/dev
 ./MAKEDEV std
 ./MAKEDEV sd0
 ./MAKEDEV sd1
 ./MAKEDEV sd2
 ./MAKEDEV st0
 ./MAKEDEV pty0
 cd /
 
 #
 # create minimum filesystem table
 #
 cat > /mnt/etc/fstab <<EOM
 /dev/fd0a	/	ufs	rw 1 1
 EOM
 
 #
 # create minimum passwd file
 #
 cat > /mnt/etc/passwd <<EOM
 root:*:0:0:Charlie &:/root:/bin/sh
 EOM
 
 cat > /mnt/etc/master.passwd <<EOM
 root::0:0::0:0:Charlie &:/root:/bin/sh
 EOM
 
 chmod 600 /mnt/etc/master.passwd
 chmod 644 /mnt/etc/passwd
 /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
 
 #
 # umount the floppy and inform the user
 #
 /sbin/umount /mnt
</verb></tscreen>

     <sect3><heading>After the Disaster</heading>
	<p>The key question is: did your hardware survive?  You
have been doing regular backups so there is no need to worry
about the software.

	<p>If the hardware has been damaged.  First, replace
those parts that have been damaged.

	<p>If your hardware is okay, check your floppies.  If you
are using a custom boot floppy, boot single-user (type "-s" at
the "boot:" prompt).  Skip the following paragraph.

	<p>If you are using the boot.flp and fixit.flp floppies,
keep reading.  Insert the boot.flp floppy in the first floppy drive
and boot the computer.  The original install menu will be displayed
on the screen.  Select the "Fixit--Repair mode with CDROM or floppy."
option.  Insert the fixit.flp when prompted.  <tt>restore</tt> and
the other programs that you need are located in <tt>/mnt2/stand</tt>.

	<p>Recover each filesystem separately.

	<p>Try to <tt>mount(8) (e.g. mount /dev/sd0a /mnt) </tt>
the root partition of your first disk.  If the disklabel was
damaged, use <tt>disklabel(8)</tt> to re-partition and label the
disk to match the label that your printed and saved.  Use
<tt>newfs(8)</tt> to re-create the filesystems.  Re-mount the
root partition of the floppy read-write ("<tt>mount -u -o rw
/mnt</tt>").  Use your backup program and backup tapes to recover
the data for this filesystem (e.g. <tt>restore vrf
/dev/st0</tt>).  Unmount the filesystem (e.g. <tt>umount
/mnt</tt>) Repeat for each filesystem that was damaged.

	<p>Once your system is running, backup your data onto new
tapes.  Whatever caused the crash or data loss may strike again.
An another hour spent now, may save you from further distress later.

     <sect3><heading>* I did not prepare for the Disaster, What Now?</heading>
<sect1><heading>* Serial ports</heading>
<sect1><heading>* Sound cards</heading>
<sect1><heading>* PCMCIA</heading>
<sect1><heading>* Other<label id="hw:other"></heading>

