Linux Driver Setup Guide for REX-CB31 for Linux kernel 2.4.x 31/Oct./2001 RATOC Systems,Inc. ---------------------------------------------------------------- This document is written in the Japanese character. If you want to read English version, refer to README-E2-cb31. ■はじめに 本ドキュメントでは、RedHat7.1環境での Setup手順を例に説明していき ます。 kernel 2.2.x の場合は、README-J1-cb31 をご覧ください。 RedHat7.1 Kernel および PCMCIA-CS (built-in) の Version は以下と なっています。 Kernel version 2.4.2-2 PCMCIA-CS version 3.1.22 (built-in) これらの環境で REX-CB31 を使用する場合、下記の手順でREX-CB31用の ドライバをコンパイルして登録する必要があります。 あらかじめ ROOT ユーザでログインしてください。 ここでは、/root ディレクトリにダウンロードしたファイルが解凍され ていることを前提に説明しています。 ファイルを解凍すると、[cb31] というディレクトリの下に [ src ] [ samples ] というディレクトリができます。 [ src ] にはドライバモジュールのソースファイルが格納されています。 [ samples ] には、ドライバモジュールを作成するために編集する各種 ファイルの記述サンプルが格納されています。 このなかの [ 2.2.x ] にはkernel 2.2.x用が、[ 2.4.x ] にはkernel 2.4.x用の記述サンプルが格納されています。 ■ RedHat7.1 でのREX-CB31用ドライバ登録手順 【 Step1 】ドライバソースファイルのコピー scsi/pcmcia のディレクトリへ移動します。 # cd /usr/src/linux-2.4.2/drivers/scsi/pcmcia ドライバソースファイル (cb31main.c)を PCMCIA用Clientドライバ のソースが入ったディレクトリへコピーします。 # cp /root/cb31/src/* . cb31main.c, cb31main.h, cb31_asc.c, cb31_asc.h, ascmcode.c の 5つのファイルがコピーされます。 【 Step2 】Makefile の編集 make で cb31_cb をコンパイルするため Makefile を編集します。 ターゲットの記述を追加します。 obj-$(CONFIG_PCMCIA_CB31_CB) += cb31_cb.o list-multi に cb31_cb.o を追加します。 list-multi := qlogic_cs.o fdomain_cs.o aha152x_cs.o cb31_cb.o cb31用のオブジェクトファイルの記述を追加します。 cb31_cb-objs := cb31main.o ascmcode.o cb31_cb-objs : $(cb31_cb-objs) $(LD) -r -o $@ $(cb31_cb-objs) samples/2.4.2 の Makefile を参照してください。 【 Step3 】Config.in の編集 dep_tristate ' Qlogic PCMCIA support .... の次へ以下を追加します。 'RATOC CB31 CardBus support' CONFIG_PCMCIA_CB31_CB m if [ "$CONFIG_PCMCIA_QLOGIC"... "$CONFIG_PCMCIA_NINJA_SCSI" = "y" ] の中に 以下を追加します。 "$CONFIG_PCMCIA_CB31_CB"="y" = 0 samples/2.4.x の Config.in を参照してください。 【 Step4 】kernel の再構築 (1) menuconfig の実行 # cd /usr/src/linux-2.4.2 # make manuconfig [ Linux kernel vx.x.x Configuration ... ]という画面が起動します。 MainMenuから [SCSI Support -> ] を選択します。 SCSI Support から [PCMCIA SCSI adapter support] を選択します。 [ < > PCMCIA SCSI adapter support ] へカーソルを移動させます。 スペースバーを押して、先頭の < > を <*> へ変更して built-in に設定 します。さらに、[ < > RATOC CB31 CardBus support ] へカーソルを移動 させます。スペースバーを押して、先頭の < > を へ変更します。 [ Exit ]を押して画面を戻って行くと最後に[ Do you wish to save your new kernel configuration ? ]という確認画面が表示されるので、 を選択して menuconfig を終了します。 (2) module の作成 # make dep # make modules # make modules_install 作成された module (cb31_cb.o) が PCMCIA関連の module が格納 されているディレクトリ(/lib/modules/2.4.2/pcmcia)にコピーさ れます。 【 Step5 】Restart PC 更新した情報を有効にするため、システムを再起動します。 # reboot ■ REX-CB31用ドライバ起動の確認 REX-CB31 は、kernel 2.4 以降は、カーネルに新しく追加された Hotplug という 機能により認識されます。 kernel 2.2.x 以前で必要のあった /etc/pcmcia/config への cb31_cb に関する記述は必要 なくなりました。 カードを装着すると、ピポッという認識音のあと画面に以下のメッセージが表示されます。 kernel: got res[d800:d8ff] for resource 0 of PCI device 1195:0851 kernel: PCI: Failed to allocate resource 1 for PCI device 1195:0851 kernel: PCI: Failed to allocate resource 6 for PCI device 1195:0851 kernel: PCI: Enabling device 03:00.0 (0200 -> 0203) kernel: PCI: Setting latency timer of device 07:00.0 to 64 kernel: cb31_cb: Total Adapters = 1 カードが正常に認識されない場合、ブーという音がなります。 /var/log/messages にエラー内容が表示されるので確認してください。 ■ カードの取外し 今回リリースしたドライバ cb31_cb.o は、ドライバの自動アンロードをサポートしていません。 したがって、カードを取り外した後で、手動でドライバをアンロードする必要があります。 ※ Turbolinux 7 の場合のみ、ドライバは自動でアンロードされます。 (1) CB31経由でマウントしているドライブをアンマウントします。 例えば、/dev/sda をマウントしている場合は、以下のように入力します。 # umount /dev/sda (2) カードを取り外します。 (3) rmmod コマンドでドライバをアンロードします。 # rmmod cb31_cb ※ ドライバファイル名の拡張子 (.o) を指定する必要はありません。 ■他のディストリビューションの場合 Kondara MNU/Linux 2.0 RedHat 7.1 と同じ手順でREX-CB31のドライバを登録してください。 Turbolinux 7 Turbolinux 7 は、RedHat 7.1 や Kondara MNU/Linux 2.0 と異なり pcmcia が kernel に build-in されていません。したがって pcmcia を build-in した kernel を作成する必要が あります。 make menuconfig を実行して kernel の構成の設定では、pcmcia に関する以下の項目を 設定してください。 Mainmenu から [General Setup --> ] を選択します。 [ PCMCIA/CardBus support --> ] を選択します。 PCMCIA を build-in とするために < > PCMCIA/CardBus support の先頭の < > を <*> へスペースバーを押して変更します。 さらに [ ] CardBus support (NEW) へカーソルを移動させて、スペースバーを押して 先頭の [ ] を [*] へ変更して build-in に設定します。 kernel の構成を決定したら make dep ; make bzImage でカーネルをコンパイルしてく ださい。 上記手順で kernel が正常に作成されたら、lilo の設定を変更して pcmcia が build-in された kernel を起動させてください。 REX-CB31のドライバの登録自体は、RedHat 7.1 と同じ手順で行ってください。 ■ 注意事項 ・REX-CB31が機器へのアクセス途中で停止してエラーメッセージ 'cb31_abort: PCIERR' や 'cb31_reset: PCIERR' と表示する場合は、ascconf ユーティリティで PCI Burst を無効に してください。 /END