これは、カーネルレベルのドライバではありません。プログラムはユーザ領域で 動作し、SCSI ハードウェア(スキャナ)と通信するためにカーネルの中の汎用 SCSI ドライバを使用します。従ってこれを走らすためには、カーネルに汎用 SCSI ドラ イバサポートをコンパイルする必要があります。(当然 SCSI ホストアダプタ用の ローレベル SCSI ドライバも必要です) [1]
スキャナがどのデバイスにマップされているかを知っておく必要があります。 (これは通常、/dev/sga, /dev/sgb ... /dev/sgh の どれかですが、/dev/sg0, /dev/sg1 ... のように呼ぶ マシンも存在します) SCSI デバイスはブート時に動的に割り当てられ、若い方から順に ID が使われます。 スキャナが SCSI チェーンの中で唯一のデバイスならば、常に /dev/sga であり、 どんな ID がセットされていても関係ありません。 スキャナデバイスに symlink を作るのは良い考えです。 (上記の例では /dev/sga に /dev/scanner のリンクを張る ) こうすれば、デバイスのマッピングを変更(これはスキャナより若い ID の SCSI デバイスを追加接続した場合に起きます)したときに mtekscan を再コンパイルする 必要はなく単にリンクを張り直すだけで済みます。 これに付随する情報がこれより後の「SCSI の設定」の項にあるのでご覧下さい。
コンパイルする前に、config.h ファイルを見て下さい。 DEFAULT_DEVICE に正しい汎用 SCSI デバイス (あるいは シンボルリンクを張った場合は symlink) をセットして下さい。 あなたが ScanMaker E6 をお持ちなら、たぶん他に設定は必要ないでしょう。 (デフォルトのスキャンニングオプションを変更したいと思うでしょうが) しかしこれ以外の MicroTek 製スキャナでこのドライバを試してみたい場合は、 最大解像度の値の変更と、たぶん FIX_FRAMESIZE を 0 に セットする必要があるで しょう(スキャンした画像が間違ったサイズ、あるいは解像度だったらこの2つを 試して下さい) これより後の「他の MicroTek 製スキャナで mtekscan を使うには」の項を参照。 [2]
config.h file の確認が終ったら、(必要に応じて) Makefile の先頭の設定を編集します。インクルードファイル の sg.h にある汎用ドライバへのパスが正しいこと を確認して下さい。これは、古いカーネルの場合はたぶん /usr/src/linux/drivers/scsi/ または kernel v1.3.98 では、 /usr/src/linux/include/scsi/ です。 (カーネルのソースのパスが /usr/src/linux である場合)
新しいカーネルバージョンでは /usr/include/scsi から リンクが存在する筈ですが、もし無いときは新たにそれを作る必要があります。 この方法は、Makefile のパスの面倒な設定をする必要が ありません。これをどうやって行うのかご存知でない場合は、/usr/src/linux/README をご覧下さい。 [3]
最後に 'make' を実行します。 mtekscan を正しく インストールしたいなら root (スーパーユーザ)で ' make install' を実行します。 これは実行ファイルと manpage を指定した場所にコピーします。 [4]
それでは、スキャナデバイスがリード/ライト可能か、スキャナが接続されブート時 に起動されるか(これはブートフェーズの期間中に検出されていなければならない)を 確認して下さい。 スキャナの応答を確認するために 'mtekscan -I' を実行して 下さい。これらの点がすべてうまくいったら、これでスキャンできる筈です。 mtekscan の多くのオプションとスキャナの設定について man ページを読んで 下さい。
[1] | 【訳注】
| ||
[2] | 【訳注】 config.h ファイルには、コメントで各機種ごとの修正方法が 書いてあるのでそれに従って変更して下さい。 私は、ScanMaker E3 用に下記のように修正しました。
| ||
[3] | 【訳注】 私の場合、カーネルは 2.0.28 ですが /usr/src/linux/include/scsi/ の下に sg.h があり、 /usr/src/mtekscan-x0.2/Makefile の先頭も SG_INCLUDE_PATH = /usr/src/linux/include/scsi/ となっているので 何もせずそのままです。 なお「新しいカーネルバージョンでは〜」以降の意味がよく分かりません。 /usr/include/ ディレクトリの下には、scsi という名前のものは無くどうしたものか?と思ったのですが、結局 何もせず先に進んだのですがちゃんとスキャナは動作しました。 | ||
[4] | 【訳注】
|