3!neonramp.com!cynjut.neonramp.com!cynjut.neonramp.com!not-for-mail
Subject: [comp.unix.bsd] NetBSD, FreeBSD, and OpenBSD FAQ (Part 9 of 10)
Date: 27 Aug 1997 02:00:25 -0500
X-Posting-Frequency: Posted on/about the 13th and the 27th of every month.

Posted-By: auto-faq 3.1.1.2
Archive-name: 386bsd-faq/part9

Section 8..("Supported" Hardware List)

8.0.What hardware works!

.The problem with this section of the FAQ is that software is 
.the only reason that every PC card on the planet does not work.

.EISA cards are not directly supported; when and if EISA
.is directly supported, they will give a significant performance
.advantage to EISA bus machines.  As it happens, users who desire 
.more than 16Meg of memory must use either VESA or EISA systems.
.Even with an EISA system, many users will not be able to use the
.address space above 16Meg unless their system uses only EISA 
.cards for those devices that need access to DMA.  The limitations
.are covered in another section of the FAQ.

.Many EISA cards operate in an ISA emulation mode.  Notably, the
.Ultrastore 24F SCSI controller operates in an IDE emulation mode 
.that allows the card to be used in the current system without 
.modification.  Most EISA cards that operate in ISA mode will 
.work with 386BSD, NetBSD, or FreeBSD.

.Like EISA, MCA is unsupported currently; unlike EISA, it can't
.work until it is supported, as it doesn't fall back to ISA
.operation.  If you want to work on this problem, I'm sure that
.many people will appreciate it; you will probably need an ISA or
.EISA machine to do the work, however.

.On top of all of that, NetBSD (being the 'horizontal' entry in
.the *BSD family) supports about 13 CPUs.

.
8.3.1.How do I configure multiport cards?  Is there a possibility of 
.using multiport serial boards?  How do you configure an AST/4 
.in the kernel?  It looks like the AST driver only supports 
.4-port cards, but it looks like it would be easy to add support 
.for 8 ports ... or am I wrong?

.From: "Martin Husemann" <martin@euterpe.owl.de> 
.All AST 8 port Cards I have seen simply were two AST-4-port on 
.one board. You would configure them like this:

. master.ast0.at isa? port 0x1a0 tty irq 5 vector astintr
. master.ast1.at isa? port 0x2a0 tty irq 7 vector astintr

.With that said, the discussion about these cards continues with
.how to make older versions of *BSD react correctly to your AST
.4 or 8 port cards.

.The AST/4 and its clone multiport cards can run on 386BSD using 
.patchkit 0.2.4 and later, NetBSD, and FreeBSD.  The only
.problems seem to be that the code in older versions of
.sioprobe() and sioattach() in sio.c needs to be hacked to get
.it to properly detect the ports and then recognize the type 
.of UARTs installed (16550As).  The code segment that is causing 
.the problem is included below:

.A configuration for this is when two AST Four Port cards
.are actually used in a system.  The configuration for that looks
.like this:


.#device  sio0    at isa? port "IO_COM1" tty irq 4 vector siointr
.#device  sio2    at isa? port "IO_COM3" tty irq 5 vector siointr

.device   sio1    at isa? port 0x2a0 tty flags 0x0481
.device   sio2    at isa? port 0x2a8 tty flags 0x0481
.device   sio3    at isa? port 0x2b0 tty flags 0x0481
.device   sio4    at isa? port 0x2b8 tty irq 5 flags 0x0481 
....vector siointr

.device   sio5    at isa? port 0x1a0 tty flags 0x0881
.device   sio6    at isa? port 0x1a8 tty flags 0x0881
.device   sio7    at isa? port 0x1b0 tty flags 0x0881
.device   sio8    at isa? port 0x1b8 tty irq 4 flags 0x0881 
....vector siointr


.This is one of the areas where FreeBSD and NetBSD have
.diverged.  The actual semantics of the multiport boards have
.changed since this section was originally written (the flags
.are either no longer needed or are different in current NetBSD
.implementations, for example).


8.3.3.What is the difference between baud and bits per second?

.It's important to remember that we're transmitting symbols. Does
.this apply to digital transmissions?  Yes. A digital message is
.simply an ordered sequence of symbols from a discreet source. This
.source has an alphabet 'M' of 2 or more symbols, and produces
.the symbols at some rate 'r'.

.If we allocate a finite amount time alloted to a symbol, and call
.that time 'D', we can for once and ever define what baud is. Having
.'D', our "signaling rate" is:

.    r = 1/D                       (1)

.measured in _symbols_per_second_ or baud. For binary transmissions,
.we have a bit duration Tb, and our "bit rate" is:

.    rb = 1/Tb                     (2)

.measured in _bits_per_second_, (bps, or b/s).

.Now we note that in the special binary (M=2) case, each bit is
.a symbol and thus D=Tb, and by (1) and (2) we have:

.    r (baud) = rb (bps)           (3)

.or in English, for *binary* transmissions, we have "the signalling
.rate, measured in baud, is the same as the bit rate, which is
.measured in bps."  For all other transmissions, the signalling
.rate (baud) is not equal to the bit rate (bps).

.-Ade "never wants to see this again" Barkah


8.4.Disk Controller Problems

.There is no real list of supported wd-driver controllers.  The listx
.would be far longer than I am willing to type.  Suffice it to say 
.that virtually every know IDE/ESDI/MFM/RLL hard drive controller
.available works.  There are occasional reports that the driver
.for this particular type of disk drive is "broken", but it is hard
.to substantiate this.  There are a few known "gotchas" with this
.particular controller type, but they are fixed as soon as they are 
.found.


8.4.2.SCSI controller problems

.Every once on a great while, someone will post a problem with a
.SCSI controller.  Almost all of these are attributed to either
.a) bad cables (or out of spec cables), b) bad termination, or
.c) incorrect irq/drq setup.  Here is an excerpt of a message
.that provides some insight into one man's problems with the
.Adaptec controller, and one with the BusLogic 445.


.From: witr@rwwa.com (Robert Withrow)

.Problem: When the bus hangs, all devices have their access
.lights off, the AHA his its light on. 

.Being in a hurry, I made several changes and the problem went
.away. Normally, I would change one thing at a time, but, like I
.said, I was in a hurry.  Below, I list the changes I made:

.  1) I replaced the AHA with an older one I keep as a spare.

.  2) I *inserted* the the ``synchronous negotiation'' jumper in 
.  the aha.

.  3) I removed the terminator power jumper from two of the hard
.  drives. 

.  4) I removed and reinserted all of connectors into all of the
.  drives. 

.If I had to guess, I bet #2 was the thing that fixed the
.problem.

.The system has compiled X11 three times as well as done all 
.sorts of other things including all of the drives (cdrom, disk, 
.and tape) for three days now without a single hang.

.wjw@ebh.eb.ele.tue.nl (Willem Jan Withagen) writes:

.=>  =>  The BT kernel requires the controller to be configured 
.=>  =>  for IRQ 12.  That is a strange default.  The default for 
.=>  =>  the BT445S is 11, the same as for the 1542.  You probably 
.=>  =>  just need to reconfigure the controller.
.=>  
.=>  So I redid the switches and the BT kernel recognizes it on 
.=>  int 12.  Either with or without EISA DMA (switch 2-10)
.=>  
.=>  it no longer generates the stray interrupt 7.
.=>  But it still doesn't boot after the message 
.=>  .'changing root device to fd0d'
.=>  
.=>  So what's going on here. Is there anyway to find out more?
.=>  Or should I go to one of the FreeBSD lists and discuss it there?

.I was browsing thru the hardware manual of the BT 445S and there 
.it was on the next page :-( I was just misguided by the nice 
.switches on the card edge. 

.To set the interrupts not only the dip-switches need to be changed.
.More important is the actual and physical connection of intr 12 to
.the ISA bus connector.

.After taking the board out, and really connecting intr 12, the 
.system booted the BT kernel without a glitch.  I'm now compiling a 
.new kernel with all our options set as we'd like them to be. 

.The current config:
..16 Mb
..BT 445S with intr 12 and switch 2-10 in default state, 
..giving DMA on channel 5.

.Things I'm going to test:
..toggling the 2-10 switch
..adding 16 MB more.


8.5.SCSI Controllers

.The list of "supported" hard drive controllers is very short.
.Basically, it is any hard drive controller that emulates a
.standard IDE/ESDI/MFM controller and a few SCSI controllers.  
.The short list is included below:

.These boot with the kcaha floppy:
..Adaptec 1522..ISA.SCSI.Experimental
..AIC-6260 based..ISA.SCSI.
..AIC-6360 based..ISA.SCSI
..Adaptec 1540[ABC].ISA.SCSI.No Floppy
..Adaptec 1542[ABC].ISA.SCSI
..Adaptec 174x..EISA.SCSI
..Adaptec 294x..????.SCSI.Not supported
..Ultrastore 14F..ISA.SCSI
..Ultrastore 24F..EISA.SCSI
..Ultrastore 34F..VLB.SCSI
..Buslogic BT542..ISA.SCSI.
..Buslogic BT545..ISA.SCSI.(Old ones only)
..Buslogic BT946C..PCI.SCSI
..NCR 53C810 based.PCI.SCSI

.These boot with the kcbt floppy:
..Buslogic BT742A..EISA.SCSI
..Buslogic BT747A..EISA.SCSI.(modified 742 driver)
..Buslogic BT445S..VLB.SCSI

.Note that the Ultrastore 24F is supported with an experimental
.driver or in IDE emulation mode only.  Any controller that
.purports to be a clone of one of the cards listed above will
.usually work as well.

.The '{something} based' cards above are special in that many 
.controllers use these controller chips as the basis for their 
.implementation.  The AIC-6260 is the chip set in the Adaptec 
.1522 series controllers, and the AIC-6360 is the chipset used 
.in the Soundblaster SCSI controller.  There are several PCI 
.controllers that are using the NCR chipset.

.In addition, there is a special note for Buslogic card users.

.The card should be configured to use ioaddr 0x330 and IRQ 12.
.There are two places the IRQ needs to be set.  The first is a
.bank of dip switches, and te next is a jumper.  See your hard
.drive controller documentation for the exact settings.

.Once you've got the controller on the right settings.  As it
.says in the README.INSTALL file, after all:

.BT742 SCSI Cntlr.       0x330   12               [kcopy-bt-floppy]

.So I can only conclude that you've probably not configured the
.card for EISA DMA!  From the /usr/src/KNOWNBUGS file:

./sys/1/isa/bt742a.c
            The Bt445S and Bt747 controllers can cause problems when
.    ISA DMA is selected as an option.  With the EISA controller
.    the remedy is easy - simply turn it off using your EISA 
.    configuration utility.  With the Bt445S, which is a VLB
.    card, you must switch the undocumented "SW10" on "SB2" to
.    the off position.  Also note that certain revisions of the
.    Buslogic board (Revision C or earlier, firmware revision
.    <3.37) will cause DATA CORRUPTION with systems containing
.    more than 16MB of memory.  If you find this to be the case, 
.    temporarily remove your extra memory and contact Buslogic
.    for an upgrade!

.The BT946C PCI card works flawlessly.  The only thing that needs
.to be done to it is to ensure that the the two jumpers that
.control how and if to autoconfig are removed.  This allows the
.system to autoconfigure everything in the card.  The best thing
.to do is simply set the card to use the "Autoconfig to default"
.option.

..
8.6.Network Cards

.Common misconception number 1: Why does BSD still support such 
.a small selection of network cards?

.Depends on what you mean by `small'.  Here is the 'short list'.

.3c501                   isa     if_el           (kimmel@cs.umass.edu)
.3c503...isa.if_el..(mycroft) 
.3C507...isa.if_el..(mycroft) 
.3c509  ...isa.if_ep   bnc/aui/utp.      (tdr)
.3c579...eisa.if_ep..  (tdr)
.WD 8390-based cards .isa.if_ed..  (mycroft)
.SMC 8390-based cards .isa.if_ed..  (mycroft)
.NE1000, NE2000    .isa.if_ed..  (mycroft)
.NE2100/BICC Isolan/DEPCA isa.if_le..  (mycroft)
.AT&T StarLAN (82586-based cards)..  (mycroft)

.These are all in NetBSD, and FreeBSD (by inference)

   .Common question number 2: I have a 3Com 3c509 - is it supported?

.The 3C509 works well under NetBSD-current, and has been clocked
.at full ethernet speed.  To use the UTP connection, you will need
.to specify the link0 and link1 options in the ifconfig command.

..-link0  disable AUI/UTP. enable BNC.
..link0   disable BNC. enable AUI.
..link1   if the card has a UTP connector, and link0 is
...set too, then you get the UTP port.


8.7.Printers
.
.First, set up your printer so it uses the 'LF' code as its 
.CR+LF (End of line) character.  If you use your machine for 
.operations in more than one OS (like some of us that HAVE 
.to use DOS :-( ) then you can include a control sequence in 
.the 'ff' control in your /etc/printcap file.

.Here is an example printcap to show you how simple it is:

.lp|ljgpc_deskjet|HP DeskJet Plus:\
..:lp=/dev/lpt0:mx#0:\
..:sd=/var/spool/ljgpc_deskjet:\
..:lf=/var/log/lpd-errs:\
..:ff=\033E\033&k2G:fo:sh:tr=\033E:


.For the HP LaserJet III (running PostScript) or the Deskjet 540 
.printers, the sequence is a little more involved:

.First, it looks like you will need to install ghostscript.  I have 
.a Desk Jet 540 that I use with the printcap entry and filter 
.included below.  You could hack the filter slightly to produce 
.output for your Laser Jet III (try changing "-sDEVICE=djet500" to 
."-sDEVICE=ljet3").

.You'll need perl and gs installed on your system.  You also need to
.ensure that gs has the ljet3 driver installed.  You can find out by
.running "gs -h" and looking to see if the driver is listed.

.--- printcap entry ---
.lp|HP Deskjet 540:\
.    :lo=/var/spool/lpd/lp-lock:\
.    :lp=/dev/lpt0:\
.    :lf=/var/log/lpd-errs:\
.    :of=/var/spool/ps-filter:\
.    :sd=/var/spool/lpd:\
.    :sh:

.--- /var/spool/ps-filter ---
.#!/usr/bin/perl
.# Filter which detects postscript files and appends cr to lines of text.
.# $Id: ps-filter,v 1.3 1995/02/14 01:05:59 brian Exp $
.
.$cat="/bin/cat";
.$gs="/usr/local/bin/gs";
.
.$_ = <STDIN>;
.if (/^%!/)
.    {
    .    # Pipe the file as-is to the ghostscript interpreter.
    .    # Postscript files have their pages reversed because my
    .    # DeskJet 540 stacks them in reverse order if I don't.
    .    $old_dir=`pwd`;
    .    $tmp_dir = "/tmp/lp-gs.$$";
    .    mkdir($tmp_dir,0700);
    .    chdir $tmp_dir;
    .    open(PIPE, "|$gs -q -sDEVICE=djet500 -sOutputFile=%03d.lj -")
..|| die "$0: can't run ghostscript: $!";
    .    print PIPE $_;
    .    while (<STDIN>)
    .    {
..print PIPE $_;
    .    }
    .    close PIPE;
    .    @pages=reverse(sort(<*.lj>));
    .    system $cat, @pages;
    .    unlink @pages;
    .    chdir $old_dir;
    .    rmdir $tmp_dir;
.}
.elsif (&isprint() && !/\r\n$/)
.{
    .    # Send the text to the printer with trailing lf converted to crlf.
    .    s/([^\r])?\n$/\1\r\n/;
    .    print;
    .    while (<STDIN>)
    .    {
..s/([^\r])?\n$/\1\r\n/;
..print;
    .    }
.}
.else
.{
    .    print;
    .    while (<STDIN>)
    .    {
        .print;
    .    }
.}
.sub isprint
.{
    .    ($c) = split(//,$_);
    .    return ($c =~ /[\s\n]/) || (ord($c) >= 32 && ord($c) < 127);
.}

.If you are having trouble with the JetDirect card, this entry
.should work adequately for you, although printing and querying
.may not be completely solid:

..laser: \
        ..:rm=laser.kew.utl: \
...:rp=lp: \
...:sd=/usr/spool/lpd/laser: \
...:lf=/var/log/lpd-errs: \
...:sh: \
...:rs: \
...:ff=: \
...:fo


8.7.1.How can I print big files (especially from SAMBA, the WfWg
.network program)?

.First step:  Add ":mx#0:" to the printer's entry in /etc/printcap.

.Once you have "mx#0" in your /etc/printcap entry, make
.sure you have enough disk space in the "/var" filesystem to 
.handle the job.  Also beware that "lpr -s" can fail obscurely
.if the file you are printing (and the path to it) are not accessible
.by the user daemon.


8.8.Tape Drives.
8.8.1.What are the jumper configurations for the Exabyte 8200 DAT tape
.drive?

.Jumpers/switches are on the MX board. I think that the top of the 
.case and the board must be removed to access jumpers/switches.  
.Per a November 1989 8200 Spec there are at least two different MX 
.boards. Level 1, part no 724021-xxx has jumpers. Level 2, part no 
.724022-xxx has switches.

.Level 1 Jumper Configuration:

.J1 L-M Bypass Memory Test - 8 Second Startup
    .   M-R Run Memory Test - 65 Second Startup

.J2 L-M Parity Checking Enabled
   .   M-R Parity Checking Disabled

.J3 L-M Even Byte Disconnect
           M-R Odd or Even Byte Disconnect

.J4 L-M No Busy Enable
           M-R Report Busy Status

.J5 L-M P6 Cartridge Type - Domestic
    .   M-R P1 Cartridge Type - International

.J6 L-M Reserved for future use

.J7 L-M Normal Operations
   .   M-R No Disconnect in Data Phase

.J8 L-M Fixed Block Mode on Power Up
   .   M-R Variable Block Mode on Power Up

.Level 2 Switch Configuration:

.SW1 Off Run Memory Test - 65 Second Startup
    .    On Bypass Memory Test - 8 Second Startup

.SW2 Off Parity Checking Disabled
     .    On Parity Checking Enabled

.SW3 Off Odd or Even Byte Disconnect
    .    On Even Byte Disconnect

.SW4 Off Report Busy Status
    .    On No Busy Enable

.SW5 Off Fixed Block Mode on Power Up
    .    On  Variable Block Mode on Power Up

.SW6 Off Normal Operations
    .    On No Disconnect in Data Phase

.SW7 Off Reserved for Future Use
    .    On 

.SW8 Off P6 Cartridge Type - Domestic
    .    On P1 Cartridge Type - International


8.9.QIC-40/80 tape drives

.Steve Gerakines has released a series of patches for FreeBSD that
.allow the use of the QIC-40/80 tape drives through the floppy
.controller.  Get them from ftp.gte.com:/pub/ft/dist0.3/dist0.3.tgz
.or a similar mirror site, if there are any.  Archie will be able
.to tell you for certain.


8.10.CD-ROMs

.The Sony CDU 561 works well, as do the Toshiba 401 and 4101.  The
.4101 is a double speed SCSI-2 device and allows 'grabbing' of
.music tracks.

.Many folks have announced that they had problems with Mitsumi
.CD-ROM drives.  It seems that there are nearly as many releases
.of the firmware as there were drives sold.  Many of the firmware
.versions were incompatible with each other.  A generic Mitsumi
.driver will be a hard act to accomplish, if it is possible at all.
.The current Mitsumi driver seems to work well with all of the
.Mitsumi controllers (FD-001x and older).

.There are native (non-EIDE) Mitsumi CD-ROM drivers for NetBSD and 
.FreeBSD.  They are available in the latest release version of each.
.If your CD-ROM is not recognized by the kernel, and uses a Mitsumi
.controller, you will need to make changes to the mcd.c source
.file to change the behavior of the first getreply() function.
.Instead of exiting immediately, the check for whether the
.getreply was successful should be commented out and assumed to
.be correct.  While this is a brute force method (it may find a
.CD-ROM that isn't even there) it will help many Mitsumi
.controllers probe correctly.  

.The EIDE ATAPI CD-ROM drive is now supported in the -current
.versions of FreeBSD and OpenBSD, and is supported experimentally 
.in NetBSD Version 1.2 and higher.

.FreeBSD also supports the Matsushita (Panasonic) CD-ROM drives.  

.The only other commonly available CD-ROM drive that is not
.supported is the SONY CD-ROM.  


8.10.1.How can I mount my CD-ROM so that it appears to be writable?

.There are two ways.  If the version of *BSD you have supports
.the union file system, you can use the following:

.    mount -t union -o -b /cdrom/ports /usr/ports
.    cd /usr/ports
.    make all install

.If you want to use an fstab entry, try this:

.    /cdrom/ports /usr/src union rw,-b 0 0

.If your version of *BSD doesn't support union file systems, you
.could use something like this:

.    mount /dev/cd0a /cdrom
.    mkdir /usr/ports
.    cd /usr/ports
.    lndir /cdrom/ports .
.    <wait for dirs to link up>

.    cd /usr/ports/mail/elm
.    make all install

-- 
Dave Burgess                   Network Engineer - Nebraska On-Ramp, Inc.
*bsd FAQ Maintainer / SysAdmin for the NetBSD system in my spare bedroom
"Just because something is stupid doesn't mean there isn't someone that 
doesn't want to do it...."
