1.3. インストール

これは、カーネルレベルのドライバではありません。プログラムはユーザ領域で 動作し、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 ページを読んで 下さい。

Notes

[1]

【訳注】

  • mtekscan をインストールする前に SCSI ホストアダプタの設定を済ませて おく必要があります。下記のようになっている必要があります。 これは、make config / make menuconfig / make xconfig の何れかで (make xconfig がお勧め)、次のようにして確認します。

    root でログイン
      # cd /usr/src/linux
      # make xconfig
        (SCSI support で下記のようになっていることを確認する)
          SCSI support             Y
          SCSI generic support     Y       (汎用 SCSI ドライバのサポート)
          SCSI low-level drivers   (御使用の SCSI カード用ドライバを指定)

  • 上記のようになってない場合は、そのように修正後、以下のようにして カーネルを再構築します。かなり時間がかかります。
      # make dup ; make clean
      # make zlilo
      # make modules ; make modules_install
    正常に終了したら Linux をリブートし、ブートメッセージで SCSI が組み 込まれたことを確認し、同時にデバイス名(下記参照)も確認します。 正常終了しない場合は、JF の Kernel-HOWTOSCSI-HOWTO をご覧下さい。

[2]

【訳注】

config.h ファイルには、コメントで各機種ごとの修正方法が 書いてあるのでそれに従って変更して下さい。 私は、ScanMaker E3 用に下記のように修正しました。
  #define  DEFAULT_DEVICE       "/dev/sga"   (これはデフォルトのまま)
  #define  FIX_FRAMESIZE        0
  #define  VENDOR_STRING        "        "   (8 個のスペースです)
  #define  MAX_BASE_RESOLUTION  300

[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]

【訳注】

  # make
  # make install
と入力するとデフォルトでは /usr/local/bin に実行ファイル が、/usr/local/man にマニュアルが、それぞれコピー されます。