Mon Nov 18 17:27:27 JST 1996


BOCAのmultiport serial I/O cardのFreeBSDでの使い方


multiport serial cardは大きく分けて2種類あります.intelligent cardと non-intelligent cardがあり,簡単に言うと処理をカード自身がするかCPUがす るかの違いです.当然値段も違ます(後者は前者の1/8ぐらい?).FreeBSDでは intelligent cardとnon-intelligent cardのさまざまなmultiport serial card をサポートしています. handbook-j に以下の記述があります.

  2.1.3.その他のデバイス
      AST 4ポートシリアルカード (シェアードIRQ使用) 
      ARNET 8ポートシリアルカード (シェアードIRQ使用) 
      BOCA IOAT66 6ポートシリアルカード (シェアードIRQ使用) 
      BOCA 2016 16ポートシリアルカード (シェアードIRQ使用) 
      Cyclades Cyclom-yシリアルボード 
      STB 4ポートカード (シェアードIRQ使用) 
      SDL Communications Riscom/8シリアルボード 
(オンラインマニュアル sioも参照してください.)このページではシリアルポー トをなるべく安く増設する場合を対象としています.

BOCAのmultiport serial cardは non-intelligent cardで,4 serial, 8 serialまたは16 serialのものがあり, それぞれBB1004,BB1008, BB2016です.ただし,BB1004とBB1008は信号線CDとDR がありませんのでmodemを付けて使うにはちょっと不向きです(最近のモデムは3 線式や5線式でも動作するものもあるようですのでそのようなモデムを使えば全 く問題ないかも知れません).クロスケーブルで直接繋ぐ分にはあまり問題ない と思います.BB2016にはRS-232Cの信号線(SD, RD, ER, CD, RS, CS, DR, RI, SG, FG)がすべてありますので,modemを繋ぐにはこちらの方が確実でしょう. ただBB1008よりも割高です.

よるとBB1004,BB1008, BB2016そ れぞれの値段は

となっています(私はBB1008を12,800円で買いました.).また,BB2016はカー ドとは別にケーブルのセットIODCE2またはIODTE2を買う必要があります. (日本では1,800円ぐらい).これらはRJ-45<-->DB-25オスの変換アダプタで, IODCE2はモデムを,IODTE2はプリンタやターミナルを繋げるのに用います.IODCE2 およびIODTE2はそれぞれ2セットずつ入っていますので,BB2016では8セット必要 となります.くれぐれも買い過ぎにないように注意して下さい.

このページのBB2016についての記述はFreeBSDのメーリングリスト FreeBSD-users-jpの記事を参考にして書きました.BB1004はBB1008と比べポート が少ないという違いのみのようです.実際にBB1004, BB2016を見たことはありま せん.


BB1008を差しているマシーンの構成例です.

 CPU:		Pentium 166MHz
 MB:		TAITAN III
 Chip:		Intel Triton Chipset
 Memory:	16MBx2(60ns, パリティーなし)
 Video:		#9 FX Motion 771(S3-968) with 4MB VRAM
 Disk:		1.2GB(EIDE)
 CD-ROM:	Mitsumi FX-400 IDE (EIDE)
 Network:	Intel EtherExpress Pro/100 Model B
 KB:		AT101(NMB101)
 Mouse:		光学式3ボタン(MouseSystems)
 その他:	BOCA 8serial I/O card(BB1008)
このBB1008に98, Macを でクロスケーブルで直接繋いでいますが,non-intelligent cardなのに極端には CPUのパホーマンスは落ちません(正確には計っていませんが).すべてのポー トを同時に使用することは滅多にないこともパホーマンスが落ちない理由かも知 れません.


BB1008の使用方法を説明します.

はじめにケーブルについてです.BB1004,BB1008には特殊なケーブルが附属して います.両端のプラグとしてRJ12(電話のプラグ)を用いたケーブルです (BB2016はRJ-45の様です).片方はカードに差し,片方には附属の (RJ12) <--> (DB25オス)の変換コネクタを付けてパソコンなどに繋げます.そのDB25コネクタ のピンの配置がちょっと特殊(?)なので,それを分解してピンの配置の変更やピ ンの追加で全体でクロスケーブルを作ります(ストレートケーブルにするときは これを参考にして下さい).

DB25オスのピンの変更は,

 6  --> 5 
 20 --> 4
です.6, 8, 20にピンを追加し,コネクタ内で短絡させます.結局,ピンの配置 は
 RJ12    DB25
 1 ----->5
 2 ----->1
 3 ----->3
 4 ----->2
 5 ----->7
 6 ----->4
 
    +---6
    +---8
    +---20
となります.PC98などは6, 8を短絡する必要があるようなのでこの3つのピンを 追加しました.追加するピンは,他のプラグを分解してピンを取って来ました. そのため2--3mmもとのピンよりも短くなってしまいましたが,とりあえず使えて います.もう一つの方法はこのカード専用のケーブルを自作することが考えられ ます.

BB2016は別途ケーブルを買う必要がありますが,上記のようなケーブルの改造は 必要ないと思います.


次にFreeBSDの設定です.カーネルを再構築しなければなりません(オンライン マニュアル sio参照).まず,/sys/i386/conf中のconfigファイル(例えば, GENERIC)中に,
#
# Serial ports by BOCA 1008 card
options         "COM_MULTIPORT"         #code for some cards with shared IRQs

device sio4 at isa? port 0x100 tty flags 0xB05
device sio5 at isa? port 0x108 tty flags 0xB05
device sio6 at isa? port 0x110 tty flags 0xB05
device sio7 at isa? port 0x118 tty flags 0xB05
device sio8 at isa? port 0x120 tty flags 0xB05
device sio9 at isa? port 0x128 tty flags 0xB05
device sio10 at isa? port 0x130 tty flags 0xB05
device sio11 at isa? port 0x138 tty flags 0xB05 irq 10 vector siointr
を入れます.カードのIRQを10にし,デバイスはsio4--sio11を使うようにしてい ます.「flags」直後の0xB05ですが,前半の0Bと後半の05で分けて考え,0B(16進)は 10進で11のことで,sio11の11のことです.05は,BOCAのカードを使うためのお まじないと思って下さい(man sio参照).もしBB2016の16ポートのもの を使うならば,sio12--sio19分の行を同様に増やし,「port」直後の数字を上と 同様に0x140--0x178にし,「flags」直後の数字は0x1005にします. その後カーネルを再構築し,入れ換えます.
config GENERIC; cd ../../compile/GENRIC;make depend; make; make install
最後にデバイスファイルを作ります.
cd /dev
./MAKEDEV tty4
./MAKEDEV cua4
.. (省略)
./MAKEDEV ttya
./MAKEDEV cuaa
./MAKEDEV ttyb
./MAKEDEV cuab

(注意) sio10のデバイスファイルは./MAKEDEV tty10ではうまく作れません.


BOCAのシリアルカードを付けたFreeBSDにiij-pppのサーバをさせる場合の設定方 法はこちら
FreeBSDの広場へ