<?xml version="1.0"?>
<article id="bocacard"><articleinfo><title>Installing Boca Card Mini-HOWTO</title><author><firstname>David H.</firstname><surname>Dennis</surname><affiliation><address format="linespecific"> <email>david@amazing.com</email> </address></affiliation></author><abstract><para>Describes the basics of a Boca 16-port Serial Card (Boca 2016)
				used with Linux. </para></abstract><pubdate>2001-01-17</pubdate><revhistory><revision><revnumber>1.1</revnumber><date>2001-01-17</date><authorinitials>JEY</authorinitials></revision><revision><revnumber>1.0</revnumber><date>1997-07-08</date><authorinitials>DHD</authorinitials></revision></revhistory><othercredit role="converter"><firstname>Joy</firstname><surname>Yokley</surname><contrib>Converted document from HTML to DocBook v4.1 (SGML)</contrib></othercredit></articleinfo><sect1 id="introduction"><title>Introduction</title><para>This HOWTO is being maintained by David H Dennis,
			david@amazing.com, to try and help any other individuals who may have acquired
			a BocaBoard, stared at it and found out that it didn't seem to do
			anything.</para><para>A very high percentage of those interested in the BocaBoard are
			also interested in becoming Internet Service Providers (ISPs). If you are one
			of them, please feel free to drop by my web site, 
			<ulink url="http://www.amazing.com"> http://www.amazing.com</ulink>,
			and check out my Inet-Access FAQ, over 9,000 lines detailing how to hook up to
			the net and how to make your Internet provider business succeed in these most
			interesting times.</para></sect1><sect1 id="warning"><title>Warning</title><para>Multi-Port serial cards, such as the BocaBoard, are all but dead.
			If you are in business as an Internet Service Provider (ISP), you will not want
			to use any of these devices, because the new 56k modem standards will not
			support them. Instead, you need digital modem/terminal server combinations such
			as the Livingston PM3 ent , Cisco 5200 ent or US Robotics Total
			Control ent. Otherwise, you simply won't be competitive in major markets.
			Users want high speeds; you won't be able to provide them with a BocaBoard or
			other multi-port serial card.</para><para>Even as a multi-port serial card, the BocaBoard is hopelessly
			obsolete. The overwhelming majority of people who want to buy a BocaBoard would
			be better off getting a accelerated card such as the Cycladesent or
			Rocketportent. (When last I looked, Rocketportent was a better board,
			but Cycladesent had the most stable kernel support). Accelerated cards use
			less of the CPU of your machine, and so you can support more ports per computer
			with less performance degradation.</para><para>That being said, perhaps you own one of these devices and want to
			make use of it, or perhaps you are planning an ISP based on a low-cost business
			model that basically means the use of cast-off equipment from others. In that
			case, the information in this document should be useful for you. But again, I
			repeat: The person who buys a new BocaBoard at this point probably needs a few
			more clues before starting his ISP or other venture.</para></sect1><sect1 id="requiredmaterials"><title>What do you need to install a BocaBoard?</title><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>The board itself and its manuals</para></listitem><listitem><para>Your Linux source tree </para></listitem><listitem><para>Patience</para></listitem></orderedlist></sect1><sect1 id="procedure"><title>The Basic Procedure</title><sect2 id="recompilingkernel"><title>Recompiling the Kernel</title><para>The first step is to change your kernel so that it knows you
				have a BocaBoard. Unfortunately, this is not a part of the configure script;
				you must go in and modify the source by hand. In the older versions of the
				kernel, this consists of putting the following line at the beginning of
				<filename moreinfo="none">linux/drivers/char/serial.c</filename>:</para><programlisting format="linespecific"> #define CONFIG_BOCA 1</programlisting><para>As of some kernel version or another, this has changed. To make
				it work with newer kernels, search for the 
				<programlisting format="linespecific">"BOCA_FLAGS" #define</programlisting> in
				<filename moreinfo="none">serial.c</filename>, and change the value to</para><programlisting format="linespecific">#define BOCA_FLAGS ASYNC_BOOT_AUTOCONF
				</programlisting><para>You can then recompile your kernel using the instructions
				included with the source tree. I recommend running the new kernel from a floppy
				until you're very sure it works; otherwise, the procedure for getting back your
				system is mind-numbing at best.</para><para>At least to me, digging into my kernel and re-compiling it was
				quite a stressful venture! Relax; as long as you copy it to a floppy, your new
				kernel is completely harmless. It won't bite! Honest! :-)</para></sect2><sect2 id="installingcard"><title>Installing the Card</title><para>The default address on both the card and the Linux software for
				the configuration is 0x100; leave that alone. Set the IRQ on the card to Linux
				default of 12. If you want to change the IRQ, you will have to search for
				"BOCA_FLAGS" in the file. You will find lines like this:</para><programlisting format="linespecific"> { BASE_BAUD, 0x100, 12, BOCA_FLAGS }, /* ttyS16
				*/
			        { BASE_BAUD, 0x108, 12, BOCA_FLAGS }, /* ttyS17
				*/</programlisting><para>You can change the IRQ from 12 by changing the 12 to any valid
				IRQ. I have not tried this, however.</para></sect2><sect2 id="tellinglinux"><title>Telling Linux about Your Card</title><para>Once you have compiled your new kernel, switch off the machine
				and install the card. Then, turn your machine on with the new kernel floppy in
				the drive. If the installation succeeded, you should see all sorts of strange
				stuff about 16550 UARTS being connected to ttyS16-ttyS32. The system will then
				come up normally.</para><para>The odds are pretty good that you don't actually have entries in
				<filename class="directory" moreinfo="none">/dev </filename>for those lines. Remember that they start at 16 and go on to 32. If you
				look at the source code, you'll see why; support for other cards is included in
				the code for lower line numbers. Creating them is pretty simple, once you know
				the trick. </para><para>To create entries for dial-out lines (where you call out), type:
				
				<screen format="linespecific">#mknod /dev/cuaxx c 4 N</screen></para><para>n = 64 + {line number}. The C indicates that this is a character
				mode device. For example, to create the first couple of lines on your board,
				type: 
				<screen format="linespecific">#mknod /dev/cua16 c 4 80 
				#mknod /dev/cua17 c 4 81</screen></para><para>To create dial-in lines (where users call you), type:</para><screen format="linespecific">#mknod /dev/ttySxx c 5 n</screen><para>where N is the same as described above. For example, to create
				the first couple of lines on your BocaBoard, type:</para><screen format="linespecific">#mknod /dev/ttyS16 c 5 80
			#mknod /dev/ttyS17 c 5 81</screen><para>It is recommended that you create both dial in and dial out
				lines for each port, so that you have maximum flexibility. It turns out to be
				very handy to call another line of your system by activating one of your lines
				as dial-out and calling your main number. I've done this already and it works
				great! It's most useful for checking how things look "on the other side of the
				fence"; I used it to find out how my software looked at 2400bps. (It's slower
				than the Linux console. A LOT slower, in fact).</para><para>Once you've finished with this, you can add entries to your
				<filename moreinfo="none">inittab</filename> file in the same way as you would for a standard ttySx entry, and the
				modems or terminals should come up!</para></sect2></sect1><sect1 id="problems"><title>Possible Problems</title><para>If you have problems, you may find that this is due to conflicts
			between your BocaBoard and systems with dual IDE controllers. According to
			Kevin Traas:</para><blockquote><para>Is the kernel recognising the board? (i.e. Right at the start of
				the boot process, all sixteen ports should be listed on screen with ttySxx, I/O
				Port, and IRQ identified.) Also, 
				<command moreinfo="none">setserial -bg ttyS*</command> should list *every* port in
				your system.</para><para>By default, the BB2016 is configured to use IO Ports between
				0100 and 017f. This creates problems on systems with two IDE controllers. The
				second controller, ide1, uses 0170-0177 which falls into this range. Big
				problems!!!</para><para>So, the solution, in my cases, is to go with an IO base of 0200
				through 027f. I haven't had any conflicts in this region; however, you may want
				to check you system to be sure. (run 
				<command moreinfo="none">cat /proc/ioports</command> - better run 
				<command moreinfo="none">cat /proc/interrupts</command> to make sure IRQ 12 isn't
				used either.)</para><para>Once you've found an IO range and IRQ that isn't used, you'll
				have to change the jumpers on the BB2016 and edit
				<filename moreinfo="none">/usr/src/linux/drivers/char/serial.c</filename> to reflect the new
				settings. Then, compile the kernel and install as per normal.</para></blockquote><sect2 id="additionalinfo"><title>Additional Information and Service Comments</title><para> If you want to use your new Boca card with any standard DB-25
				RS232 connector, you will have to get a special breakout box, which costs about
				$80. The card itself comes with a breakout box that plugs into the card through
				a truly formidable cable. It then supplies phone-like cables for the ports. The
				special $80 box has phone-like cables that plug into the breakout box included
				with the Boca card; you can then plug your modems or terminals into standard
				RS-232 connectors on the box. Unless you actually have a system that accepts
				the phone-like connectors, you should add the price of the box to the cost of
				the card when comparing it to other alternatives.</para><para>I got my Boca 2016 card through a special wholesale deal that I
				don't think many people will be able to reproduce. It was available quickly.
				However, the breakout box for RS-232 took about two weeks to ship. You should
				be aware of your need for this box before you acquire the card. The 2016 board
				was $235 and the additional box was $79.95.</para><para>I've heard that this breakout box is no longer available, and
				that now people just have special cables made. I'm not sure how you would go
				about doing this, though.</para><para>Only one port of my first Boca 2016 worked. I called Boca,
				expecting to hear a long string of questions and advice. When they said,
				"Linux? What's that?" I feared the worst. However, upon hearing my actual
				problem, they cheerfully told me that the card was defective and I should send
				it back; full 5-year factory warranty, 30-days exchange. I was struck by how
				cheery the lady was. It was as though they were expecting the worst, and very
				kindly making the most of it!</para><para>I had my hardware guy exchange the card. Unfortunately, the
				cards were back-ordered and they took about two more weeks to give me my new
				card. I have to say that I was quite annoyed at this, since I was anxiously
				chomping at the bit to get this thing up and running. </para><para>Some people have problems with ports past the first eight. I
				have tested my card up to port 11 and all the ports appear to be working. Boca
				Research quality control may be lacking; I would recommend that people with
				troubles with the card call Boca and deal with them directly. I suspect that if
				I'd exchanged the card directly through the factory I would have had better
				service than through my dealer. The factory people were all quite nice and
				eager to please.</para><para>Right now, I have only four phone lines. I bought the 16-port
				card for two reasons: because it has modem control (unlike the smaller ones),
				and in anticipation of future expansion. </para><para>Some additional information on this subject from Kevin Traas of
				Baan Business Systemsent: </para><blockquote><para>BTW, I've used the BB2016 several times and found them to work
					really well under Linux. I'm extremely happy with them. They perform very well,
					are very inexpensive, and are reliable. They claim 115200 bps per port. I've
					got a unique situation whereby I've got two systems with a PPP serial link
					between them. I'm running this link at 115200 and I experience almost 0% error
					rate (with hundreds of thousands of packets transmitted). My next step is to
					implement EQL and additional PPP links between the boxes to increase the
					bandwidth. We'll see how it goes.</para><para>One final note. Contrary to the suggestion in the HOWTO, I
					build my own cables for the BB2016 (they've got RJ ports on them). At first, I
					"dabbled" with RJ45-8 conductor plugs, but the BB2016 has RJ48-10 conductor
					jacks, so to get full modem support, I ended up going that route.</para><para>I now run all 10 wires between the BB2016 and my modems. It
					works great! No problems, no regrets! The only initial problem I had was
					finding a source for RJ48 plugs, 10 conductor wire, and RJ48 to DB25
					adapters. None of these are very cheap due to the low demand. Oh, yeah, and
					you need an RJ48 crimper as well.</para><para>If you want, I can build these cables for you and send them
					to you. If you're interested, e-mail me and I'll let you know pricing, etc. I
					found building my own was cheaper than the adapter that is mentioned in the
					HOWTO - which I couldn't find a source for anyway.</para></blockquote><para>I believe the adapter mentioned in this document is no longer
				being manufacturered, leaving cables such as your own the only remaining way of
				connecting the device.</para></sect2></sect1><sect1 id="acknowledgements"><title>Acknowledgements</title><para>Kevin Traas has issued a helpful update to this FAQ that contains a
			major correction to the information on 
			<command moreinfo="none">mknod</command>. He is also standing in as a new source for
			cables for the device.</para><para>The information here was obtained by begging many people for help.
			Unfortunately, I have forgotten their names due to a pressing need for disk
			space on my Netcom account. :-( Nonetheless, I thank them very much for their
			assistance when things looked blackest. This is my way of paying some of that
			back.</para></sect1></article>

