2. パラレルポートに接続する: vpo ドライバ

ZIP ドライブをパラレルポートに接続して使用するには、 カーネルに vpo ドライバが設定されている必要があります。 パラレルポート接続の ZIP ドライブはビルトインの SCSI コントローラを持っており、 vpoドライバを使用するとパラレルポートを通じて ZIP ドライブの SCSI コントローラを読み込むことができます。

vpo は標準のカーネルオプションではないため (FreeBSD 3.2 現在) デバイスを使用可能にするためにカーネルを再構築する必要があります。 カーネル再構築の詳細な手順については FreeBSD ハンドブックをご覧ください。 以下は、vpo ドライバを使用可能にするための大まかな手順です。

  1. まず、/stand/sysinstall を実行し、システムにカーネルのソースコードをインストールしてください。

  2. 次に、 vpo ドライバを含むカーネルコンフィグファイルを作ります:

    # cd /sys/i386/conf
    # cp GENERIC MYKERNEL
    

    この MYKERNEL を編集し、 ident の行を MYKERNEL に変更します。 そして vpo ドライバについて書かれた行のコメントを解除してください。

    もしパラレルポートが二つある場合、それに用いる ppc1 デバイスファイルを作るために ppc0 をコピーする必要がある場合があります。 二つ目のパラレルポートは普通 IRQ5 と I/O ポートアドレス 378 番を使用します。 カーネルコンフィグファイルに記述する必要があるのは IRQ だけです。

    もしルートのハードディスクドライブが SCSI 接続であった場合、起動ディスクの読み込み順序に誤りが生じ、 システムが ZIP ドライブから起動しようとしてしまう場合があります。 こうなったら、あなたが ZIP ディスクに FreeBSD のルートファイルシステムでも書き込まない限り、 起動には失敗するでしょう! そうした場合は、ルートのディスクを“「つなぎかえ (wire down)」”、 すなわち、カーネルに特定のデバイスを SCSI ハードディスク /dev/da0 に強制的にバインドさせる必要があります。 そうすれば、ZIP ディスクドライブは二番目の SCSI デバイス、つまり /dev/da1 としてきちんと認識されます。 SCSI ハードディスクを da0 に「つなぎかえ」するには、

    device da0
    
    の行を
    disk da0 at scbus0 target 0 unit 0
    
    に変更してください。

    その際、ハードディスクの SCSI ID に合うように 上記の行を変更する必要があるかも知れません。 たとえば、Adaptec® 15xx コントローラの載った SCSI ホストアダプタをお持ちなら、下のように scbus0 を SCSI コントローラにつなぎかえてください。

    controller scbus0
    
    controller scbus0 at aha0
    
    に変更します。

    最後に、カーネルコンフィグファイルを作成したら、 不要なドライバをすべて削除することができます。 その際には細心の注意を払う必要がありますが、 あとはコンフィグファイルの更新が成功することを信用するしかありません。 不要なドライバを削除することでカーネルのサイズを小さくすることができ、 アプリケーションに割り当てられるメモリの領域を拡大することができます。 不要なドライバを特定するために、 /var/log/messages の最後の方の行で「not found」と書かれている部分を見つけ、 それらのデバイスをコメントアウトします。 カーネルのサイズを縮小し、 読み込みを早くするために他のオプションを削ることも考えられます。 カーネル再構築の際に表示されるメッセージから、 不要なオプションに関してのさらに詳しい情報が得られます。

  3. ではカーネルを完成させましょう。

    # /usr/sbin/config MYKERNEL
    # cd ../../compile/MYKERNEL   
    # make clean depend && make all 
    install
    

カーネルが再構築されたら、再起動します。 起動が開始する前に、ZIP ドライブがパラレルポートに接続されているかどうか確認してください。 ブートメッセージの中で ZIP ドライブが vpo0 や vpo1 (これらは接続されているパラレルポートに依存する) として認識されているか確認してください。 これが ZIP ドライブのデバイスファイルです。 ここで表示される ZIP のデバイスファイルは、 もしシステムに他の SCSI ディスクがない場合は /dev/da0 となり、 SCSI ハードディスクドライブがルートデバイスとしてつなぎかえられているならば /dev/da1 となります。