FreeBSD 4.x と 5-current での fe ドライバ

新しいバスフレームワーク(newbus)

FreeBSD 4.x では、バスフレームワークが一新されたため、本来、デバイスドライバ類は全面的な書き換えが必要になります。しかし、(fe に限らず) 必ずしもアクティブにメンテナンスされていないドライバも多いため、4.x 以降では、従来のフレームワークに基づいた ISA デバイス用のドライハを「旧バージョン互換ドライバ」としてサポートするためのメカニズム (isa_compat.c) も含まれています。

FreeBSD 4.1 での対応状況

FreeBSD 4.1 の fe ドライバは、FreeBSD 3.x のものから大きく変更されず、isa_compat.c のメカニズムを用いて、旧バージョン互換ドライバとして動作するようになっています。このため、RE2000、FMV-180 などの ISA ボードについては、従来と同じように動作します。しかし、PC カード用には互換機能が用意されず、また FreeBSD 4.x 用の PAO も用意されないため、従来 fe が対応していた PC カードは動作しなくなっています。

FreeBSD 5 での対応状況

FreeBSD 5 での状況も当初は 4.1 と大差なかったのですが、高橋さんが fe ドライバの「旧バージョン互換」のインターフェースから newbus のインターフェースへの書き換えを行ったものが、2000 年 9 月中旬の 5-current に反映されました。これ以降の -current では、FreeBSD 2 または 3 の、PAO 相当の fe 対応 PC カードが利用できるようになっています。

また、-current に行かない FreeBSD 4.x ユーザ (私だ :-) のために、-current 版と同等の FreeBSD 4.x 用のキットも作成して下さっています。 4.x ユーザも、これを利用すれば、fe 対応の PC カードを使用することができます。

FreeBSD 4.x で fe 系 PC カードを使う

FreeBSD 4.x では、以下の手順で newbus 版の fe ドライバを組み込めば、fe 系の PC カードを使用することができます。

  1. カーネルをコンパイルできる環境を用意します。
  2. 高橋さんのキットを入手し、適当なディレクトリで展開します。
  3. 展開後にできる fe というディレクトリとその内容を、/usr/src/sys/dev 配下にコピーします。(mv fe /usr/src/sys/dev とします。)
  4. パッチを適用します。/usr/src/sys に移り、展開後にできる sys.diff というファイルを、patch -p1 < ~/sys.diff のようにしてパッチします。
  5. 以下、普通に、config して make してカーネルを作り、make install します。
  6. 実際に PC カードを使う前に、/etc/defaults/pccard.conf を編集する必要があります。fe 系の PC カードのエントリはコメントアウトされていますから、行の先頭の '#' を取って、アンコメントして下さい。(行の先頭に '#' が 2 つついている行は、もともとコメントだった部分なので、コメントのままにしておきましょう。
  7. これまで PC カードを使っていなければ、pccardd が起動されるように /etc/rc.conf を適当に変更する必要もあります。また、適切な ifconfig が実行されるように指定する必要もあります。