まず BocaBoard を認識させるためにカーネルを修正します。残念なことに再構築の
の時に使用する configure スクリプトを実行しても認識させることができないので、
ソースを直接変更しなければなりません。
次の行を linux/drivers/char/serial.c に追加します。
#define CONFIG_BOCA  1
#define BOCA_FLAGS  ASYNC_BOOT_AUTOCONF
カードと Linux のデフォルトのアドレス設定は、0x100 です。これはこのままにして おきます。カードの IRQ を Linux のデフォルト値の 12 にします。もし IRQ を変えたいなら "BOCA_FLAGS" を設定ファイルから捜します。それは次のような感じ になります。
        { BASE_BAUD, 0x100, 12, BOCA_FLAGS },   /* ttyS16 */
        { BASE_BAUD, 0x108, 12, BOCA_FLAGS },   /* ttyS17 */
        ...
カーネルを構築したら、電源を落してカードをインストールしましょう。インストール したらフロッピーディスクにある新しいカーネルでブートします。インストール がうまくいっていれば、ttyS16 〜 ttyS32 に接続されている 16550 UARTS チップ を確認できるはずです。これでシステムは正常に立ち上がります。
おそらく、/dev にはまだこれらの回線用のデバイスは無いと思います。デバイス番号 が 16 から 32 までであることをお忘れなきように。ソースコードを見れば理由がわ かります。 他のカードのサポートのためにこれより小さい番号が使用されているのです。 やり方さえわかれば、これらのデバイスをつくることは簡単です。 発信のための定義の入力はこのようになります。
mknod /dev/cuaxx c 4 N
n = 64 + <回線番号>。"C" はこのデバイスがキャラクタ型であることを意味 します。 例えば、初めの 2 回線を発信用に定義するには次のように入力します。
    mknod /dev/cua16 c 4 80
    mknod /dev/cua17 c 4 81
    ...
    mknod /dev/ttySxx c 5 n
    mknod /dev/ttyS16 c 5 80
    mknod /dev/ttyS17 c 5 81
      ...
上記の設定を終えたら、標準の ttySx の設定と同じ方法で inittab ファイルに設定 を追加できます。そうすればモデムやターミナルが使えるようになっているはずです。
問題が起こったら、それは Boca ボードとデュアル IDE コントローラの衝突による ものかもしれません。 Kevin Traas 氏から寄せられた情報を次に挙げておきます。
カーネルはボードを認識していますか? 認識していればブート中に 16 個全ての ポートの ttySxx、I/Oポート、IRQが表示されるはずです。あわせて、setserial -bg ttyS*を実行すると、システムの*すべての* ポートが表示されるはずです。訳註: 正しくはsetserial -bg /dev/ttyS* です。
デフォルトでは BB2016 で使用する IOポートは 0100 〜 017f になっています。 このことが、 2 つの IDE コントローラをもつシステムで問題を起こします。2 番目のコントローラである ide1 は 0170 〜 0177 を使用していますので、先ほど のアドレスと重複してしまいます。 これは非常に問題です!
私の場合は IO の範囲を 0200 〜 027f にして解決しました。このアドレスの 範囲では全く衝突は起きていません。しかしこれは私の環境の場合なので、ご自分 のシステムで確認されたほうがよいと思います。(`cat /proc/ioports` を実行して みてください。 また `cat /proc/interrupts` として IRQ12 が使われていないことも確認したほう がよろしいでしょう)。
IO ポートの範囲が重なっておらず、また IRQ も使われていないなら、BB2016 の ジャンパを変更して、/usr/src/linux/drivers/char/serial.c を新しい設定に 合わせて書き換える必要があります。その後カーネルを再構築してインストールを 行ってください。