<!-- $Id: hw.sgml,v 188.8.131.52 1996-06-19 20:27:49 jkh Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!DOCTYPE linuxdoc 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 email to
<tt>firstname.lastname@example.org</tt>. 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>FreeBSD on Laptop computers</heading>
<p>Because laptop computers operate under a unique set of constraints,
they often behave differently or require more specialized knowledge
than their desktop and deskside PC siblings. This section attempts to
list the most useful (and current) laptop specific information on the
<item>Tatsumi Hosokawa's <htmlurl
name="PCCARD driver"> page.
name="Tatsumi Hosokawa"> and the BSD Nomads have created a
complete subsystem for dealing with PCCARD (PCMCIA) peripherals,
from modems to ethernet cards to SCSI adaptors. Much of this work
is now part of FreeBSD <htmlurl url="current.html" name="2.2-current">,
though more up-to-date experimental code snapshots may be found on
<item>Here is <htmlurl url="mailto:email@example.com"
name="Edwin Kremer's"> report on using FreeBSD with his
name="Toshiba Satellite Pro 410CDT Notebook">.
<item>FreeBSD on the <htmlurl url="http://www.kfu.com/~nsayer/zenith/"
name="Zenith Z-NoteFlex Laptop">
<p>Nick tells us about life with what he deems to be the ideal laptop
<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.
<p>I have had fairly good luck building workstation and server
configurations with the following components. I cannot 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.
<p>The <htmlurl url="http://asustek.asus.com.tw/" name="ASUS">
motherboard appears to be a good choice for mid-to-high range Pentium
server and workstation systems. If you are really looking for performance,
be also sure to get the <htmlurl url="http://asustek.asus.com.tw/Products/TB/mem-0002.html" name="pipelined burst cache module">. I feel that it is worth
the extra cost. If you are looking for a 486 class motherboard, you might
also investigate ASUS's <htmlurl url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pvi-486sp3.txt" name="486SP3G"> offering.
NOTE: The Intel <htmlurl url="http://asustek.asus.com.tw/Products/TB/triton-intro.html" name="Triton"> chipset based motherboards do not offer memory
parity logic, making it almost impossible to detect when a memory error
has occurred. Those wishing to build highly fault-tolerant systems may
therefore want to wait for Intel's newest generation of motherboards
based on the Orion chipset or investigate ASUS's SiS chipset based
motherboard, the <htmlurl url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pi-p55sp4.txt" name="P55SP4">. I have no personal experience with this
motherboard and have heard mixed reports - some say it is a fine MB, others
say that it is measurably slower than the Triton. The only undisputed
advantage it offers is being available <em>now</em>.
<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.
<p>In this particular game of Russian roulette, I will 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
<p>I do not currently see SCSI WIDE drives as a necessary expense unless
you are putting together an NFS or NEWS server that will be doing a lot
of multiuser disk I/O.
<p>My SCSI preferences extend to SCSI CDROM drives as well, and the
<htmlurl url="http://www.toshiba.com" name="Toshiba"> XM-3501B (now
released in a caddy-less model called the XM-5401B) drive has always
performed well for me. Generally speaking, most SCSI CDROM drives I have
seen have been of pretty solid construction (probably because they do not
occupy the lower end of the market, due to their higher price) and you
probably will not go wrong with an HP or NEC SCSI CDROM drive either.
<p>I've had pretty good luck with both
name="8mm drives"> from <htmlurl url="http://www.exabyte.com"
name="4mm (DAT)"> drives from <htmlurl url="http://www.hp.com" name="HP">.
<p>For backup purposes, I would have to give the higher recommendation to the
Exabyte due to the more robust nature (and higher storage capacity) of
<p>If you can also afford to buy a commercial X server for US$99 from
<htmlurl url="http://www.xinside.com/" name="X Inside"> 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. If free X servers are more to your
liking, you certainly cannot 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) are pretty fast cards as well, and are supported by
<htmlurl url="http://www.xfree86.org" name="XFree86">'s S3 server.
<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. $2,500 for a 21" monitor if that is what you really
need. There are good monitors available in the >=20" range and there
are also cheap monitors in the >=20" range. Unfortunately, none are
both cheap and good!
<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.
<p>If you are 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.
<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 committment to making sure that we are adequately supplied
with evaluation boards and technical specs. I have heard that the Cyclom-16Ye
offers the best price/performance, though I have not checked the prices lately.
Other multiport cards I have 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.
<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 am 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.
<p>For video capture, there is 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. I use one for broadcasting video
on the MBONE and it works quite well!
<sect1><heading>Motherboards, busses, and chipsets</heading>
<p><em>Contributed by &a.rgrimes;.<newline>25 April 1995.</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.
<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
<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
<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.
Wait for Triton-II.
<tag>Triton-II:</tag> No known problems. This chipset
appears to be a winner for everyone so far.
<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>
<sect1><heading>* Parallel ports</heading>
<sect1><heading>* Network cards</heading>
<sect><heading>Storage Devices<label id="hw:storage"></heading>
<sect1><heading>* Disk/tape controllers</heading>
<sect1><heading>* Hard drives</heading>
<sect1><heading>* Tape drives</heading>
<sect1><heading>* CD-ROM drives</heading>
<sect><heading>* Other<label id="hw:other"></heading>