Linux Driver Setup Guide for REX-PCI31/L, REX-PCI33 for Linux kernel 2.4.x 07/June/2001 RATOC Systems,Inc. ---------------------------------------------------------------- ■はじめに 本ドキュメントでは RedHat7.1J 環境での Setup手順を例に説明して いきます。 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 ] には、ディストリビューション別に作成されたドライバ モジュールが格納されています。 ■ RedHat 7.1J でのREX-PCI31用ドライバ登録手順 【 Step1 】ドライバソースファイルのコピー ドライバソースファイルを SCSI用ドライバモジュールのソースが 入ったディレクトリへコピーします。 # cd /usr/src/linux-2.4.2/drivers/scsi # cp /root/pci31_33/src/* . inic850.c, inic850.h, i850scsi.c, i850scsi.h の4つのファイルが コピーされます。 【 Step2 】Makefile の編集 以下を追加します。 list-multi に inic850w.o を追加します。 list-multi := scsi_mod.o initio.o a100u2w.o inic850w.o ターゲットの記述を追加 obj-$(CONFIG_SCSI_INIC850) += inic850w.o オブジェクトファイルの記述を追加 inic850w-objs := inic850.o i850scsi.o inic850w.o : $(inic850w-objs) $(LD) -r -o $@ $(inic850w-objs) samples/2.4.x の Makefile を参照してください。 【 Step3 】make menuconfig 用定義ファイル (Config.in) の編集 driverse/scsi のディレクトリへ移動します。 # cd /usr/src/linux-2.4.2/drivers/scsi inic850w.o が Kernel に組み込まれるように以下を追加します。 dep_tristate 'Initio/RATOC INIC-850 chip support' CONFIG_SCSI_INIC850 $CONFIG_SCSI $CONFIG_PCI samples/2.4.x の Config.in を参照してください。 【 Step4 】kernel の再構築 (No.1) カーネル作成のためのディレクトリへ移動します。 # cd /usr/src/linux-2.4.2 # make mrproper # make menuconfig [ Linux kernel v2.4.1 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回押して、先頭の < > を へ変更して module に設定します。 [ Exit ] を押して画面を戻って行くと最後に [ Do you wish to save your new kernel configuration ? ] というの確認画面が表示されるので、 を選択して menuconfig を終了します。 【 Step5 】kernel の再構築 (No.2) # make dep # make bzImage # make modules # make modules_install 以上で REX-PCI31用ドライバモジュールおよびそれを組み込んだ Kernel が作成されます。 作成されたモジュール (inic850w.o) は、 /lib/modules/2.4.2/build/drivers/scsi へコピーされます。 【 Step6 】REX-PCI31用 kernel への変更 作成した kernel (bzImage) が正常に起動するか確認してください。 LILO へ作成した kernel を追加して、ブートで選択してください。 kernel 2.4.x では、先に kernel を変更しないとモジュールのロード時に 以下のエラーが表示されます。 unresolved symbol __global__cli unresolved symbol __global__save_flags unresolved symbol __global__restore_flags 【 Step7 】 REX-PCI31用ドライバ起動の確認 ( module ) モジュールの起動を確認します。 # insmod /lib/modules/2.4.2/build/drivers/scsi/inic850w.o 正常に起動すると以下のメッセージが表示されます。 inic850: Total Adapters=1 scsi0: INIC-850 chip SCSI device driver; Revision: 0.xx scsi: 1 host scsi: detected total 【 Step8 】REX-PCI31用ドライバ起動の確認 ( kernel ) ブート中の画面でREX-PCI31用のドライバが起動することを確認します。 inic850: Total Adapters=1 scsi0: INIC-850 chip SCSI device driver; Revision: 0.xx scsi: 1 host scsi: detected total 正常に起動していることが確認されたら、標準で起動する Kernel に 設定してください。 /END