2001年3月16日

REX‑CB32のLinuxでの動作について
ラトックシステム株式会社

はじめに
本ドキュメントでは、Linux 上で REX‑CB32 を動作させるための情報を提供しています。
REX‑CB32用のLinuxドライバは、現在のLinuxパッケージおよびREX‑CB32の製品パッケージには含まれておりません。
2000年7月28日より、ラトックシステムのホームページからREX‑CB32のLinux用ドライバがダウンロード可能になっており、以下の４つの作業を行ってLinux上でREX‑CB32を動作させることができます。
１． ファイルのダウンロード
２． ダウンロードしたファイルの解凍
３． ドライバモジュールの作成
４． モジュールのインストール
これらの作業を行うにあたって、Linuxでのモジュールの開発環境がセットアップされている必要があります。セットアップ方法については、パッケージの販売元（ディストリビュータ）にお問い合わせください。
ここでの説明では、本ドキュメントでは、RedHat 6.1 での Setup手順とRedHat7.0 をKernel 2.4.1 にアップデートした環境での Setup手順を例に説明していきます。
各環境での Kernel および PCMCIA‑CS の Version は以下となっています。
RedHat 6.1
Kernel version 2.2.12
PCMCIA‑CS version 3.0.14
RedHat 7.0 へ Kernel 2.4.1 にアップデート
Kernel version 2.4.1
PCMCIA‑CS version 3.1.22
また、rootユーザでログインしてすべての作業を行ってください。

１．ファイルのダウンロード
最初に、弊社ホームページ（www.rexpccard.co.jp）よりREX‑CB32のLinux用ドライバを入手してください。任意のディレクトリにダウンロードしたファイルは、cb32̲cb.tar.gz という名前になります。

２．ファイルの解凍
ファイルがダウンロードできたら、rootユーザでログインして以下の手順でファイルを解凍します。
# gunzip cb32̲cb.tar.gz# tar xvf cb32̲cb.tar
APH_CB32_Linux_010316 (1/6)

[ src ] にはドライバモジュールのソースファイルが格納されています。
[ lib ] にはドライバ作成時にリンクするファイルが格納されています。
[ samples ] には、ドライバモジュールを作成するために編集する各種ファイルの記述サンプルが格納されています。
このなかの [ 2.2.x ] にはkernel 2.2.x用が、[ 2.4.1 ] にはkernel2.4.1用の記述サンプルが格納されています。
[ modules ] には、ディストリビューション別に作成されたドライバモジュールが格納されています。

３．RedHat6.1 での REX-CB32 用ドライバモジュールの作成(1) ドライバソースファイルのコピー
ドライバソースファイルを PCMCIA用Clientドライバのソースが入ったディレクトリ（通常は、pcmcia‑csのclientsディレクトリ）へコピーします。
例えば、解凍したソースファイルがディレクトリ /root/cb32 にあるとしたら以下のコマンドを入力します。
# cd /usr/src/linux‑2.2.12/pcmcia‑cs‑3.0.14/clients# cp /root/cb32/src/* .
# cp /root/cb32/lib/* .
cb32i850.c, cb32i850.h, cb32scsi.c, cb32scsi.h, load̲fw.o の５つのファイルがコピーされます。
(2) Makefile の編集
make で cb32̲cb をコンパイルするため、以下の7行を clientsディレクト
リのMakefile へ追加します。
cb32̲cb.o: cb32i850.c cb32scsi.c cb32i850.h cb32scsi.h$(CC) ‑MD ‑c $(XFLAGS) $(CPPFLAGS) I$(LINUX) cb32i850.c ‑o cb32i850.o@mkdir ‑p .depfiles ; mv cb32i850.d .depfiles$(CC) ‑MD ‑c $(XFLAGS) $(CPPFLAGS) I$(LINUX) cb32scsi.c ‑o cb32scsi.o@mkdir ‑p .depfiles ; mv cb32scsi.d .depfiles$(LD) r o $@ cb32i850.o cb32scsi.o load̲fw.o
rm ‑f cb32i850.o cb32scsi.o ; chmod x $@samples の Makefile を参照してください。
(3) proc̲fs.h の編集
include/linux のディレクトリへ移動します。
# cd /usr/src/linux‑2.2.12/include/linux
Proc̲fs.h ファイルを編集して、[ PROC̲SCSI̲INIA100, ] の次の行に[ PROC̲SCSI̲CB32, ] と記述した行を挿入します。
samples の proc̲fs.h を参照してください。
さらに、/usr/include/linux にも proc̲fs.h があるので同様の修正を行います。
APH_CB32_Linux_010316 (2/6)

(4) make の実行
make を実行して cb32̲cb をコンパイルします。
# make cb32̲cb.o(注意) 以下のエラー表示の場合
Makefile:8: ../config.mk:No such file or directory
make: *** No rule to make target '../config.mk'. Stop.
１つ上の階層へ移動し、「make config」を実行すると config.mk が作成されます。
再度、clients ディレクトリへ移動し make を実行してください。
##
#

cd ..
make config
cd clients

４．RedHat6.1 での REX-CB32 用ドライバモジュールのインストール(1) ドライバモジュールファイル (cb32̲cb.o) のコピー作成された module (cb32̲cb.o) を PCMCIA関連の module が格納されているディレクトリにコピーします。
# cpcb32̲cb.o/lib/modules/2.2.12‑32/pcmcia/.

(2) PCMCIA のデータベース (/etc/pcmcia/config) の編集
REX‑CB32 を認識させて module がロードされるように以下の5行を追加します。
device "cb32̲cb"
class "scsi" module "cb̲enabler", "cb32̲cb"
card "RATOC CardBus UltraWideSCSI CB32"
version "RATOC Systems,Inc.", "UltraWIDE SCSI CB32"
bind "cb32̲cb"
samples の config を参照してください。
(3) システムの再起動更新した情報を有効にするため、システムを再起動します。
# reboot
以上でドライバの作成とインストールは終了です。

APH_CB32_Linux_010316 (3/6)

５．RedHat6.1 での REX‑CB32 用ドライバ起動の確認
pcmciaのモジュールが起動している状態でカードを装着すると、ピポッという認識音のあと画面に以下のメッセージが表示されます。
scsi0: RATOC CB32 SCSI device driver : Revision: x.xx
scsi : 1 host.
PCMCIA のデータベース (/etc/pcmcia/config) が間違っていたり、カードが正常に認識されない場合は、ブーという音がなります。
/var/log/messages にエラー内容が表示されるので確認してください。

6．RedHat7.0 + kernel2.4.1 での REX-CB32 用ドライバモジュールの作
成(1) ドライバソースファイルのコピー
scsi/pcmcia のディレクトリへ移動します。

# cd /usr/src/linux‑2.4.1/drivers/scsi/pcmcia
ドライバソースファイルとオブジェクトを PCMCIA用Clientドライバのソースが入ったディレクトリへコピーします。

# cp /root/cb32/src/* .
# cp /root/cb32/lib/* .
cb32i850.c, cb32i850.h, cb32scsi.c, cb32scsi.h, load_fw.o の５つのファイルがコピーされます。

(2) Makefile の編集
make で cb32_cb をコンパイルするため Makefile を編集します。
ターゲットの記述を追加します。

obj‑$(CONFIG̲PCMCIA̲CB32̲CB) += cb32̲cb.olist-multi に cb32_cb.o を追加します。
list‑multi := qlogic̲cs.o fdomain̲cs.o aha152x̲cs.o apa1480̲cb.o cb32̲cb.o
cb32用のオブジェクトファイルの記述を追加します。

cb32̲cb‑objs := cb32i850.o cb32scsi.o load̲fw.ocb32̲cb‑objs : $(cb32̲cb‑objs)$(LD) ‑r ‑o $@ $(cb32̲cb‑objs)
samples/2.4.1 の Makefile を参照してください。

APH_CB32_Linux_010316 (4/6)

(3)Config.in の編集
dep_tristate ' Adaptec APA1480 .... の次へ以下を追加します。

'RATOC CB32 CardBus support' CONFIG̲PCMCIA̲CB32̲CB m
if [ "$CONFIG_PCMCIA_QLOGIC"... "$CONFIG_PCMCIA_APA1480" ="y" ] の中に以下を追加します。

"$CONFIG̲PCMCIA̲CB32̲CB"="y" ‑osamples/2.4.1 の Config.in を参照してください。

(4) kernel の再構築
(4-1) menuconfig の実行# cd /usr/src/linux‑2.4.1# make manuconfig[ Linux kernel vx.x.x Configuration ... ]という画面が起動します。
MainMenuから [SCSI Support -> ] を選択します。
SCSI Support から [PCMCIA SCSI adapter support] を選択します。
[ < > PCMCIA SCSI adapter support ] へカーソルを移動させます。
スペースバーを押して、先頭の < > を <*> へ変更して built-in に設定します。さらに、[ < > RATOC CB32 CardBus support ] へカーソルを移動させます。スペースバーを押して、先頭の < > を <M> へ変更します。
[ Exit ]を押して画面を戻って行くと最後に[ Do you wish to save your new
kernel configuration ? ]という確認画面が表示されるので、<yes> を選択して menuconfig を終了します。
(4-2) module の作成# make dep# make modules# make modules̲install
作成された module (cb32_cb.o) が PCMCIA関連の module が格納されているディレクトリ(/lib/modules/2.4.1/pcmcia)にコピーされます。

(5) PCMCIA のデータベース (/etc/pcmcia/config) の編集
REX-CB32 を認識させて module がロードされるように以下の5行を追加します。

device "cb32̲cb"
class "scsi" module "cb̲enabler", "cb32̲cb"
card "RATOC CardBus UltraWideSCSI CB32"
version "RATOC Systems,Inc.", "UltraWIDE SCSI CB32"
bind "cb32̲cb"
samples の config を参照してください。

(6) Restart PC
更新した情報を有効にするため、システムを再起動します。

# reboot
APH_CB32_Linux_010316 (5/6)

7．REX-CB32 用ドライバ起動の確認
pcmciaのモジュールが起動している状態でカードを装着すると、ピポッという認識音のあと画面に以下のメッセージが表示されます。

scsi0: RATOC CB32 SCSI device driver : Revision: x.xx
scsi: 1 host
PCMCIA のデータベース(/etc/pcmcia/config)が間違っていたり。カードが正常に認識されない場合、ブーという音がなります。
/var/log/messages にエラー内容が表示されるので確認してください。

他の Linux パッケージについて動作確認済みパッケージ
TurboLinux Workstation 日本語版6.0
RedHat 6.2, 7.0
Kondara 1.0, 1.2
HOLON Linux 2.0 (kernel 2.2.17‑18hl14)● omoikane GNU/Linux 1.0 の場合
PCMCIA のデータベース (/etc/pcmcia/config) の編集のCard の定義部が異なります。
device "cb32̲cb"
class "scsi" module "cb̲enabler", "cb32̲cb"
card "RATOC CardBus UltraWideSCSI CB32"
manfid 0xc015, 0x0100
bind "cb32̲cb"● kondara MNU/Linux 1.1 ではドライバモジュールがロードできないため、使用できません。
● 他の Linux パッケージの情報については、弊社ホームページでご確認ください。

サポートについて本紙および弊社ホームページに記載のインストール方法のみのサポートを行います。
SCSI 機器の動作方法については、サポートを行いません。
また、各種パソコンとの Linux における検証を行っておりませんので、パソコン環境に対する動作可否についてもお答えできません。
その他ご不明な点につきましては、弊社ホームページの Linux 情報のページからメールにてお問い合わせください。
以上
APH_CB32_Linux_010316 (6/6)