Linux Driver Setup Guide for REX-PCI31/L, REX-PCI33 for Linux kernel 2.2.x 15/Mar./2001 RATOC Systems,Inc. ---------------------------------------------------------------- ■はじめに 本ドキュメントでは TurboLinux 4.5 (kernel 2.2.13)での Setup手順と を例に説明していきます。 kernel 2.4.x の場合は、README-J2-pci31_33をご覧ください。 REX-PCI31/L および REX-PCI33 は、ともに Initio製のSCSIコントローラ INIC-850 を搭載しています。 Linux 環境で REX-PCI31およびREX-PCI33を使用する場合、下記の手順で INIC-850 chip 用のドライバをコンパイルして登録する必要があります。 あらかじめ ROOT ユーザでログインしてください。 ここでは、/root ディレクトリにダウンロードしたファイルが解凍され ていることを前提に説明しています。 ファイルを解凍すると、[ pci31_33 ] というディレクトリの下に [ src ] [ samples] [ modules ] というディレクトリができます。 [ src ] にはドライバモジュールのソースファイルが格納されています。 [ samples ] にはドライバモジュールを作成するために編集する各種 ファイルの記述サンプルが格納されています。 [ modules ] には、ディストリビューション別に作成されたドライバ モジュールが格納されています。 ■ REX-PCI31用ドライバ登録手順 【 Step1 】ドライバソースファイルのコピー ドライバソースファイルを SCSI用ドライバモジュールのソースが 入ったディレクトリへコピーします。 # cd /usr/src/linux-2.2.13/drivers/scsi # cp /root/pci31_33/src/* . inic850.c, inic850.h, i850scsi.c, i850scsi.h の4つのファイルが コピーされます。 【 Step2 】hosts.c の編集 各ホストアダプタ用にヘッダファイルをインクルードしている箇所へ 以下の3行を挿入します。 #ifdef CONFIG_SCSI_INIC850 #include "inic850.h" #endif static Scsi_Host_Template builtin_scsi_hosts[] の中へ 以下の3行を挿入します。 #ifdef CONFIG_SCSI_INIC850 INIC850, #endif samples/2.2.x の hosts.c を参照してください。 【 Step3 】Makefile の編集 以下の7行を挿入します。 ifeq ($(CONFIG_SCSI_INIC850), y) L_OBJS += inic850w.o else ifeq ($(CONFIG_SCSI_INIC850), m) M_OBJS += inic850w.o endif endif ドライバモジュールをコンパイルするための以下の5行を追加します。 inic850w.o: inic850.c i850scsi.c inic850.h i850scsi.h $(CC) $(CFLAGS) -c inic850.c -o inic850.o $(CC) $(CFLAGS) -c i850scsi.c -o i850scsi.o $(LD) -r -o inic850w.o inic850.o i850scsi.o rm -f inic850.o i850scsi.o samples/2.2.x の Makefile を参照してください。 【 Step4 】make menuconfig 用定義ファイル (Config.in) の編集 driverse/scsi のディレクトリへ移動します。 # cd /usr/src/linux-2.2.13/drivers/scsi inic850w.o が Kernel に組み込まれるように以下を追加します。 dep_tristate 'Initio/RATOC INIC-850 chip support' CONFIG_SCSI_INIC850 $CONFIG_SCSI samples/2.2.x の Config.in を参照してください。 【 Step5 】proc_fs.h の編集 include/linux のディレクトリへ移動します。 # cd /usr/src/linux-2.2.13/include/linux 「 PROC_SCSI_INIA100 」の次の行に「 PROC_SCSI_INIC850, 」 と記述した行を挿入します。 samples/2.2.x の proc_fs.h を参照してください。 さらに、/usr/include/linux にも proc_fs.h があるので同様の修正を行います。 【 Step6 】kernel の再構築 (No.1) カーネル作成のためのディレクトリへ移動します。 # cd /usr/src/linux-2.2.13 # make mrproper # make menuconfig [ Linux kernel v2.2.13 Configuration ...] という画面が起動します。 MainMenu から [ SCSI Support -> ] を選択します。 SCSI Support から [ SCSI low-level drivers ] を選択します。 SCSI low-level drivers で SCSI Host adapter名の一覧が表示されるので [ < > Initio/RATOC INIC-850 chip support (NEW) ] へカーソルを移動させます。 スペースバーを2回押して、先頭の < > を へ変更して modules に設定します。 [ Exit ] を押して画面を戻って行くと最後に [ Do you wish to save your new kernel configuration ? ] というの確認画面が表示されるので、 を選択して menuconfig を終了します。 【 Step7 】kernel の再構築 (No.2) # make dep # make bzImage # make modules # make modules_install 以上で REX-PCI31用ドライバモジュールおよびそれを組み込んだ Kernel が作成されます。 【 Step8 】REX-PCI31用ドライバ起動の確認 ( module ) 作成されたモジュール inic850w.o をモジュール用ディレクトリへ コピーします # cp drivers/scsi/inic850w.o /lib/modules/2.2.13/scsi/. モジュールの起動を確認します。 # insmod /lib/modules/2.2.13/scsi/inic850w.o 正常に起動すると以下のメッセージが表示されます。 inic850: Total Adapters=1 scsi0: INIC-850 chip SCSI device driver; Revision: 0.80 scsi: 1 host scsi: detected total 【 Step9 】REX-PCI31用ドライバ起動の確認 ( kernel ) 作成した kernel (bzImage) が正常に起動するか確認してください。 LILO へ作成した kernel を追加して、ブートで選択してください。 ブート中の画面でREX-PCI31用のドライバが起動することを確認します。 inic850: Total Adapters=1 scsi0: INIC-850 chip SCSI device driver; Revision: 0.80 scsi: 1 host scsi: detected total 正常に起動していることが確認されたら、標準で起動する Kernel に 設定してください。 /END