Linux用 Easy Hard Ver.0.97(eh-097liJ.tgz) kernel-2.0対応パッチ 本ドキュメントは、kernel-1.3.49用として Hyunさん が公開されている eh-097liJ.tgz を、kernel-2.0 で利用するためのパッチとその利用方法を 解説するものです。 パッチ(k20p20.dif)を利用する前に eh-097liJ.tgz を入手しておいて下さい。 ※ 本ドキュメントは、eh-0.97liJ 付属の README.sjs を改変し、主に ※ modules対応と kernel-2.0以降の menuconfig に依る設定例について ※ のべていますが、README.sjs に含まれる全ての内容は反映していません。 ※ 本パッチを利用する際に``事前に必ず''README.sjsをお読みください。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Easy Hard の情報は、eh-097liJ.tgz を展開して出来る README.sjs など を御覧下さい。 ○ eh-097liJ.tgz を展開して出来る 配布物の内訳 README.sjs このファイル CABLE.sjs Easy Hard 用ケーブルの作り方を解説したドキュメント eh.c, eh.h Easy Hard ドライバのソース k13p49.dif カーネル 1.3.49 用パッチ eh_par.bmp パリティ付 EasyHard アダプタ回路図(Windows BMP 形式) README.sjs では、「概要」「動作条件」「インストール」「カスタマイズ」 「使用条件」「ひとこと」その他 の情報が記述されています。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ■ eh-097liJ.tgz の展開 Easy Hard ドライバ用のディレクトリを作成します。 # cd /usr/src [Enter] # mkdir eh-097liJ [Enter] 作成したドライバ用のディレクトリで、eh-097liJ.tgz を展開します。 # cd /usr/src/eh-097liJ [Enter] # tar zxfv eh-097liJ.tgz [Enter] 出来上がった README.sjs には必ず目を通して下さい。 ((以下は、README.sjs と重複する記述もあります。)) ■ ドライバのインストール ドライバのソースは eh.h と eh.c という2本のファイルです。これらをイ ンストールするためにはカーネルのリメイクが必要です。ドライバはカーネル のバージョン 1.3.28〜1.3.49 の範囲に対応するように作ってありますが、そ れより新しい物でも、コンパイル時にエラーが出なければ大丈夫だと思います。 ※ ドライバは 2.0.0 と 2.0.20 でも動作を確認しています。 以下の解説は kernel-2.0.20 に基づいています。 またソースは /usr/src/linux に存在するものとします。  (1) ドライバソースをコピー eh.c, eh.h をディレクトリ /usr/src/linux/drivers/scsi にコピー します。 # cp eh.[ch] /usr/src/linux/drivers/scsi [Enter] (2) カーネルソースにパッチを当てる 本パッチデータ (k20p20.dif) を利用し patch コマンドでパッチを当てます。 # cd /usr/src [Enter] # patch -p < eh-097liJ/k20p20.dif [Enter] なお、カーネルソースのバージョンが異なるとパッチがうまく当てられ ないことがあります。その時は k20p20.dif の内容を見て自力でパッチを 当ててください。変更の主旨を理解していただければ問題ないと思います。 ※ 例えば、最新が kernel-2.0.21 であれば、/usr/src/eh-097liJ/k20p20.dif ※ をコピーして k20p21.dif を作成し、中に記述された「2.0.20」を ※ 「2.0.21」に変更して試してみて下さい。 (3) コンパイル準備 これは通常のカーネルコンパイルと同様に、"make config" や "make menuconfig","make xconfig" などを実行し、Easy Hard ドライバを 組み込むように設定します。 ※ ここでは私が利用している"make menuconfig"に基づき説明します。 ※ また、modules 対応 にして Plug & Play で利用する事を前提としています。 ※ 新しいバージョンの kernel を作成する前に /usr/src/linux/README にも ※ 目を通しておきましょう。例えば ※ # ln -fs /usr/src/linux/include/scsi /usr/include/scsi ※ などは済んでいるものとします。 # cd /usr/src/linux [Enter] # make menuconfig [Enter] とすると以下のような画面が現れます。 Linux Kernel Configuration ─────────────────────────────────────── ┌─────────────── Main Menu ────────────────┐ │ Arrow keys navigate the menu. selects submenus --->. │ │ Highlighted letters are hotkeys. Pressing includes, excludes, │ │ modularizes features. Press to exit, for Help. │ │ Legend: [*] built-in [ ] excluded module < > module capable │ │┌───────────────────────────────────┐│ ││ Code maturity level options ---> ││ ││ Loadable module support ---> ││ ││ General setup ---> ││ ││ Floppy, IDE, and other block devices ---> ││ ││ Networking options ---> ││ ││ SCSI support ---> ││ ││ Network device support ---> ││ ││ ISDN subsystem ---> ││ ││ CD-ROM drivers (not for SCSI or IDE/ATAPI drives) ---> ││ ││ Filesystems ---> ││ │└───.(+)──────────────────────────────┘│ ├─────────────────────────────────────┤ │ < Exit > < Help > │ └─────────────────────────────────────┘ このうち、``[*] Probe all LUNs on each SCSI device''は、私が SlimSCSI で 利用している PDドライブ を PD & CD-ROM ドライブとして使用するための設定で あり、手持ちの PDドライブ は EasyHard で利用してはいません。 この画面では、各自の持つSCSI機器に合わせた設定が必要ですが Easy Hardの ドライバ設定とは関係がありません。 自分の利用したいSCSI機器の設定を終え最後の"SCSI low-level drivers --->" を < Exit > < Help > │ └─────────────────────────────────────┘ [↓]キーで画面を移動してゆくと``EasyHard SCSI support''が表示されます。 この例では、modules 対応 としたいために表示は となっていますが、 とすると再構築するカーネル自体に Easy Hard ドライバが組み込まれます。 あとは通常通り config を進めて make menuconfig を終了します。 (4) コンパイル config が済めば make するだけです。 # make dep ; make clean # make zImage ※ make zlilo などの説明は省きます。 ローダブルモジュールにする場合 (configで と答えた人) は この後、以下を実行します。 # make modules # make modules_install ※ kerneld対応 (殆どの方がそうでしょうけど...^^;) なら ※ # depmod -a `uname -r` [Enter] ※ も必要です。 ※ `uname -r` は、再構築するカーネルのバージョン番号の事です。 以上でできた新しい zImage を使って boot させてみて下さい。 ※ zlilo では不要ですが、zImage で再構築されたカーネルは、 ※ # rdev -R /usr/src/linux/arch/i386/boot/zImage 1 [Enter] ※ しておいた方が良いです。 ローダブルモジュール化した場合は、boot 後、 # insmod /lib/modules/1.3.xx/scsi/eh.o としてモジュールをロードして下さい。 ※ kerneld対応で、depmod -a していても Easy Hard はPCカードでは ※ ありませんから完全に Plug&Play できる訳ではありません。 ドライバが正常に組み込まれると boot の過程で次の様なメッセージが出力 されます。 scsi0 : EasyHard(TM) SCSI driver ver.0.97 ※ ローダブルモジュール対応では、boot の過程ではまだ EasyHard ドライバは ※ カーネルに組み込まれていません。insmod し Easy Hardドライバを組み込むと ※ dmesg コマンドの表示の最後に、私のCD-ROMドライブでは以下の表示がでます。 ※ ※ eh: detected at 0x3bc ※ scsi0 : EasyHard(TM) driver version 0.97 : detected at 0x03bc. ※ scsi : 1 host. ※ Vendor: TOSHIBA Model: CD-ROM XM-4101TA Rev: 2483 ※ Type: CD-ROM ANSI SCSI revision: 02 組込み完了後、ハードディスクや MO では、必要に応じて fdisk と mkfs (or mke2fs)を用いてファイルシステムを作成する必要があります。(fdisk の後、reboot させるのを忘れないように)。なおこの段落の意味が分からない 人は /usr/src/linux/README や FAQ 等を参照してください。 デバイスファイルはハードディスクや MO の場合、認識された装置から順に sda, sdb … となり、パーティションは sda1, sda2 などのように区別されま す。また CD-ROM は認識された装置から順に scd0, scd1 となるはずです。 マウントは次の例のように行います。 ・Minix fs の場合 mount -t minix /dev/sda1 /mnt ・Ext2 fs の場合 mount -t ext2 /dev/sda1 /mnt ・DOS fs の場合 mount -t msdos /dev/sda1 /mnt ・CD-ROM の場合 mount -rt iso9660 /dev/scd0 /mnt なお、ドライババージョン 0.97 から、ドライバ情報を proc ファイルシステ ムを通して覗くことが出来るようになりました。ドライバが組込まれた後、 # cat /proc/scsi/eh/N (N は 0, 1, 2 …) としてみて下さい。 Ver.0.97 1996/09/21 ・カーネルバージョン 2.0.0-2.0.20 で動作確認。 ------------------------------------+------------------------------------- 私は皆さんに誇りを持って申し上げます|Name: 江後田 基広 (Motohiro Egota) が、このレッスンは決して一言たりとも|E-Mail:egota_at_aquarius.bekkoame.or.jp 私の創造の産物などではありません。 | KGD00147@niftyserve.or.jp - Patrick Douglas Crispen - |http://www.bekkoame.or.jp/~egota/ PGP public fingerprint: B9 2A 24 F6 6B 6E 33 1D 7D F2 0F 8D 29 08 7C D8 ------------------------------------+-------------------------------------