Multitech ISIHP-2Sの Linuxへの適用について

2000/11/30


1. はじめに

Muititech ISIHP-2Sは2つのBRIインタフェースを持ち、
v.90セントラルサイトモデムを内蔵したリモートアクセスのための
インタフェースボードである。
内部には2つのTAと4つのモデムを持ち、BRIに着信した信号を自動的に判別し
デジタル、またはアナログポートへ適切なプロトコルで接続する機能を持つ。

この製品は日本国内でのサポートを謳っていないが、
ファームウエアのバージョンアップにより利用可能である。
製品に付属のバージョンでは動作できないので、必ずバージョンアップが必要となる。
(NTT承認番号の取得は不明確なため、接続することは問題があるかもしれない)

これは Linux でこのカードを利用して PPP サーバーを構築するための情報である。

1.1. ドライバ類の入手方法

購入時に付属していたドライバ、ファームウエアでは
動作させることができなかった。
新しいドライバは次のところから取得できる。

2000/11現在

http://www.multitech.com/SUPPORT/MultiModemISI/firmware.asp

からたどることができる。

ftpで直接取得することも可能で、
TA用 version 4.20
    ftp://ftp.multitech.com/ISDN/ISIHX/TerminalAdapters/ISIHXTA.exe
MODEM用 version 2.10Q
    ftp://ftp.multitech.com/ISDN/ISIHX/Modems/isihxmdm.exe

である。

バージョンアップは専用のバージョンアップツールを用いる。
DOS用のバージョンアップツールもアップデートされており

ftp://ftp.multitech.com/Utilities/FLASHPR.exe

が書き換えプログラムとなっている。
(Windows用もあるが、Linux主体で作業を行うため DOS 版を利用した)

Linux で利用するためのドライバは

(kernel-2.2.x用)
ftp://ftp.multitech.com/ISI-Cards/Linux/Linux22x.tar 

(kernel-2.0.x用)
ftp://ftp.multitech.com/ISI-Cards/Linux/Linux20x.tar 

である。


2. ファームウエアの書き換え

ファームウエアの書き換えは DOS 用の書き換えプログラムから行う。

書き換えプログラム自体はDOSのみで自己展開できるが、
ファームウエアそのもののは Winzip の自己解凍形式なため
展開に際してはWindowsの手助けが必要である。

内容物は次の通り。

FLASHPR.EXE 書き換えユーティリティ
FLASHPRO.EXE ユーティリティ
FLASHPRO.CFG ユーティリティ定義ファイル
COLOR.CFG ユーティリティ定義ファイル
ISITERM.EXE ターミナルソフト
ISI4608.BIN ファームウエア通信コアバイナリ
ISI4616.BIN
ISI608.BIN

isihxmdm.exe
210Q.ECO 解説文書(テキスト)
imqX210q.hex ファームウエア
imqY210q.hex ファームウエア(cmpで比較したがimqX210q.hexど同一)

isihxta.exe
ITQY420.TXT 解説文書(テキスト)
hpqx420.hex ファームウエア
hpqy420.hex (cmpで比較したがhpqx420.hexど同一)
itqx420.hex (cmpで比較したがhpqx420.hexど同一)
itqy420.hex (cmpで比較したがhpqx420.hexど同一)

これらをすべてDOS領域に展開し、
展開したディレクトリで FLASHPRO.EXE を起動する。
英語版のプログラムが立ち上がるため、日本語DOSを利用してはいけない。
(このために DOS, Linux のマルチブート環境を構築しておくと便利。
実験環境は DR-DOS 7.02 + TurboLinux6.1 Server のマルチブート構成)

2.1. 書き換え手順

2.1.1. I/Oポート検知

FLASHPROを起動するとメニュー形式の画面が立ち上がる。

Main Menu
|Configure			|
|Select File to Program		|
|Program Firmware		|
|Communication with the port	|

最初に Communication with the port を選択し、
ユーティリティにIOポートを自動検知させる。
通信プログラムが立ち上がったらすぐに終了させるだけでよい。
通信プログラムの終了は Alt-X を同時に押す。


2.1.2. プログラムする通信ポートの設定

Main Menu から Configure を選択し、設定を確認する。

Configuration
|Active Port Multi-Tech ISI608/ISI4608/PCI
|Baud Rate 115200
|Device Type MODEMFILE
|Base Address for port 7280
|IRQ number 5
|ISI port number 1
|Server Name for MCSI
|General Name for MCSI
|Specific Name for MCSI

Active Port, Baud Rate, Device Type は変更する必要がない。
*** Name for MCSI は設定しない。

Base Address for port は、通信プログラムによって認識されたI/Oポートである。

IRQ number は自動認識されないので、
このボードにPCIが割り当てたIRQを手動で設定する。
この割り込み番号については、BIOSで検査するか、DOS版のPCI情報取得プログラム等
を利用する必要がある。
(実際にはfirmwareの書き込みには割り込みを利用しないため、
設定しなくともかまわないが、付属の通信プログラムによるチェックができなくなる)

ISI port number はプログラムするデバイスの通信ポート番号である。
ISIHP-2S の場合、TA が 2つ、モデムが 4 つ独立で搭載されている。

BRI-ch1  MODEM1 com5
TA  com1,com2
MODEM2  com6
BRI-ch2  MODEM3  com7
TA  com3,com4
MODEM4  com8

TAの場合ファームウエアの書き換えは com1 に対して行えば com2 は共通、
com3 に対して行えば com4 は共通に設定される。
モデムはそれぞれ独立なので、com5,6,7,8 のすべてに書き込む必要がある。

これから ch1 の TA に対してプログラムするなら 1 を、
ch2 の MODEM4 に対してプログラムするなら 8 を選択することになる。

 

2.1.3. プログラムするファームウエアの設定

Main Menu から Select File to Program を選択し、ファームウエアを選ぶ。

File Menu
|IMQY210Q.HEX
|IMQX210Q.HEX
|HPQX420.HEX
|HPQY420.HEX
|...

拡張子が .HEX であるものがリストされるので、書き込むものを選ぶ。
2. でリストした通りそれぞれのファームウエアファイルは同一なので、
TAの場合 HPQX420.HEX, モデムの場合 IMQX210Q.HEX を選択すればよい。

このユーティリティは書き込む対象が TA, MODEM であるということを認識しない。
選択された通信ポートに選択されたファームウエアを単に書き込む。
つまりTAに対してモデムのファームウエアの書き込みをしてもエラーにならない。
もしやってしまっても、かきなおせば問題ないが、
対象通信ポートとファームウエアの関係を確認して選択すること。
間違えた場合は対象通信ポートは反応しなくなる。

2.1.4. プログラムする

メインメニューから Program Firmware を選択すると、
ここまでに設定した内容でファームウエアの書き込みが開始される。

2.1.2 - 2.1.5 までの動作を必要数分繰り返せば作業は終了となる。
先にHPQX420.HEXを選択して通信ポート1,3 へ書き込み、
次にIMQX210Q.HEXを選択して通信ポート5,6,7,8 へ書き込むとよい。

2.1.5. 確認する

書き込みが終了したら、2.1.1 で行った通信プログラムを起動すると、
書き込み終了の確認ができる。

AT コマンドを発行し、バージョン確認をすればよい。
TA の場合 ATI1, モデムの場合 ATI3 でバージョン確認ができる。


3. Linuxドライバのインストール

3.1. ドライバのインストール

基本的にはドライバに付属のインストールスクリプトを起動すれば
自動的にインストールされる。

但し、TurboLinux 6 Server では、gcc が2.95.xであり、
このままではコンパイルに失敗する。
gcc 2.7.2.3 のコンパチブルパッケージをインストールし、
その互換モードでコンパイルする必要がある。

取得したドライバを適当ナディレクトリに展開し、
コンパチブルパッケージのインストールが確認できたら、
Makefile に次のものを追加する。

------
TARGET = isicom

GCCVER=2.7.2.3 <--- 追加

ifdef verinfo
CFLAGS = -O4 -DMODULE -D__KERNEL__ -DMODVERSIONS \
-fomit-frame-pointer -Wall -V$(GCCVER) <--- -V フラグを追加
else
CFLAGS = -O4 -DMODULE -D__KERNEL__ \
-fomit-frame-pointer -Wall -V$(GCCVER) <--- -V フラグを追加
endif

------

変更後、sh Install とすればインストールは終了する。
作業は root 権限で行う。

3.2. インストール後の起動設定

インストール後、/usr/local/ISICOM というディレクトリが作成され、
その中に ISICOMStart というスクリプトが作成されている。
これを起動すればドライバは有効になる。

ブート時に自動起動を行いたい場合は、
/etc/rc.d/init.d に isicom という名前で次のようなファイルを作成し、
/etc/rc.d/rc3.d に S99isicom などにリンクしておけばよい。

---- /etc/rc.d/init.d/isicom
ISICOMStart=/usr/local/ISICOM/ISICOMStart

case "$1" in
start)
echo "Initializing ISICOM Interface"
sh $ISICOMStart
;;
*)
echo "Usage: isicom {start}"
exit 1
esac

exit 0
---- /etc/rc.d/init.d/isicom

付属マニュアルにもあるが、ISIHP-2S が利用するデバイスファイルは、

/dev/ttyM1a    ch1    TA      (com1)
/dev/ttyM1b    ch1    TA      (com2)
/dev/ttyM1c    ch2    TA      (com3)
/dev/ttyM1d    ch2    TA      (com4)
/dev/ttyM1e    ch1    MODEM1      (com5)
/dev/ttyM1f    ch1    MODEM2      (com6)
/dev/ttyM1g    ch2    MODEM3      (com7)
/dev/ttyM1h    ch2    MODEM4      (com8)

となる。


4. ATコマンドによる設定

ISIHP-2S のデフォルト状態では、日本のISDN規格にはなっていないので変更する。
ここでの変更は Linux 上から kermit を利用しているが、
通信プログラムであればなんでも構わない。

4.1. TA の設定

BRI両チャネルについて同様に行う。
簡易設定メニューがファームウエア上にあるので、それを利用する。

コマンドは at@config で、コマンドすると次のような簡易メニューが表示される。

-----
at
OK
at@config

MultiTech Systems, Inc. ConfigMenu
Copyright 1997-2000 ISIHI-TA
Main Menu
<1> Network Configuration
<2> Call Control Configuration
<3> Data Protocols
<4> Stored Numbers
<5> Port Control Configuration
 Help
Enter -X- to exit from ConfigMenu

Menu Item>1
-----

<1> Netwark Configuration を選択する。
次のようなメニューが表示される。

-----
MultiTech Systems, Inc. ConfigMenu
Copyright 1997-2000 ISIHI-TA
Network Configuration
<1> Network Switch Type NET3
<2> Data SPID [empty]
<3> Voice SPID [empty]
<4> Data DN/MSN 1 [empty]
<5> Data DN/MSN 2 [empty]
<6> Modem DN/MSN 1 [empty]
<7> Modem DN/MSN 2 [empty]
<8> Data TEI 81 (Network-Assigned)
<9> Voice TEI AUTO_TEI
Enter -X- to exit from ConfigMenu
Enter -M- to return to the main menu

Menu Item>1
-----

この場合現在選択されているのは NET3 という国際規格である。

<1> Network Switch Type を選択する。
次のようなメニューが表示される。

-----
Current Switch Type: INS64 (u-law)
Switch Type Choices:
1) NET3
2) VN4
3) 1TR6
4) US NI-1
5) AT&T 5ESS
6) DMS-100
7) INS64

Enter Choice <#(1-7)>: 7
-----

日本の規格は INS64 で表されているので、7 を入力する。
入力すると (INS64) と表示されるので、そのままリターンを入力する。

-----
Enter Choice <#(1-7)>: 7 (INS64)
-----

これでISDNの規格が日本のものに設定される。
確認画面として次のものが表示される。

-----
MultiTech Systems, Inc. ConfigMenu
Copyright 1997-2000 ISIHI-TA

Network Configuration

<1> Network Switch Type INS64 (u-law)
<2> Data SPID [empty]
<3> Voice SPID [empty]
<4> Data DN/MSN 1 [empty]
<5> Data DN/MSN 2 [empty]
<6> Modem DN/MSN 1 [empty]
<7> Modem DN/MSN 2 [empty]
<8> Data TEI 81 (Network-Assigned)
<9> Voice TEI AUTO_TEI




Enter -X- to exit from ConfigMenu
Enter -M- to return to the main menu

Menu Item> X

-----

<8> Data TEI は回線が接続されている状態であれば局から自動付与される識別番号
である。規格をINS64に設定して再起動すれば設定されるものなので、
この時点では設定されている必要はない。

設定終了後、保存するために X を入力する。
保存するかを尋ねられるので y を入力する。

-----
Exit from ConfigMenu

Save current configuration? 
Saving configuration...save complete.
OK

-----

これで TA の設定は日本の規格に合ったものとなる。

自動応答等の一般的な AT コマンドについては
配布文書にある AT コマンドマニュアルを参照して設定する。

これを両チャネルについて行う。

4.2. モデムの設定

デジタルモデムの音声コーディングを変更する必要がある。

デフォルトでは A-law になっているが、一般のアナログモデムと通信するには
mu-law に変更する必要がある。

これは S108 レジスタにより操作できる。

S108    = 0    mu-law
    = 1    A-law (default)
-----
at
OK
ats108?
001

OK
ats108=1
OK
ats108?
000

OK
at&w
OK
-----

自動応答等の一般的な AT コマンドについては
配布文書にある AT コマンドマニュアルを参照して設定する。

これをすべてのモデムチャネル( ttyM1e,f,g,h )について行う。