1.3. インストールの方法

  1. ドライバは、カーネル・ローダブル・モジュールなので、明らかに最初に するべきことは `modutils' パッケージを持っていない場合はこれを入手し インストールすることです。

  2. src ディレクトリに移って logi32.h の先頭を見て下さい。 必要に応じて、またハードウェア設定に応じて定義を編集します。 IOBASE だけはディップスイッチの設定に合わせなければいけませんが、 IRQ と DMA はソフトウェアで選択可能です。 IRQ と DMA は他のハードウェアによって使われていないものを使って下さ い。(SoundBlaster がインストールされているなら DMA 1 は使われている と思います)

    設定できるものは IRQ が 2(9),3,4,5,7,9(2),11,12 で、DMA が 1 または 3 です。最新のカーネル(スタックドモジュールをサポートしている)と、 対応した modutils では、モジュールのロード時にこれらの値(と、メジ ャーデバイス番号。4)項参照 )を変更することができます。 これをどのようにするのかは、"man insmod" で 調べて下さい。 関係のある変数は logi32.c の先頭、または ドライバを常駐させた時に ksyms の出力の中で見つかります。

  3. scanner.h をどこか適当な場所( usr/local/include がお勧め)に移して 下さい。scanner.h は あなたのシステム上で "ただ一つのバージョン" で提供されているのだということをよく覚えておいて下さい。 私は、ドライバがスキャナソフトウェアではない他の scanner.h とコンパイルされた時のトラブルを沢山聞いて います。

    PINT (UNIX 用の共通スキャナインタフェース。Copyright (C) 1994 Kenneth Stailey ken@spacenet.com)のサポート下でコンパイルしたいなら Makefile-D に相当すること をイネーブルにし、<scanio.h> ファイル を他の適切な場所に移して下さい。(これは他のシステム上の /usr/[local]/include/sys にあるよう に見えるという点に注意して下さ い。だから、それをそこに置くというのは良い考えです)

    ドライバをコンパイルするには、
      make
    と入力して下さい。 モジュールを組み込むには、
      insmod logi32.o
    と入力して下さい。

    シンボルが無いとローダが文句を言ってきた時は、それらを kernel/ksyms.c に加えて下さい。 (または、もっと良いのは、そのドライバにとっては本当に古くさい カーネルをアップデートすることです...)

    kernel/ksyms.c を変更するべきだったなら、 カーネルを再コンパイル し、その変更を反映させるためにリブートする必要があります。

  4. デバイスのスペシャルファイルを作成します。
      mknod -m 444 /dev/logiscan c 26 0
    /dev/scan にシンボルリンクを張ります。
      ln -s /dev/logiscan /dev/scan
    MAKEDEV の最新バージョンは、適切なデバイスを生成することもできる はずです。「MAKEDEV を使う前に」 logi32.o が ロードされていなければ ならないことに注意して下さい。 MAKEDEV は、logitech スキャナドライ バを検出し、そこに存在するメジャーデバイスを見つけるために /proc/devices の情報を使うからです。 さらに詳しいことは、関係するドキュメントをご覧下さい。

    (注): 上記の `26' はメジャーデバイス番号です。 それが既に使われている場合(それをロードしようとする際、ド ライバは「cannot register major number:メジャー番号が登録 できません」と文句を言う)は、他の使われていない番号を選び `logi32.h' の LOGI32_SCANNER_MAJOR の定義をそれに変更して 下さい。

    新しいカーネルでは、メジャーを動的に割り付けることができます。 このようにしたい時は、定義を 0 に「セットして下さい。 但し、こうすると、ドライバをロードする度にメジャーが変わるの で、毎回デバイスのスペシャルファイルを作成する必要があるとい うことに注意して下さい。

  5. `logi32.o' をカーネルモジュールをキープする ためのどこかにコピーして下さい。

  6. 動作確認

    (s)vgalib が動作しているなら、 ./demo ディレクトリの gifscan をビルドして下さい。svgalib が無いなら、このパッケージに入っ ているスクリプト scan.sh は不要です。 だれか、あなたのために小さなスキャンプログラムを作ってくれる いい人を見つけるまでは、cat </dev/scan > ファイルのようなやり 方で満足する他ありません。(または、GIF ファイルに "blind-scan" できるようにするために gifscan から全ての vga に関するものを 取り除く必要があります) pbm ファイルに直接スキャンしたものを格納する pbmscan という新 しいパッケージがあります。これは svgalib が不要で、GIF に書き 込むよりかなり高速です。 私は PINT インタフェース用に何があるか知りません。これを使った 良いアプリケーションを教えて下さい。 (可能なら)私のドライバで動くなら