たくさんのカードを以下に示します。このリストではベンダーをアルファベッ ト順に並べ、その中で製品識別子をアルファベット順に並べています。各製品 ID とは別に、「サポート」「準サポート」「未サポート」のいずれかを記し てあります。
「サポート」とは、そのカード用のドライバが存在し、多くの人がそれを問題 なく使っているので、信頼できると思われるという意味です。
「準サポート」は、ドライバが存在するけれど以下の項目が 1 つでも当ては
まる場合です:
(1) ドライバまたはハードウェア(あるいはその両方)がバグっぽい。そのため
に性能が悪かったり、接続に失敗したり、さらにはクラッシュさえすることが
ある。
(2) ドライバが新しいか、カードがあまり一般的でない。そのため、利用やテ
ストがほとんどできておらず、ドライバの作者にもほとんどフィードバックが
来ていない。明らかに (2) の方が (1) よりましです。またカードやドライバ
の個々の解説を見ればどちらに該当するかわかるはずです。いずれの場合にも、
make config
を実行した時に
``Prompt for development and/or incomplete code/drivers?(開発中や不完全であるコード/ドライバの設定を行うか?)''
の問いに `Y' と答えなければならないでしょう。
「未サポート」は、現在はそのカード用のドライバはないという意味です。こ れは滅多にない/一般的でないハードウェアで興味を持たれていないためか、 あるいはドライバを書くために必要なハードウェア情報をベンダーが公開して いないためでしょう。
「サポート」と「準サポート」の違いは、かなり主観的であり、ニュース グループやメーリングリストへの投稿で見られたユーザのフィードバックに基 づいている点に注意してください。(結局、一人の人間が全てのドライバを全 てのカードで全てのカーネルバージョンについてテストすることは不可能なん です!!!) したがって、「準サポート」となっているカードでもあなたの環境 で完璧に動作することはありますし(素晴らしいですね)、「サポート」となっている カードでトラブルに見舞われることもある(素晴らしくないですね)点に注意し てください。
カードのステータスの後には、Linux カーネル内で与えられているドライバ名
が示されています。これは、モジュール設定ファイル
/etc/conf.modules
内の「alias eth0 ドライバ名
」という行
で使われているドライバモジュールの名前でもあります。
使っているカードが何かわからないけれどそれが 3Com のカードだと思われる 場合、多分アセンブリナンバを見ればわかります。3Com には `Identifying 3Com Adapters By Assembly Number'(ref 24500002)という文書がありますの で、これでどのカードか明らかにすることができるでしょう。3Com からドキュ メントを得る方法は、「3Comの技術情報」を参照してください。
また、3Com はさまざまなソフトウェアを FTP サイトで提供しています:
ftp.3Com.com
ぜひ見に行ってください。
この文書を WWW ブラウザで御覧になっている方は 3Com の WWW サイトへも行っ てみましょう。
ステータス: 準サポート、ドライバ名: 3c501
この時代遅れの石器時代ものの 8 ビットカードは、狂っていて使いものにな りません。疫病神と思って避けてください。たとえ冗談であっても、このカー ドを買ってはいけません。性能は恐ろしいほど低いですし、いろいろな問題を 起こします。
まだ納得できない方のために言うと、3c501 は同時に 1 つの処理しかできま せん。 シングルパケットバッファからパケットを削除している間は、別のパ ケットを受信することができませんし、送信パケットをロードしている間はパ ケットを受信することができません。これは、個々のパケットを処理したり応 答したりするのに数十 msec かかる 8088 ベースのコンピュータにとっては十 分でしたが、近代的なネットワークは、ほとんど全ての処理毎に、すきまな くパケットを送信します。
IRQ 自動検出は動作し、DMA は用いられず、自動検出は 0x280
および
0x300
のみを探します。また、デバッグレベルは起動時の 3 番目の引き
数にセットします。
もう一度言います。3C501 は絶対に使わないことをお勧めします! IP マルチキャスト対応のカーネルを使用していてもです。マルチキャストカー ネルでは全てのマルチキャストパケットを受信する間、あなたはしば らく作業を中止する必要があるでしょう。詳細についてはソースコードの先頭 のコメントを参照してください。
ステータス: サポート、ドライバ名: 3c503 (+8390)
3c503 には「EEPROM 設定」がないので、このカードを Linux で使う前に診断 /設定プログラムは必要ありません。3c503 の共有メモリアドレスは、起動 PROM アドレスと共有されているジャンパで設定されます。これは他の ISA カー ドに慣れている人には紛らわしいでしょう。普通は、起動 PROM を持ってい なければジャンパを「無効(disable)」にしておくのが普通ですから。
これらのカードは同じバス幅を持つ WD80x3 とほぼ同じ速度が出るはずですが、 実際には若干遅いことがわかっています。これらの共有メモリイーサカードは 8390 の機能(技術者がたくさんのバグを発見しています!)では使用していな いプログラムド I/O の機能も持っています。Linux の 3c503 ドライバはプロ グラムド I/O モードの 3c503 でも動作しますが、共有メモリモードより遅く 若干信頼性に欠けます。また、プログラムド I/O モードは、ドライバ改訂時 のテストがあまり行なわれていません。MS-DOSとの互換性のために必要でなけ れば、プログラムド I/O を利用すべきではありません。
3c503 の IRQ 線はソフトウェアで設定され、EEPROM は参照しません。MS-DOS のドライバとは異なり、Linux のドライバは IRQ を自動検出することができ ます: {5,2/9,3,4} の順で調べ、最初に利用できた IRQ を使用します。IRQ は、カードが ifconfig されるごとに選択されます。(古いバージョンのドラ イバは起動時に IRQ を選択していました。) `ifconfig' における ioctl() 呼び出しは、その時に利用できる IRQ 線がなければ EAGAIN を返します。
503 使用時によく生じる問題については、 3Com のカードの問題で説明します。
このドライバをローダブルモジュールとして使用するなら、モジュール化 に特有の情報として イーサネットドライバをモジュールとして用いる場合 を参照すべきでしょう。
古い 386 ワークステーションの一部にはオンボードの 3c503 (3Com が製造し、 `Bull' といった別名で販売していました)が載っていますが、ベンダー ID は 3Com のものではないので、検出されない点に注意してください。詳しい説明 は Etherboot パッケージにあります。このパッケージは、このようなディス クレスマシンを動かすにはいずれにせよ必要です。
ステータス: 準サポート、ドライバ名: 3c505
これは Craig Southeren geoffw@extro.ucc.su.oz.au
が書いたドライバ
です。これらのカードも i82586チップ を使用しています。これらのカードに
関する情報はあまりありません。標準カーネルにドライバは含まれていますが、
アルファ版ドライバとして扱われています。
アルファ版ドライバ
に、Linux におけるアルファテスト版のイーサネットドライバの
使用に関する重要な情報があります。
また、これらのカードを使用するにあたって読んでおくべきファイルとしては、
/usr/src/linux/drivers/net/README.3c505
があります。設定を有
効/無効にできる、さまざまなオプションに関する情報が含まれています。
ステータス: 準サポート、ドライバ名: 3c507
このカードは Intel のチップの 1 つを使用しているので、ドライバの開発は Intel Ether Express ドライバの開発に密接に関係しています。ドライバは標 準カーネルに含まれていますが、アルファ版ドライバとしてです。 アルファ版ドライバに、Linux におけるアルファテ スト版のイーサネットドライバの使用に関する重要な情報があります。
ステータス: サポート、ドライバ名 3c509
このカードはかなり安価で、ISA の非バスマスタ設計としては優れた性能を持っ ています。欠点としては、もともとの 3c509 が要求する割り込み遅延が非常 に低いことです。3c509B にはこのような問題はありません。これは大きなバッ ファを持っているからです(後述)。これらのカードは ne2000 カードと似た PIO 転送を使い、したがって比較すると wd8013 のような共有メモリカードの 方がより効率的でしょう。
もともとの 3c509 は小さなパケットバッファ (全体で 4kB、受信 2kB、送信
2kB) しか持っておらず、割り込みが長時間マスクされるとドライバがパケッ
トを取りこぼしていました。この問題を最小限にするためには、IDE ディスク
転送中の割り込みのマスクを解除したり (hdparm(8)
参照)、IDE 転送を
速く終らせるために ISA バスの速度を増やしてみてください。
新しいモデルの 3c509B はボード上に 8kB のバッファを持ち、バッファは受 信/送信に対し 4/4、5/3、あるいは 6/2 と分割することができます。この設 定は DOS の設定ユーティリティで変更でき、これを EEPROM 上に記憶できま す。これで、もともとの 3c509 における上述の問題が解決されるはずです。
3c509B ユーザはプラグ&プレイ機能を無効にするため、また出力先
(訳注: 10Base-T, 10Base-2, AUI)を設定するため、提供されているDOSのユーティ
リティを使用しなければなりません。Linux のドライバは現在は出力先の自動
検出は行わないので、10Base-T, 10Base-2, AUI のいずれかを選択しな
ければなりません。PnP を完全に切るためには、
3C5X9CFG /PNP:DISABLE
を実行し、それから設定を確実に有効にす
るためにハードリセットを行うべきです。
「サーバかワークステーションか」や「モデムの最高速度」といった設定が DOS の設定ユーティリティに現われることに関して時々質問されます。Donald によると、「それらはドライバへのヒントに過ぎず、Linux ドライバはこれら のパラメータを使っていない: Linux のドライバは、遅延を小さくするより常 に高いスループットを得られるように最適化されている(「サーバ」)。遅延が 小さいことは、古く、ウィンドウが使えない、IPX の処理にとっては重要であっ た。3c509 用の MS-DOS ドライバで遅延を減らすことにより、一部の操作に対 する割り込みが無効になり、シリアルポートの割り込みがブロックされる。し たがって、「モデムの速度」の設定が必要となる。Linux のドライバはパケッ ト群の全体だけを操作するため(例えば、パケットが完全にカードに転送され るまでパケットの転送を始めない)に長時間割り込み無効にする必要がない」 とのことです。
ISA カードの検出には、ほとんどのカードと異なる方法を使っている点に注意
してください。基本的には、ID_PORT (0x100
から 0x1ff
までの
10 刻みのポート)にデータを送ることによりカードに応答するよう命令します。
この検出方法だと、複数の ISA 3c509 がある機器構成では特定のカードが
必ず最初に検出されます。もっとも小さいハードウェアイーサネット
アドレスを持つカードが必ず eth0
となります。これは誰にとって
も問題にならないはずですが、6 バイトのハードウェアアドレスを特定の
インタフェースに割り当てたい人は例外です。もし複数の 3c509 カードを
お持ちであれば、I/O ポートを指定せずに(つまり I/O アドレスを 0 として)、
どのカードが最初となるかを検出機構が処理できるようにすると良いでしょう。
I/O アドレスに 0 以外の値が指定されると、カードはどれも検出されません。
したがって、この指定を行ってはなりません。
ether=0,0,ethN
コマンドを追加し、
これが本当に苦になるのであれば、Donald の最新のドライバを見てみましょ
う。というのも、未使用メモリアドレスフィールド内に 0x3c509
の値を
取り、検出機構をニーズに合わせることができるかもしれないからです。
ステータス: サポート、ドライバ名 3c515
これは 3Com が出した ISA 100Mbps カードで、``CorkScrew'' というコード 名がついています。これらのカードに対して Donald が出した比較的新しいド ライバはバージョン 2.2 カーネルに入っています。最新の情報については、 Vortex ページを見るべきでしょう:
ステータス: 準サポート、ドライバ名: 3c523
この MCA バスカードは i82586 を使用しており、Chris Beauregard が ni52 ドライバを改造してこのカードで動作するようにしました。このドライバは バージョン 2.2 のカーネルのソースツリーに入っています。
詳しくは http://glycerine.cetmm.uni.edu/mca/
にある MCA-Linux
のページをご覧ください。
ステータス: 未サポート
これも別の MCA カードです。あまり興味はありません。MCA にこだわるなら、 まだ 3c529の方が期待できます。
ステータス: サポート、ドライバ名: 3c509
このカードは実際には 3c509 と同じチップセットを使っています。Donald は 実際には 3c509 のドライバにフックを入れて、EISA カードを調べた後で、か つ ISA カードを調べる前に MCA カードを調べるようにします。MCA のサポー トはずっと昔にカーネルに追加されています。MCA の検知に必要なコードは バージョン 2.2 カーネルと一緒に出ているドライバに入っています。詳しくは
http://glycerine.cetmm.uni.edu/mca/
にある MCA-Linux のページに書かれています。
ステータス: サポート、ドライバ名: 3c589 (別配布されています)
この PCMCIA カードはモデムと 3c589B イーサネットカードを組み合わせたも のです。エンドユーザにとっては、モデムは標準的なモデムに見えます。難し いのは、1 つの割り込みを 2 つの異なる Linux ドライバで共有するところで す。いくつかの新しいレジスタと、ハードウェア割り込みの共有のサポートが あります。割り込みの共有をサポートするには、バージョン 2.0 以降のカー ネルを使う必要があります。
サンプル機と文書を David Hinds へ送ってくれたことに対して、再び Cameron に感謝します。David による次の PCMCIA パッケージのリリースを待 ちましょう。
PCMCIA チップセットやソケットイネーブラ等に関する詳細は、 PCMCIA のサポート をご覧ください。
ステータス: 不明
この PCMCIA カード用のドライバは現在開発中であり、将来は David の PCMCIA パッケージに入るでしょう。現在のステータスを知るには、PCMCIA パッ ケージを調べるのが一番でしょう。
ステータス: サポート、ドライバ名: 3c509
509 の EISA バージョンです。現在の EISA バージョンは 32 ビット インタフェースではなく、同じ 16 ビット幅のチップを使用します。 ですから、性能の向上はたいしてありません。カードが EISA の アドレッシングモードに合わせて設定されていることを確かめてください。 ドライバの情報については、前述の 3c509 の項目を見てください。
ステータス: 準サポート、ドライバ名: 3c589
今までに相当の期間、多くの人がこの PCMCIA カードを使用してきました。 このカードのサポートは、デフォルトのカーネルソースツリーには (現時 点では) 含まれていないことに注意してください。名前に付いている "B" は、 3c509 の場合と同じ意味です。
ドライバは Donald の ftp サイトや、David Hinds の PCMCIA パッケージか ら入手できます。サポートされている PCMCIA コントローラチップセットも必 要でしょう。PCMCIA のドライバ、チップセット、ソケットイネーブラ等に関 する詳しい情報については PCMCIA のサポート を ご覧ください。
ステータス: サポート、ドライバ名: 3c59x
これらの ``Vortex'' カードは PCI バスのマシン用で、590 は 10Mbps 用に、 595 は 100Mbps 用に 3Com が出しています。また、595 は 590 として(つま り 10Mbps モードで)動作させられる点に注意してください。このドライバは バージョン 2.0 のカーネルソースに入っていますが、現在も続けて更新中で す。バージョン 2.0 のカーネルに入っているドライバを使っていて問題が起 きた場合には、以下の URL から最新のドライバを入手するとよいでしょう:
3c590 カードには異なる 2 つのものがある点に注意してください。 すなわち 32kB のオンボードメモリを持つ初期型モデルと、8kB のメモリしか 持たない後期型モデルです。現在はもう新しい 3c59x を買うことはできない でしょう。というのも、これらは 3c09x カードに置き換えられたからです。 誰かから中古で買う場合には、32kB 版を買うようにしましょう。3c595 はメ モリを 64kB 積んでいます。100Mbps をたった 8kB の RAM ではどうしようも ありません!
Donald へカードと文書を送ってくれたことに対して、3Com の Cameron Spitzer と Terry Murphy に感謝します。おかげでドライバを書くことができ ました。
Donald は Vortex ドライバをサポートするためのメーリングリストを用意し ています。このメーリングリストに加わるには以下のコマンドを実行してくだ さい:
echo subscribe | /bin/mail
linux-vortex-request@cesdis.gsfc.nasa.gov
ステータス: サポート、ドライバ名: 3c59x
これは最近リリースされた、3c59x シリーズのカードの EISA バージョンです。 3c597 (別名 Demon) は、先に述べた Vortex ドライバで動作するはずです。
ステータス: サポート、ドライバ名: 3c59x
このカード(別名 `Boomerang', EtherLink III XL)は 3c509/3c595 カードの 後継機種としてリリースされました。
Cyclone `B' のサポートは、ごく最近追加されました。このカードをバージョ ン 2.0 の古いカーネルで使うには、Donald のサイト
から最新の 3c59x.c
ドライバを入手しなければなりません。
何か疑わしい点があれば、上記の WWW ページを確認してください。Donald は Vortex ドライバのサポート告知などを行うためのメーリングリストを用意し ています。このメーリングリストに加わるには、以下のコマンドを実行してく ださい:
echo subscribe | /bin/mail
linux-vortex-request@cesdis.gsfc.nasa.gov
ステータス: サポート、ドライバ名: acenic
このドライバ(Jes Sorensen 作成)は、バージョン 2.2 のカーネルで利用可能 です。このドライバは 3Com のモデル以外にも、いくつかのギガビットカード もサポートしています。
ステータス: サポート、ドライバ名: ne (+8390)
名前にだまされないように。このカードはまだ NE2000 互換カードだと思われ るので、ne2000 ドライバで動作するはずです。
ステータス: サポート、ドライバ名: de4x5, tulip
このカードは DEC 21040 PCI チップの実装の 1 つです。EN1207 カードには 21140 が載っており、10Base-2 コネクタも付いています。これはメディアを 選択する時に一部で問題が起きることが明らかになっています。しかし、この カードを 10Base-T と100Base-T で使えている人もいます。したがって、この カードを買う人は、動作しなければ返品できるようにしておくべきです。
これらのカードに関する詳しい情報と、ドライバの現在の状態については DEC 21040 をご覧ください。
ステータス: 準サポート、ドライバ名: ?
これらのパラレルポートアダプタ用のドライバは利用可能ですが、まだバージョ ン 2.0, 2.1 のカーネルソースの一部ではありません。ドライバは以下の場所 から入手しなければなりません:
http://www.unix-ag.uni-siegen.de/~nils/accton_linux.html
ステータス: 準サポート、ドライバ名: ?
David Hinds がこのカード用のドライバの開発をしているので、現在の状況を 知るには、PCMCIA パッケージの最新リリースをチェックするとよいでしょう。
ステータス: サポート、ドライバ名: lance
これらは AMD LANCE の 79C960 バージョンを使用した、低価格のイーサカー ドです。これらはバスマスタカードであり、入手可能な ISA バスイーサカー ドの中では高速な部類に入るものの 1 つです。
DMA の選択とチップ番号に関する情報は AMD LANCE にあります。
AMD LANCEベースのイーサカードに関する詳細な技術情報は、 AMD ... に関する注意 にあります。
ステータス: サポート、ドライバ名: at1700
make config
の際にこのドライバの設定を出すためにはまだ、最初に
``Prompt for development and/or incomplete code/drivers?'' と聞かれた
時に `Y' と答えていなければなりません。これは単に、このカードが比較的
珍しいために、ドライバの安定性に関するフィードバックがないことが理由で
す。カーネル付属のドライバを使っていて問題に出会ったならば、別のドライ
バを使うとよいかもしれません:
http://www.cc.hit-u.ac.jp/nagoya/at1700/
Allied Telesis AT1700 シリーズのイーサカードは、富士通の MB86965 ベー スです。このチップはプログラムド I/O インタフェースを使用し、1対の固 定サイズの送信バッファを使用します。これにより、バッファの切替え時に少 し停止するだけで、少数のパケットをすきまなく送信することが可能です。
独特な機能として、10baseT 100Ω UTP (Unshielded Twisted Pair) だけで なく、Token Ringで一般的に使用される 150Ω STP (Shielded Twisted Pair) をドライブすることもできます。このカードの光ファイバー版(AT1700FT)も存 在します。
AT1700 で使われている富士通のチップには設計ミスがあります: マシンの電源 を投入しなおさないと完全なリセットがかかりません。リセットボタンを押す だけではバスインタフェースをリセットできないのです。これはそんなに大 きな問題ではありませんが、リセットした時にしか確実に検出されない場合は この限りではありません。カーネルが AT1700 をうまく検出できない場合の解 決法/対処法は、電源を再投入するというものです。
ステータス: サポート、ドライバ名: pcnet32
これは AT1500 の PCI バージョンで、Boca の 79c970 PCI カードのような問 題はありません。DMA の選択とチップ番号に関する情報は、 AMD LANCE にあります。
AMD LANCEベースのイーサカードに関する詳細な技術情報は、 AMD ... に関する注意にあります。
ステータス: 準サポート、ドライバ名: rtl8139
このカードは RealTek 8139 チップを使っています。したがって、 RealTek 8139 の節を見てください。
ステータス: 準サポート、ドライバ名: eepro100
このカードは i82557 チップを使っており、したがって、eepro100 ドライバ で動作するはずです。読者の皆さんがこれを試した場合には、この情報を更新 できるように、結果を報告してください。
AMD の Carl Ching のご厚意により、AMD 関連の全てのイーサネット製品につ いての詳しい説明を提供していただきました。これはこの章を整理するのに役 立ちました。
ステータス: サポート、ドライバ名: lance
実際には AMD のイーサネットカードというものは存在していません。多分あ なたは、カード上に AMD と上記の番号の刻印しか見つからなかったからこの セクションを読んでいらっしゃるのでしょう。7990 が元々の `LANCE' チップ ですが、ほとんどの資料(この文書を含む)は、同様なチップも含めて `LANCE'チップと総称しています(まあ、不正確ではありますが……)。
上記の番号は、多くのイーサネットカードの心臓部である、AMD製のチップを 指しています。例えば、Allied Telesis のAT1500( AT1500参照)、NE1500/2100 ( NE1500 参照) がこれらのチップを使っています。
7990/79c90 はずっと前に新しいバージョンに取って代わられています。 79C960 (別名 PCnet-ISA)は本質的には 79c90 のコア部分を含んでおり、さら にハードウェアのサポートが必要な他のものも全て含まれています。これによ り、ワンチップのイーサネット製品を実現されています。79c961 (PCnet-ISA+) は、79C960 のジャンパ無しのプラグ&プレイ版です。ISA 系列の最後のチップは 79c961A (PCnet-ISA II)であり、全二重の機能が追加 されています。これらのチップのいずれかを使っているカードは全て、 lance.c ドライバで動作するはずです。ただし、元々の 7990 を共有メモリの 設定で使っている非常に古いカードは例外となります。このような古いカード は、DMA チャネル用のジャンパが無いため、使えないかもしれません。
よくある問題は、`busmaster arbitration failure' (訳注: 「バスマスタの調停に失敗」) というメッセージが出るというものです。これはそれなりの時間(50us)が 経過した後、LANCE ドライバがバスにアクセスできない場合に出力されます。 通常、バスマスタ DMA のマザーボードへの実装が壊れているか、他のデバイ スがバスを独占してしまっているか、あるいは DMA チャネルの衝突があるこ とを示しています。BIOS セットアップに `GAT option'(Guaranteed Access Time、 保証アクセス時間)という項目があれば、この設定を切替え/変更してみて、そ れで問題の改善するかどうかを調べてください。
また、このドライバが有効なカードについて見るアドレスは
0x300, 0x320, 0x340, 0x360
だけであり、起動時の引き数の
ether=
で指定したアドレスは黙って無視される(これは修正されるでしょ
う)点に注意してください。したがって今のところは、お使いのカードが必
ず上記の I/O アドレスのいずれかを使うように設定しましょう。
このドライバは、たとえ 16MB 以上のメモリを積んでいても動作します。とい うのも、低位メモリの `bouce-buffer' が必要に応じて使われるからです(つ まり、16MB より上位のアドレスからのデータは、送信するためにカードに渡 される前に 16MB 以下の位置にあるバッファにコピーされます)。
DMA チャネルは、他では使用されていない dev->mem_start の値(別名 PARAM_1)の低位ビットによって設定できます( PARAM_1 参照)。もし設定されていないと、空いている DMA チャネル を順番に有効にすることにより検出し、初期化に成功するかどうかをチェック します。
HP-J2405A ボードは例外です: このボードに関しては、EEPROMに設定された IRQ と DMA の値を読み出すのは簡単です。
これらのチップに関する詳細な情報については、 AMD ... に関する注意 を参照してください。
ステータス: サポート、ドライバ名: pcnet32
これは PCnet-32 です -- VLバスおよびローカルバスシステムのために、元々
の LANCE を 32 ビットバスマスタ版にしたものです。これらのチップは
標準の lance.c
ドライバで操作できるはずですが、32 ビット版
(pcnet32.c
) も利用可能です。ISA バスに関連する 16MB の制限を気に
する必要がありません。
ステータス: サポート、ドライバ名: pcnet32
これは PCnet-PCI です -- PCnet-32と似ていますが、PCI バスベースのシス テム用に設計されています。先述の PCnet-32 の情報を見てください。 したがって、PCI BIOSサポートを有効にして、カーネルを再構築する必要があ ります。79C970A では、元々の 79C970 に対して全二重のサポート等のいくつ かの機能が追加されています。
79C970 の Boca による実装は、高速な Pentium マシンでは正しく動作しない ことに注意してください。これはハードウェアの問題であり、DOS ユーザにも 影響します。詳しくは Boca についての章を参照してください。
ステータス: サポート、ドライバ名: pcnet32
これは PCI システム用に AMD が出した 100M ビットチップです。これは全二 重の動作もサポートしています。このチップは 1996 の 6 月に登場しました。
ステータス: 不明、ドライバ名: pcnet32
このチップも 79C971 と全く同じように動作するはずですが、まだ確認してい ません。
ステータス: サポート、ドライバ名: pcnet32
これは PCnet-SCSIです -- イーサネットという観点では、基本的に 79C970 と同様に扱われます。前述の情報も参照してください。チップの SCSI 機能の 方がサポートされているかどうかは聞かないでください -- この文書は Ehternet-HOWTO であって、SCSI-HOWTO ではないですから。
ステータス: 準サポート、ドライバ名: ac3200
make config
の際にこのドライバを選べるようにするためには、最初の
``Prompt for development and/or incomplete code/drivers?'' の問いに
`Y' と答える必要が未だにあります。この理由は単純で、このカードが珍しい
ためにドライバの安定性についてのフィードバックがないからです。
このドライバはアルファテスト段階のドライバとして現在のカーネルに入って います。このドライバは ne2000 や wd80x3 カードで使われている一般的な NS8390 チップに基づいています。α版のドライバに関する重要な情報につい ては、このドキュメントの アルファ版ドライバ の節をご覧ください。
このドライバを使ったなら、どうなったのかを我々に教えてください。 というのも、バージョン 1.1.25 のカーネルからこのドライバが入っているに も関わらず、フィードバックがほとんどないからです。
このドライバをモジュールとして使うつもりであれば、 イーサネットドライバをモジュールとして用いる場合 を見て、モジュール固有の情報を調べるとよいでしょう。
ステータス: 準サポート、ドライバ名: apricot
このオンボードイーサネットは i82596 バスマスタチップを使用しています。
このチップは I/O アドレス 0x300
にしか存在できません。ドライバの
ソースを見たところ、IRQ も 10 がハードコーディングされているようです。
初期のバージョンのドライバは、0x300
に存在するのは全て apricot
の NIC であるとみなす癖があります。後に、このような誤検出を避けるため
にハードウェアアドレスのチェックが行なわれるようになりました。
ステータス: サポート、ドライバ名: arcnet (arc-rimi, com90xx, com20020)
大変安価で良好なイーサネット性能を有し、Arcnet のハードウェアを無料で 放出するところがあったため、家庭内 LAN を Arcnet で構築するケースがか なりあります。
Arcnetの利点は、全てのカードが同一のインタフェースを持っているこ とで、1つのドライバで全てに対応できるわけです。また、エラー処理が 組み込まれているので、パケットを失うことは無いと思われます。 (UDPのトラフィックには素晴らしいことです!)
Avery Pennarun の archnet ドライバは、1.1.80 以降の標準のカーネルソース に入っています。arcnetドライバは、イーサネットの通常のデバイス `eth0' ではなく `arc0' をデバイス名として使用します。バグレポートや、 成功報告は以下のアドレスへメールしてください:
apenwarr@foxnet.net
ジャンパの設定や一般的なヒントについては、標準カーネルに含まれている ファイルに情報があります。
このドライバはたぶん 100Mbps の ARCnet カードでも動作することでしょう!
AT&Tの StarLANは SyOptics や LattisNet と同じく、他から孤立してい る技術です。どちらも「しゃべる」ことができるハブがなければ、標準的な 10Base-T 環境では使用できません。
ステータス: 未サポート
これらの StarLAN カードは i82586 チップと似たインタフェースを使用し ています。一時期、Matthijs Melchior (matthijs.n.melchior@att.com) は 3c507 ドライバと戯れており、ほとんどうまく動作していたようです。 それ以降あまり噂は聞かれません。
そう、Boca はマルチポートシリアルカードだけを作っているわけではありま せん :-)
ステータス: サポート、ドライバ名: lance, pcnet32
これらのカードは AMD の PCnet チップをベースにしています。視野の広い買
い手なら、多くのユーザがこのカードの VLB/PCI 版で絶えず問題に遭い続け
ていることを知っておくべきでしょう。特に高速な Pentium を使っている人
が問題に遭遇しています。これはドライバの問題ではないことに注意しましょ
う。というのも、DOS/Win/NT のユーザも同じ目に遭っているからです。Boca
の技術サポートの電話番号は (407) 241-8088 です。
75300.2672@compuserve.com
でも連絡することができます。
比較的古い ISA カードでは、この問題は起こらないようです。
Donald は Boca の PCI カードおよび、これと似た実装の Allied Telsyn PCnet/PCI の比較テストを行いました。これによって、問題は Boca による PCnet/PCI チップの実装に問題があることが明らかになりました。このテスト 結果は Donald の WWW ページで見ることができます:
Boca は問題に出会ったユーザに対して「保証に基づく修理」を行っています。 修理としては足りないコンデンサの追加が行われますが、多くの場合はこれで 100% 動作するわけではないようです。ただしある程度は良くなります。
それでもこれらのカードを買おうと思っているのなら、せめて 7 日間の 無条件返品ができるようにしておきましょう。そうすれば、お使いのシステム でうまくカードが動作しなくても返品することができます。
AMD チップに関するもっと詳しい情報は AMD LANCE にあります。
AMD LANCE ベースのイーサネットカードに関するもっと技術的な情報は、 AMD ... に関する注意 の節 に書かれています。
Donald は次のように書いています: 「そう、この会社もプログラム情報を出そうとしないやつらの一つだ。連中は 全部の情報が非公開であることを実際に確かめるのに何ヵ月もかけ、わざと私 の時間を無駄にしてくれた。できるならば、連中のカードは疫病のように避け てほしい。何人かの人が Cabletron に電話をかけて、『Donald Becker さん が Linux 用のドライバを開発中です』みたいなことを言われたそうだ。これ では私が連中のために作業しているように聞こえるが、これは間違いだ」
Donald が上記のコメントを数年前に出してから、Cabletron はプログラミン
グに関する方針を(Xircom のように)変えたようです。これを確かめたかった
り、プログラミング情報について問い合わせたければ、
support@ctron.com
に電子メールを送りましょう。しかし現在では、古
い E20xx カードや E21xx カードのドライバの修正や更新の需要はほとんどな
いでしょう。
ステータス: 準サポート、ドライバ名: ne (+8390)
これらは NEx000とほとんどクローンといっていいカードであり、標準の NEx000ドライバで動作すると報告されています。検出中の ctron 専用チェッ クのおかげです。何らかの問題があっても修正されることはないでしょう。と いうのも、プログラム情報が入手できないからです。
ステータス: 準サポート、ドライバ名: e2100 (+8390) 繰り返しになりますが、プログラム情報が非公開な状況でできることは限られ ています。E2100は設計がまずいです。パケット転送時に共有メモリをマッピ ングする際に、これを必ず 128K の領域全体へマッピングしてしまいま す! このことは、E2100 をもう一枚使う場合も含めて、この領域では他の割り 込み駆動型の共有メモリデバイスを安全に使用できないことを意味します。ほ とんどの時間は動作しますが、ある時間ごとに 1 回はあなたにかみつくこと になります。(ええ、この問題はパケットの転送中に割り込みを殺すことで回 避できますが、ほとんどの場合、クロックの同期が取れなくなってしまいます。) また、ボードのプログラムを誤ったり、悪いタイミング時にマシンを停止させ ると、リセットボタンを押しても復帰できなくなります。電源を落して、 そのまま 30 秒ほど待たなくてはなりません。
メディア(ケーブル)の選択は自動ですが、dev->mem_end パラメータの下
位ビットにより変更できます。
PARAM_2
を参照してください。モジュールを使う場合には、
/etc/conf.modules
の オプション
として xcvr=N
を指
定することもできます。
また、E2100 を NE2100 のクローンと混同しないでください。E2100 は NatSemi の DP8390 を用いて共有メモリで動作するように設計されており、 おおざっぱに言えば頭のいかれた WD8013 に似ています。一方 NE2100(および NE1500)は AMD LANCE を用いてバスマスタで動作するように設計されています。
標準カーネルにE2100ドライバが含まれています。しかし、プログラム情報が 得られないので、バグフィックスを期待しないでください。すでにこのカード で困ったことになっている場合を除いては、これを使用しないようにしてくだ さい。
このドライバをローダブルモジュールとして使用するつもりなら、 イーサネットドライバをモジュールとして用いる場合 の節を見てモジュール固有の情報を調べるべきでしょう。
ステータス: 準サポート、ドライバ名: lance
Cabletron の技術報告に載っている情報によると、これらのカードは標準の AMD PC-Net チップセット( AMD PC-Net を参照)を使っているので、汎用の lance ドライバで動作するはずです。
Cogent の連絡先を示します:
Cogent Data Technologies, Inc. 175 West Street, P.O. Box 926 Friday Harbour, WA 98250, USA. Cogent 営業部 15375 S.E. 30th Place, Suite 310 Bellevue, WA 98007, USA. 技術サポート: Phone (360) 378-2929 between 8am and 5pm PST Fax (360) 378-2882 Compuserve GO COGENT 掲示版サービス (360) 378-5405 インターネット: support@cogentdata.com
ステータス: 準サポート、ドライバ名: smc9194
これらのカードは SMC 91c100 チップを使っているので、SMC 91c92 ドライバ で動作すると思いますが、まだ確認されていません。
ステータス: サポート、ドライバ名: de4x5, tulip
これらは標準の DEC 21040 ドライバで良好に動作するはずである、21040 の 実装の 1 つです。
EM400 および EM964 は DEC 21050 ブリッジと 4 つの 21040 チップを使用し た、4 ポートのカードです。
DEC 21040 にこれらのカードに関する詳細な情報と、ドライバの現状が書かれています。
Compaq は実際にはイーサネットカードの製造・販売は行っていませんが、 多くの Compaq のシステムでは、マザーボード上にイーサネットコントローラ が組み込まれています。
ステータス: サポート、ドライバ名: pcnet32
XL シリーズのようなマシンでは、マザーボードに AMD 79c97x PCI チップが 載っており、標準の LANCE ドライバで利用できます。しかし、使えるように するためには、いくぶんトリッキーなことを行って、PCI BIOS を Linux から 見えるところに置かなければなりません。親切にも Frank Maas が詳しい手順 を提供してくれました:
「しかし、この Compaq のマシンでの問題点は、PCI ディレクトリがハイメモ リ領域の Linux カーネルから見えない(カーネルが見ようとしない)場所にロー ドされることです。その結果、カードは決して検出されませんし、使えるよう にもなりません(その他にもマウスも動作しません)。 これを回避する方法(http://www-c724.uibk.ac.at/XL/ で非常に詳しく説明さ れています)は、MS-DOS をロードして Compaq が作った簡単なドライバを実行 し、その後に LOADLIN を使って Linux カーネルをロードすることです。 いいでしょう。「うげぇ、DOS かよー」と言う時間をあげます。しかし、今の ところは私が知っている解決方法はこれだけです。DOS 用の簡単なドライバは 単に、PCI ディレクトリを通常格納する場所(そして Linux が見つけられる場 所)に配置します」
AMD チップについてのもっと一般的な情報は、 AMD LANCE に書いてあります。
ステータス: サポート、ドライバ名: tlan
このシステムは Texas Instruments の ThunderLAN チップを使っています。 ThunderLAN のドライバ情報は ThunderLAN をご覧ください。
ステータス: サポート、ドライバ名: de4x5, tulip
DEC 21040 チップをベースにしている別のカードです。うまく動作と報告され ており、かつ比較的安価です。
これらのカードのついての詳しい情報と現在のドライバの状況については DEC 21040 をご覧ください。
ステータス: サポート、ドライバ名: ne (+8390)
初期の D-Link カードの一部は、PROM に 0x57
のシグネチャがありませ
んが、ne2000 ドライバはこれらを識別します。ソフトウェアで設定できるカー
ドの場合には、www.dlink.com
からカード設定プログラムを入手しましょ
う。DE2** カードは、初期バージョンの Linux で偽造転送アドレス不一致
エラーがあると最も幅広く報告されたカードです。Digital(DEC) も DE100,
DE200 という名前の製品を出していますが、似ているのは名前だけです。
ステータス: サポート、ドライバ名: pcnet32
これは AMD LANCE チップの PCI バージョンを使用した PCI カードです。DMA の選択とチップの番号に関する情報は AMD LANCE にあります。
AMD LANCEベースのイーサネットカードに関する詳細な技術情報は、 AMD ... に関する注意 の節 にあります。
ステータス: サポート、ドライバ名: ne, ne2k-pci (+8390)
D-Link も PCI 版の NE2000 互換カードを作り始めたようです。
ステータス: サポート、ドライバ名: de4x5, tulip
これは一般的なDEC 21040 PCI チップの実装で、汎用 21040 tulip ドライバ で動作することが報告されています。
これらのカードに関する詳細な情報とドライバの現状については DEC 21040 を参照してください。
ステータス: サポート、ドライバ名: de600
ラップトップのユーザや、コンピュータを手っ取り早くイーサネットに接続し
たいユーザは、このカードを使うとよいでしょう。ドライバは標準のカーネル
ソースに含まれています。Bjorn Ekwallbj0rn@blox.se
がドライバを書
きました。パラレルポート経由で 180kb/s 程度の転送速度が期待できます。
カーネルソースの README.DLINK ファイルを読んでおくべきでしょう。
ifconfig
に渡すデバイス名は今は eth0
となっており、以前
使われていた dl0
ではありません。
パラレルポートのアドレスが標準の 0x378
でない場合、再コンパ
イルする必要があります。Bjorn は書いています: 「DE-620ドライバはループ
の最後のマイクロ秒を縮めようとしているため、irq とポートのアドレスを変
数ではなく定数にしています。これで良好な速度を得ることができますが、逆
にこれらの割り当てを(例えば lilo などを用いて)変更することはできません。
再コンパイルが必要です…」また、ラップトップの中にはオンボードのパラレ
ルポートを、モノクロカードが存在する/していた 0x3bc
に実装してい
るものもある点に注意してください。
ステータス: サポート、ドライバ名: de620
DE-600 と同様に、2 つの出力フォーマットしか持っていません。Bjorn はバー ジョン 1.1 以降のカーネル用に、このモデルのためのドライバを書きました。 DE-600 に関する先述の情報を参照してください。
ステータス: 準サポート、ドライバ名: de650 (?)
ノートパソコンでこの PCMCIA カードを使用している人がいます。これは基本 的な 8390 の設計で、NE2000 によく似ています。LinkSys PCMCIA カードと IC-Card Ethernet(Midwest Microから入手できます)もたぶん DE-650 クロー ンであると思われます。現時点では、標準カーネルには含まれておらず、 パッチを当てる必要があるかもしれません。
この文書の PCMCIA のサポート の節 を参照してください。また可能ならば以下の WWW ページをご覧ください:
ステータス: サポート、ドライバ名: ne (+8390)
これらのカードは、現在(0.99pl15 以降)は認識されるようになりました。こ
れは、PROM の 14 および 15 バイト目の 0x57
の代わりに先頭 3 バイ
トに `DFI' が書き込まれていると指摘してくれた Eberhard Moenkeberg
(emoenke@gwdg.de)のおかげです。0x57
というのは、全ての NE1000 と
NE2000 カードが使用しています。
(300 はほぼ NE1000のクローンの 8 ビットカードで、400 はほぼ NE2000 の
クローンです。)
ステータス: サポート、ドライバ名: depca
ソースファイル `depca.c' にドキュメントが含まれており、1 台のマシンに
複数のカードを載せる方法が書かれています。DE422 は EISA のカードである
ことに注意してください。 これらのカードは全て AMD LANCE チップをベー
スにしています。詳細な情報については
AMD LANCE
を参照してください。ISA カードは同時に最大 2 枚しか使えません。なぜな
ら、ベース I/O アドレスには 0x300
と 0x200
しか設定できない
からです。もし 2 枚挿しする予定なら、標準のカーネルソースに含まれてい
るドライバのソースファイル depca.c
の中の注意書きを読んでください。
このドライバは Alpha CPU ベースのマシンでも動作するでしょう。また ユーザが戯れることのできる ioctl() がたくさんあります。
ステータス: サポート、ドライバ名: ewrk3
DE200 のような初期のカードが LANCE のチップを使用していたのとは異なり、
これらのカードは DEC 独自のチップを使用しています。共有メモリとプログ
ラムド I/O のどちらもサポートしていますが、PIO モードの方が 50% 性能が
向上します。共有メモリのサイズは 2kB, 32kB, 64kB に設定できますが、こ
のドライバでテストされているのは 2kB と 32kB だけです。
David によると、2kB でも 32kB でもほぼ同等の性能が出るそうです。ドライ
バファイル ewrk3.c
の先頭と README.ewrk3
に、より詳細な情報
(ドライバをローダブルモジュールとして使用する方法も含む)があります。ど
ちらのファイルも標準カーネルに含まれています。このドライバは depca.c
と同じく Alpha CPU もサポートしています。
標準ドライバには、数多くの興味深いioctl()呼び出しが含まれています。 これらを用いると、パケットの送受信状況の取り出しや消去や EEPROM の読み 書き、ハードウェアアドレスの変更等が行えます。ハッカーであれば、ソース コードを読むことにより、これらについてより多くの情報を得られます。
David は他のツールとともに、このカード用に設定ソフトも作成しました
(DOS プログラム NICSETUP.EXE
もあります)。これらのソフトは
ほとんどの Linux FTP サイトの
/pub/Linux/system/Network/management
ディレクトリにあります
-- ewrk3tools-X.XX.tar.gz
というファイルを探してください。
ステータス: サポート、ドライバ名: de4x5, tulip
これらのカードは以下で述べる 21040 チップベースです。DE500 は
10/100Mbps 接続を実現するため、21140 チップを使っています。詳しい情報
については、後述の 21040 に関するセクションをご覧ください。このドライ
バを使う DEC 製でないカード用のコンパイル時オプションもいくつかありま
す。詳しくは README.de4x5
を見てください。
全ての Digital のカードはメディア(訳注: ケーブル種別)を自動検出します (ただし DE500 は特許関連の問題で一時的に例外となっています)。
このドライバも Alpha CPU 対応で、またモジュールとしてロードすることが 可能です。ioctl() 呼び出しを用いてドライバ内部にアクセスすることが可能 です - 具体的な方法については `ewrk3' ツールとソースファイル de4x5.c をご覧ください。
ステータス: サポート、ドライバ名: de4x5, tulip
DEC 21040 は Digitalが販売しているバスマスタ型のワンチップイーサネット です。 AMD の PCnetチップに似ています。21040 は特に PCI バスアーキテク チャ用に設計されています。SMC の新しい EtherPower PCI カードがこのチップ を使用しています。
このチップを使用したカードではドライバの選択肢が 2 つあります。 前述の DE425 ドライバと、汎用 21040 `tulip' ドライバです。
警告: お使いのカードがこのチップをベースにしていても、 あなたの環境でドライバが動作するとは限りません。 David C. Davies によると:
「`tulip.c' または `de4x5.c' が、ドライバが対応しているカード以外の全 ての DC2114x ベースのカードで動作する保証はありません。『なぜ?』と思う かもしれません。これは汎用目的レジスタ(CS12)というレジスタがあり、 (1)DC21140A ではベンダごとにプログラムされていて異なる動作を行い、 (2)DC21142/3 ではこれは(DC21041 風の) SIA 制御レジスタになっているから です。唯一の希望の光は、SROM をデコードして、ドライバを設定する手助け を行えることです。しかしこれは保証されている解決方法ではありません。な ぜなら、一部のベンダ(例えば SMC 9332 カード)は Digital Semiconductor が推奨している SROM プログラミング形式に準拠していないからです」
技術的でない言葉で言えば、DC2114x を使っている未知のカードが Linux 用 のドライバで動作するかどうかわからなければ、カードを購入する前に、 返品できることを確かめておくことです。
最近の SMC EtherPower カードのほとんどでは、従来の 21040 の代わりに、
変更を受けた 21041 チップも見受けられます。21140 は 100Base-? をサポー
トするもので、21040 チップ用 Linux ドライバで動作します。DEC 製でない
カードで Davidの de4x5
ドライバを使用するには、詳細について
README.de4x5
を御一読ください。
Donald は `tulip' ドライバを開発するために SMC EtherPower-10/100 カー ドを使用していました。現時点で標準カーネルに含まれているドライバは、最 新バージョンではないことに注意してください。このドライバを使用して問題 があれば、Donald の ftp/WWW サイトから最新版を入手してください。
上記の URL には 21040 を使用した(完全網羅ではないですが)様々なカード/ ベンダのリストもあります。
現時点では、tulip ドライバはまだアルファ版ドライバとみなされてい
ることに注意してください(
アルファ版ドライバ
参照)。ですからそれなりの意識を持って使用してください。これを使用する
には、arch/i386/config.in
を編集し、CONFIG_DEC_ELCP
のサポートに関するの行のコメントを外さなくてはなりません。
Donald は tulip ドライバのサポート案内などのためのメーリングリストも用 意しています。これに参加するには以下のコマンドを実行します:
echo subscribe | /bin/mail
linux-tulip-request@cesdis.gsfc.nasa.gov
Farallon は EtherWave アダプタとトランシーバを売っています。このデバイ スは複数の 10BaseT デバイスをデイジーチェーン接続できます。
ステータス: サポート、ドライバ名: 3c509
これは EtherWave トランシーバを内蔵した 3c509 のクローンであると報告さ れています。これらのカードを Linux で 3c509 ドライバを用いて多くの人が 利用しています。一般的な用途には高価すぎますが、特別な場合にはよい選択肢 です。Hubletの価格は $125 からで、EtherWave はボードの値段の $75-$100 増しというところです。ホスト 1 台ぶんだけネットワーク配線が足りないな ら価値があるけれど、ホストを 2 台追加したいならお金の無駄です。
多くのネットワークチップのメーカーと異なり、富士通は自社のチップをベー スにしたネットワークカードの製造と販売を行っています。
ステータス: サポート、ドライバ名: fmv18x
ドライバによると、これらのカードは富士通 MB86965 をそのまま実装したも のです。そのため Allied Telesis AT1700 カードにとても似ています。
272** カードは NE*000 ボードと同様にプログラムド I/O を使用しますが、 データ転送ポートはアクセスしない場合には `OFF' にできますので、 自動検出を行うドライバで生じる問題を回避できます。
HP のハードウェアのバージョン番号に関して、この節にあった混乱を整理す るにあたって、Glenn Talbott が協力してくれました。
ステータス: サポート、ドライバ名: hp (+8390)
8 ビットの 8390ベースの 10BaseT で、8 bitであるという理由だけでお勧め できません。2、3年前に集積度を上げるため再設計されましたが、初期化タイ ミングに変化したものがあり、テストプログラムには影響が出ましたが、LAN ドライバには関係ありませんでした。(ループバックモードへあるいはループ バックモードから切り替わった直後は、新しいカードは `ready' 状態になっ ていません。)
このドライバをローダブルモジュールとして使用するなら、モジュール特有の 情報について イーサネットドライバをモジュールとして用いる場合 の節を見てください。
ステータス: サポート、ドライバ名: hp+ (+8390)
HP PC Lan+ は標準的な HP 製 PC LAN カードとは異なっています。このドラ イバはバージョン 1.1.x の開発サイクルの中で標準カーネルのドライバリス トに追加されました。ne2000の ような PIOモード でも、wd8013 のような共 有メモリモードでも動作します。
47B は 16 ビットの 8390 ベースの 10BaseT w/AUI で、52A は 16 ビットの 8390 ベースの 10Base2 w/AUI です。これらのカードは、通常の 16k ではな く 32k の送受信パケット用のバッファ RAM をボード上に持っており、どちら も使用しているコネクタの自動認識機能を備えています。
このドライバをローダブルモジュールとして使用するなら、モジュール特有の 情報について イーサネットドライバをモジュールとして用いる場合 の節を見てください。
ステータス: サポート、ドライバ名: lance
これらは 27247/27252A よりは低価格でかつ高速ですが、たとえば AUI や ThinLAN との接続性、起動 PROM ソケットのような機能がいくつか省かれてい ます。これはかなり一般的な LANCE の設計ですが、ちょっとした設計の違い により汎用の `NE2100' ドライバとは互換性がありません。このカード専用の サポート(ボードからのDMAチャネルの読み出しを含みます)は、HP の Glenn Talbott からの情報提供のおかげで採り入れることができました。
LANCE ベースのカードに関する、より詳しい技術情報については AMD ... に関する注意 をご覧ください。
ステータス: サポート、ドライバ名: lance
HP-Vectra はマザーボード上に AMD PCnet チップが載っています。DMA の選 択とチップの番号に関する情報については AMD LANCE をご覧ください。
LANCE ベースのカードに関する、より詳しい技術情報については AMD ... に関する注意 をご覧ください。
ステータス: サポート、ドライバ名: hp100
このドライバは Compex VG 製品の一部もサポートしています。このドライバ
は ISA, EISA, PCI カードをサポートしているので、カーネルソースの
make config
を実行する際には、ISA カードの設定に出てきます。
ステータス: サポート、ドライバ名: eepro100
これらのカードは Intel EtherExpress Pro 10/100B カードの名前だけを変え たもののようです。詳しくは Intel の節を見てください。
ステータス: サポート、ドライバ名: znet
これは Intel ベースの Zenith Z-note と互換性があります。より詳細な情報 については Z-note を参照してください。
たぶん以下のサイトは、新しいバージョンの ThinkPad に関するわかりやすい データベースを公開しています。筆者自身はまだチェックしたことがないです が。
WWW ブラウザを利用できない方は、peipa.essex.ac.uk:/pub/tp750/
へ行ってみてください。
ステータス: 準サポート、ドライバ名: ? (カーネルと別配布)
Linux でもこの PCMCIA カードが使われています。他の PCMCIA と同じような ことが当てはまり、ノートパソコンの PCMCIA チップセットがサポートされて いることと、標準カーネルに PCMCIA サポートを追加することが必要です。
この文書の PCMCIA のサポート の節 をご覧になり、可能であれば以下のページも見てください:
ステータス: 準サポート、ドライバ名: ibmtr
トークンリングをサポートするには、単にデバイスドライバを書くだけではな く、トークンリング用のソースルーティングルーチンも書く必要があります。 ソースルーティングを書くのにもっとも時間がかかります。
Peter De Schrijver は最近トークンリングに時間を割き、IBM ISA および MCA トークンリングカードに関する作業を行ないました。
現在のトークンリング用のコードは、1.3.x 系列の最初の方のカーネルで取り 込まれました。
Peter は、元々 MCA 16/4 メガビットトークンリングボードでテストを行った けれど、他の Tropic ベースのボードでも動作するはずだと言っています。
ステータス: サポート、ドライバ名: eth16i
Mika Kuoppala (miku@pupu.elt.ici.fi)がこのドライバを書きました。 バージョン 1.3.4x 初期のカーネルへ取り込まれました。at1700 カードでも 使用されている富士通の MB86965 チップを使用しています。
Intel による各種カードの名前の付け方は、良くて曖昧か紛らわしいです。信
じられないなら、カードに載っているメインのチップの i8xxxx
の番号
を調べるか、PCI カードの場合には /proc
ディレクトリにある PCI
情報を調べて、これを以下に示す番号と比べてください。
ステータス: サポート、ドライバ名: eexpress
このカードは i82586 を使っています。このドライバの初期バージョン(バー ジョン 1.2 のカーネル)ではアルファテスト版ドライバとして分類されていま した。というのも、ほとんどの環境でうまく動作しなかったからです。 バージョン 2.0 のカーネルに入っているドライバは試した方々によるとずっ とうまく動作しているようですが、ドライバのソースはこれをまだ実験的な ものとしてリストしていますし、高速なマシンでは問題が起きやすいようです。
ドライバソースリストの先頭部分のコメントでは、これらのカードで起こる問
題がいくつか列挙されています(直っています!)。ドライバ中の全ての
outb
を outb_p
に置き換える、速度を落とすためのハックにより
固まることが避けられるという報告が少なくとも 1 人のユーザから寄せられ
ています。
ステータス: サポート、ドライバ名: eepro
Bao Chau Ha がこれらのカード用ドライバを書き、これは初期の 1.3.x カー ネルに取り込まれました。i82595 チップを使用した Compaq の内蔵イーサネッ トシステムの一部でもこのドライバが動作するかもしれません。
ステータス: 準サポート、ドライバ名: ? (別配布されています)
John Stalba (stalba@ultranet.com) が PCI 用のドライバを書きました。こ れらのカードは PLX9036 PCI インタフェースチップを Intel i82596 LAN 制 御チップと組み合わせて使っています。お使いのカードに i82557 チップが載っ ていたら、それはこのカードではなく次に説明するバージョンなので、 EEPro ドライバではなく EEPro100 ドライバを使いましょう。
PRO/10 PCI カード用のアルファ版ドライバと、その使い方の説明は以下の場 所から入手できます:
EISA カードをお使いならば、ドライバを少しハックして、PCI と EISA のそ れぞれで使われる異なる検出機構に対応しなければなりません。
ステータス: サポート、ドライバ名: eepro100
このドライバは古い 100A カードでは動作しない点に注意してください。 ドライバ内で挙げられているチップ番号は i82557/i82558 です。ドライバの 更新やドライバのサポートについては、以下の WWW ページを見てください:
このドライバに関するメーリングリストに参加するには、以下のコマンドを実 行してください:
echo subscribe | /bin/mail
linux-eepro100-request@cesdis.gsfc.nasa.gov
Donald は、本当はドライバのソースコードを公開できたはずなのに、守秘契 約を結ばなければならなかったようです! Intel は何てことしやがるんだ。
Kingston は様々なカードを作っています。これには NE2000+ や AMD PCnet ベースのカード、DEC tulip ベースのカードが含まれます。これらのカードの ほとんどは、それぞれに対応するドライバでうまく動作するはずです。 Kingston Web Page をご覧ください。
KNE40 という DEC 21041 tulip ベースのカードは、汎用 tulip ドライバでう まく動作すると報告されています。
Linksys は何種類かの NE2000 クローンを作っています。普通の ISA カードや ISA のプラグ&プレイカードもありますし、サポートされている NE2000-PCI チップセットをベースにしている PCI の NE2000 互換カードもあ ります。ここに一覧を載せるにはモデルが多すぎます。
LinkSys は Linux に協力的であり、Linux 専用の WWW サポートページや、箱 に Linux 対応と書かれた製品まであります。以下の WWW ページを見てくださ い:
http://www.linksys.com/support/solution/nos/linux.htm
ステータス: サポート、ドライバ名: tulip
これらのカードには、名前が同じであるにもかかわらずいくつかの 「リビジョン」(つまり、異なるチップセットを使っているもの)があります。最初に 使われていたのは DEC のチップセットです。2 番目のリビジョンで使われて いたのは Lite-On PNIC 82c168 PCI ネットワークインタフェース コントローラであり、そのサポートは標準の tulip ドライバに統合されました (バージョン 0.83 以降)。PNIC に関する詳しい情報は以下の WWW ページにあります:
http://cesdis.gsfc.nasa.gov/linux/drivers/pnic.html
これらのカードの各バージョンに関する詳しい情報は前述の LinkSys の WWW サイトにあります。
ステータス: サポート、ドライバ名: de620
これは DE-620 のクローンと思われ、de620 ドライバでうまく動作すると報告 されています。詳しい情報については DE-620 を参照してください。
ステータス: サポート、ドライバ名: de650 (?)
これは DE-650 のロゴ違いであると思われます。詳しい情報については DE-650 を参照してください。
ステータス: 準サポート、ドライバ名: ?
i82586 ベースのカードの 1 つです。Dirk Niggemann
dirk-n@dircon.co.uk
が、彼曰く「プレアルファ」という状態のドライ
バを書きました。多くの人にテストして欲しいそうです。詳細については、彼
にメールを出してください。
Mylex に何か問い合わせたいことがある場合の連絡先は以下の通りです。
MYLEX CORPORATION, Fremont Sales: 800-77-MYLEX, (510) 796-6100 FAX: (510) 745-8016.
WWW サイトもあります: Mylex WWW Site
ステータス: サポート、ドライバ名: lne390 (+8390)
これはかなり古い EISA カードで、wd80x3 に似た共有メモリを使っています。 これらのカード用のドライバは、現在の 2.1.x 系列のカーネルで利用できま す。共有メモリのアドレスは必ず、1MB 以下の位置か、マシンに物理的に載っ ている RAM の最大アドレスよりも高い位置にしてください。
ステータス: サポート、ドライバ名: de4x5, tulip
これは DEC の 21040 チップを使用した PCI カードです。出力は 10BaseT, 10Base2, 10Base5 から選択できます。LNP101 カードは汎用 21040 ドライバ で動作することが確かめられました。
詳しくは 21040チップに関する節( DEC 21040) をご覧ください。
ステータス: 準サポート、ドライバ名: de4x5, tulip
LNP104 は DEC 21050チップを使って、4 つの独立した 10BaseT ポート を使えるようになっています。このカードは 21040ドライバ(IRQ の共有の方 法を知っている)で動作するはずですが、(筆者が知る限り)挑戦した人はまだ いません。
頭の文字 `NE' は Novell Ethernet に由来します。Novell はもっとも安価な NatSemi のデータブック内の設計に従い、製造権をEagleに売りました(スピン オフ?)。そのおかげで安価なイーサカードが市場に出回ったのです。(いまで はどこにでもNE2000カードがあります。)
ステータス: サポート、ドライバ名: ne (+8390)
NE2000 は今では NatSemi の 8390 チップだけで設計したカードの総称となっ ています。共有メモリではなくプログラムド I/O を使用しており、インストー ルは簡単ですが、性能が若干落ちますしいくつか問題があります。NE2000 で起 こる一般的な問題の一部は NE1000 / NE2000 カード (およびクローン) の問題 で挙げています。
一部の NE2000 クローンは、National Semiconductor 製の `AT/LANTic' 83905 チップを使用しており、wd8013 と同様な共有メモリモードと、EEPROM によるソフトウェア設定が可能です。共有メモリモードはプログラムド I/O モードも少ない CPU 消費で動作します(つまり、より効率的です)。
一般に、NE2000 のクローンを I/Oアドレス 0x300
に置くのは良い考え
ではありません。なぜなら、ほとんど全てのデバイスドライバが起動
時にそのアドレスを検出に行くからです。貧弱な NE2000 のクローンの中には
間違った場所をつつかれることが苦手なものがあり、マシンを固まらせること
で応答するのです。また 0x320
も良くありません。SCSI ドライバが
0x330
を検出しようとするからです。
Donald は全ての NE2000 カードで使える診断プログラム(ne2k.c)を書きまし た。詳細な情報については 診断プログラムの節を 参照してください。
このドライバをモジュールとして使用するなら、 イーサネットドライバをモジュールとして用いる場合 の節を見てモジュール特有の情報を調べてください。
ステータス: サポート、ドライバ名: ne, ne2k-pci (+8390)
ええ、信じるかどうかは別として、10 年以上も前の NE2000 のインタフェース 設計に基づいて PCI カードを作っている人達がいます。現在はこのような カードのほとんどは RealTek 8029 チップか Winbond 89c940 チップをベース にしています。Compex, KTI, VIA, Netvin のカードはこれらのチップを使っ ているようですが、PCI ID は異なります。
最新のバージョン 2.0 のカーネルはこれらのカードを自動的に検出・使用す
る機能をサポートしています。(カーネル 2.0.34 より古いカーネルを使って
いるのならば、これらのカードが確実に検出できるようにカーネルの更新をす
べきです。) 選択できるドライバは 2 つあります。昔からある ISA/PCI 用の
ne.c
ドライバと、比較的新しく PCI 専用である ne2k-pci.c
ドラ
イバです。
元々あった ISA/PCI ドライバを使うには、ISA カードが使うのと同じ NE2000
ドライバを本当に使う場合と同じように、make config
を実行した時に
`Other ISA cards' オプションに `Y' と答える必要があります。
(これらのカードは PCNet-PCI や DEC 21040 カードほど賢くないので、設定の
ヒントを与える必要もあります。)
新しい PCI 専用ドライバが ISA/PCI ドライバと異なる点は、古い 8 ビット の NE2000 カードのサポートを無くしたことと、古い ISA NE2000 が信頼性の 高い操作を行うために必要であった通信の間の停止時間なしに、より大きなブ ロックでデータのやりとりを行うようにしたことです。その結果、ドライバは 少し小さく、かつ多少効率的になっていますが、普通に使っている分には気づ かないくらいしか差がないので、あまり期待しないでください。(少ない CPU 消費で最大の効率を得ることを本気で考えているのなら、そもそも PCI NE2000 を選ぶこと自体が間違いです。) ドライバの更新情報と詳しい解説に ついては以下の WWW ページをご覧ください:
http://cesdis.gsfc.nasa.gov/linux/drivers/ne2k-pci.html
最新バージョンのドライバでも検出できない NE2000 PCI カードをお持
ちならば、/usr/src/linux/MAINTAINERS
に挙げられている NE2000
ドライバのメンテナに連絡してください。その際にはcat /proc/pci
や dmesg
の出力を添えましょう。そうすれば、お使いのカードのサ
ポートもドライバに追加できます。
全く NE2000 と互換でないのに、「NE2000 互換」のステッカーを製品に貼っ ているカードメーカーがあることに注意してください(例: PCNet-PCI や RealTek 8139)。よくわからない場合には、メインのチップの番号とこの文書 を比べてみるとよいでしょう。
ステータス: 未サポート
これらは、National Semiconductor の DP83800 および DP83840 チップをベー スにしている ISA 用 100Mbps カードです。現在はドライバのサポートはあり ませんし、他のドライバで動くという報告も全くありません。チップに関する 文書が 1 つの PDF ファイル以外にはなく、それもドライバを書くには情報が 不足しているという状況のようです。
ステータス: サポート、ドライバ名: lance
これらのカードは AMD が出したオリジナルの 7990 LANCE チップを使用して おり、Linux の lance ドライバでサポートされています。新しい NE2100 ク ローンは、AMD の改良された PCnet/ISA チップを使用しています。
lance ドライバの初期のバージョンには、もともとの Novell/Eagle の 7990 カードから autoIRQ 機能を使って IRQ 線を得るのに問題がありました。 現在は修正されていると思います。そうでなければ、LILO 経由で IRQ を指定 してやり、問題がまだ残っていることを私たちに連絡してください。
DMA の選択と、チップの番号に関する情報は AMD LANCE の節にあります。
LANCE ベースのカードに関する技術情報は AMD ... に関する注意の節にあります。
ステータス: 準サポート、ドライバ名: ne2
色々な会社が作った NE2000 マイクロチャネルカードがいくつかありました。 このドライバ(バージョン 2.2 のカーネルで使用可能)は、以下の MCA カード を検出します: Novell Ethernet Adapter NE/2, Compex ENET-16 MC/P, Arco Ethernet Adapter AE/2
ステータス: 未サポート
この古い EISA カードは 8 MHz の 80186 と i82586 を組み合わせて使ってい ます。このドライバに対する作業を行っている人はいません。というのも、カー ドの情報が入手できませんし、ドライバに対する実際の需要もないからです。
ステータス: サポート、ドライバ名: ne3210 (+8390)
この EISA カードは NE3200 とは全く異なるカードであり、National Semiconductor の 8390 チップを使っています。ドライバはバージョン 2.2 のカーネルのソースツリーにあります。共有メモリのアドレスは必ず、1MB 以 下の位置か、マシンに物理的に載っている RAM の最大アドレスよりも高い位 置にしてください。
ステータス: サポート、ドライバ名: pcnet32
これは単なる AMD PCnet-PCI カード (79C970A チップ) です。LANCE/PCnet ベースのカードについての詳しい情報は AMD LANCE にあります。
ステータス: サポート、ドライバ名: ne (+8390)
これは NE2000 クローンのようであり、Linux でうまく動作します。
ステータス: サポート、ドライバ名: de4x5, tulip
これは DEC の Tulip チップをベースにしている PCI カードの一つです。こ のカードは Linux で動作することが報告されています。
ドライバの詳しい情報については、21040 チップに関する節 ( DEC 21040) をご覧ください。
ステータス: サポート、ドライバ名: wd (+8390)
PureData PDUC8028 と PDI8023 シリーズのカードは、動作することが報告さ
れています。Mike Jagdis jaggy@purplet.demon.co.uk
が特別な検出コー
ドを作成してくれたおかげです。このサポートは WD ドライバに統合されてい
ます。
Racal Interlan には、WWW 経由の www.interlan.com
でアクセスできま
す。この会社は過去に MiCom-Interlan として知られていた会社であるはずで
す。
ステータス: 準サポート、ドライバ名: es3210
これは EISA 8390 ベースの共有メモリカードです。実験的なドライバがバー
ジョン 2.2 のカーネルに含まれており、うまく動作することが報告されてい
ます。しかし EISA の IRQ と共有メモリアドレスの検出は(少なくとも)古い
リビジョンのカードではうまく動作しないようです。(この問題は Linux 界に
固有のものではありませんが……。)
この場合には、これらのパラメータをドライバに指定する必要があります。例
えば IRQ 5 で共有メモリ 0xd0000
のカードをモジュールドライバで使
う場合には、options es3210 irq=5 mem=0xd0000
を
/etc/conf.modules
に追加してください。カーネルにドライバを組
み込む場合には、起動時に ether=5,0,0xd0000,eth0
を指定してくださ
い。I/O のベース値は自動的に検出されるので、 0 を指定しなければなりま
せん。
ステータス: 準サポート、ドライバ名: ni5010
以前は古い 8 ビットの MiCom-Interlan カード用のドライバを別途入手しな ければならなかったのですが、現在は実験的なドライバがバージョン 2.2 の カーネルに入っています。
ステータス: 準サポート、ドライバ名: ni52
このカードも Intel のチップを使っているものの一つです。 Michael Hipp がこのカード用のドライバを書きました。このドライバは標準 「アルファ版」のドライバとしてカーネルに含まれています。Michael はこの カードのユーザからのフィードバックを求めています。Linux でアルファテス ト版のイーサネットドライバを使用する際の重要な情報に関しては、 アルファ版ドライバを参照してください。
ステータス: 準サポート、ドライバ名: ni65
LANCE ベースの NI6510 にもドライバがあり、これも Michael Hipp によって 書かれました。繰り返しになりますが、これも「アルファ版」ドライバです。 いくつかの理由により、このカードは汎用 LANCE ドライバとの互換性があり ません。 Linuxでアルファテスト版のイーサネットドライバを使用する際の重 要な情報に関しては、 アルファ版ドライバを参照してください。
ステータス: サポート、ドライバ名: lance
カーネル 1.3.23 の時点では、汎用 LANCE ドライバには 0x52, 0x44
と
いう NI6510EB 固有の「署名」をチェックするコードが追加されていました。
この署名は NI6510EB 全てで同じではないと報告する人もいましたが、その場
合は lance ドライバはカードを検出しません。検出できなかった場合には、
検出コード(lance.c の322行付近)を printk() に変更してそのカードの値を
表示させ、それからデフォルトの 0x52, 0x44
の代わりに得られた値を
使用してください。
このカードは、lance ドライバで使用している場合は、たぶん NI6510 互換モー ドではなく、「高性能」モードで動作しているはずです。
ステータス: サポート、ドライバ名: atp
これはよく使われていて、AT-Lan-Tec および(多分)他の多くの会社によって 売られている低価格な OEM 向けポケットアダプタです。このアダプタ用のド ライバは、標準カーネルに含まれています。しっかりとした情報がドライバソー スの `atp.c'ファイルに含まれています。
このデバイスに関して、ifconfig
に渡すデバイス名は eth0
では
なく atp0
であることに注意してください。
ステータス: サポート、ドライバ名: ne (+8390)
これは ISA NE2000 クローンであり、Linux の NE2000 ドライバでうまく動作
すると報告されています。rset8009.exe
プログラムを RealTek の WWW
サイトである http://www.realtek.com.tw
から入手できます。同じ
サイトから FTP で入手することもできます。
ステータス: サポート、ドライバ名: ne (+8390)
これは上記カードの Plug and Pray (訳注: カードを挿したら「お祈り(Pray)」
する方のプラグ&プレイ)版です。DOS プログラムを使って PnP を無効に
し、ジャンパ無しの設定を行いましょう。使える I/O アドレスと IRQ を設定
すれば使えるはずです(ドライバをモジュールとして使うなら、
/etc/conf.modules
に io=0xNNN
オプションを追加してくださ
い)。 rset8019.exe
プログラムを RealTek の WWW サイトである
http://www.realtek.com.tw
から入手できます。同じサイトから
FTP で入手することもできます。
ステータス: サポート、ドライバ名: ne, ne2k-pci (+8390)
これは NE2000 を 1 チップで実装した PCI カードです。現在はいろいろなベ ンダがこのチップを使ったカードを販売しています。これらのカードの使用に ついては NE2000-PCI の節を見て ください。これは 10 年以上前の設計を単に PCI バスにくっつけただけのも のである点に注意してください。性能は対応する ISA モデルより劇的に良い わけではありません。
ステータス: 準サポート、ドライバ名: rtl8139
上記のチップとは別に、RealTek が出している PCI 用の 1 チップイーサネッ トです。このチップをベースにしているカード用のドライバは、バージョン 2.0.34 の Linux に入っています。現在、バージョン 2.2 のカーネルでこの ドライバを使うには、実験的なドライバを使うかどうかを聞かれた時に `Y' と答えなければなりません。詳しくは以下の WWW ページを見てください:
http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html
ステータス: 準サポート、ドライバ名: 3c501
これは単なる 3c501 クローンで、S.A. PROM プレフィックスが異なるだけで す。筆者はこのカードは、オリジナルの3c501と同様に腐っていると思います。 ドライバは NP943 の I.D. をチェックし、その後は 3c501 として扱います。 これらのカードは本当にどれも使わない方が良い理由については、 3Com 3c501を参照してください。
ステータス: サポート、ドライバ名: sk_g16
このドライバは PJD Weichmann と SWS Bern によって書かれ、バージョン 1.1 のカーネルで取り込まれました。SK G16は、LANCE チップの初期の版 (7990)をベースにしているという点で、NI6510 に似ているようです。 繰り返しになりますが、このカードは汎用 LANCE ドライバでは動作しないよ うです。
ステータス: サポート、ドライバ名: seeq8005
このドライバは Hamish Colemanによって書かれ、1.3.x 初期のカーネルに取 り込まれました。このドライバにはカードに関する情報が少ししか含まれてお らず、そのためここにもあまり情報を書けません。疑問があれば、 hamish@zot.apana.org.au にメールを出すのが最善でしょう。
Western Digital のイーサネット部門は、何年も前に wd8003 や wd8013 が主 力製品だった頃に SMC に売却されました。SMC は 8309 ベースの ISA カード (Elite16, Ultra, EtherEZ) を作り続けており、さらにいくつかの PCI 製品 をラインナップに追加しています。
SMC の連絡先は以下です:
SMC / Standard Microsystems Corp., 80 Arkay Drive, Hauppage, New York,
11788, USA. 電話による技術サポート: 800-992-4762 (アメリカ)、
800-433-5345 (カナダ)、516-435-6250 (その他の国)。
書面による要望: 800-SMC-4-YOU (アメリカ)、800-833-4-SMC (カナダ)、
516-435-6255 (その他の国)。 電子メールによる技術サポート:
techsupt@ccmail.west.smc.com
. FTP サイト: ftp.smc.com
.
WWW サイト:
SMC
ステータス: サポート、ドライバ名: wd (+8390)
これらは 8 ビットのカードです。8 ビットの 8003 は若干安価ですが、軽い
負荷で使用する場合以外ではお金を惜しむだけの価値はありません。非
EEPROM のカード(ジャンパで設定するタイプの互換カード、古い古い古
い wd8003 カードなど)の中には、使用している IRQ 線を通知する方法がない
ものがありますので注意してください。この場合は自動 IRQ 検出が用いられ
ますが、これに失敗するとドライバは黙って IRQ 5 を割り当てます。古い非
SMC の設定/ドライバディスクは SMC の ftp サイトから入手できます。
比較的新しい SMC の `SuperDisk' プログラムは、非常に古い EEPROM 無しの
カードの検出に失敗します。SMCDSK46.EXE
が対応範囲が広いようです。
全てのカードのジャンパ設定は、前述のアーカイブに ASCII 形式のテキスト
ファイルとして含まれています。最新の(最高の?)バージョンは
ftp.smc.com
から入手できます。
これらのカードは 16 ビット版のもの(WD8013 / SMC Elite16)と基本的に同じ ですから、詳細な情報については次の節をご覧ください。
ステータス: サポート、ドライバ名: wd (+8390)
何年かの間に設計が変わり、レジスタや EEPROM が追加されました(最初の wd8003 カードは約 10 年前に登場しました!)。互換製品も通常 `8013' の名 前で通っており、通常は非 EEPROM(ジャンパによる設定) の設計を使用してい ます。新しいモデルの SMC カードは、元々古いカードで使っていた National Semiconductor 製の DP8309 ではなく、SMC 83c690 を使っています。 共有メモリを使う設計のカードはプログラムド I/O のカードより少し高速で す。これは特に大きなパケットの時に顕著です。 もっと重要な点として、ドライバの観点からは、共有メモリを使えば 8390 の プログラムド I/O モードにある、いくつかのバグを避けることができること が挙げられます。その結果、パケットバッファへのマルチスレッドなアクセス が安全に行なえますし、ウォームブート時の検出の際にマシンをハングさせし まうプログラムド I/O のデータレジスタもありません。
選択された IRQ を読めなかった非 EEPROM カードは自動 IRQ 設定を試み、こ れに失敗すると黙って IRQ 10 を割り当てます(8 ビットバージョンは IRQ 5 を割り当てます)。
ボード上のメモリ量が標準とは異なっているカードでは、起動時に(あるいは
モジュールとして使用している場合は/etc/conf.modules
のオプショ
ンで)メモリサイズを指定できます。標準のメモリ量は 8 ビットのカードが
8kB で、16 ビットのカードが 16kB です。
例えば、古い WD8003EBT カードはジャンパを使ってメモリが 32kB の設定に
できます。RAM 全部を使用するには、以下の例のようにします(I/O アドレス
が 0x280、IRQ が 9 の場合):
LILO: linux ether=9,0x280,0xd0000,0xd8000,eth0
もっと一般的な問題や、よく質問される問いに対する回答については SMC Ultra/EtherEZ と WD80*3 カードでの問題 の節も参照してください。
このドライバをモジュールとして使用するなら、 イーサネットドライバをモジュールとして用いる場合 の節を見て、モジュール固有の問題を確認してください。
ステータス: サポート、ドライバ名: smc-ultra (+8390)
このイーサカードは SMC の 83c709 チップをベースにしています。このカー ドは 83c690 に新機能をいくつか追加したものです。このカードは古い SMC のイーサネットカードと同様なモードを持っていますが、古い WD80*3 ドライ バとの完全な互換性はありません。しかし、このモードでは他の 8390 用ドラ イバとほとんどのコードを共有しており、さらに WD8013 クローンよりは若干 動作が高速です。
Ultra の一部は 8013 のように見えるので、誤検出を避けるため Ultra の検出は wd8013 の検出の前に行われます。
Donald は、受信バッファの利用効率は犠牲になるが連続送信を可能にする、 Ultraの `Altego' モードのための別のドライバを書くことも可能だが多分そ のドライバが書かれることはないだろうと言っています。
バスマスタ SCSI ホストアダプタのユーザは注意が必要です: Interactive UNIX に同梱されているマニュアルには、SMC Ultra にバグがあり、aha-154X ホス トアダプタに接続されている SCSI ディスクのデータを壊すだろうとの記載が あります。このバグは aha-154Xと互換のカード(例えば BusLogic のボードや AMI-FastDisk の SCSI ホストアダプタ)でも問題になるかもしれません。
SMC は Interactive と古い Windows NT で生じる問題を認識しています。こ
れは初期のバージョンで起こるハードウェアの衝突で、ドライバの設計によっ
て回避することができます。現在の Ultra ドライバは、カードがデータ転送
する間に共有メモリを有効にするだけで、この問題を防いでいます。カーネル
バージョンが最低でも 1.1.84 であることや、あるいは起動時に表示されるド
ライバのバージョンが少なくとも smc-ultra.c:v1.12
であることを確認
してください。そうでない場合は問題が生じます。
このドライバをモジュールとして使用するなら、 イーサネットドライバをモジュールとして用いる場合 の節を見て、モジュール固有の問題を確認してください。
ステータス: サポート、ドライバ名: smc-ultra32 (+8390)
この EISA カードには、対応する ISA カードとの共通部分がたくさんありま す。動作する(そして安定している)ドライバはバージョン 2.0 と 2.2 の両方 のカーネルに含まれています。Linux がこれらのカードに対応できるように、 これらのカードのいくつかを購入してくれた Leonard Zubkoff に感謝します。
ステータス: サポート、ドライバ名: smc-ultra (+8390)
このカードは SMC の 83c795 チップを使用しており、プラグ&プレイ仕様 をサポートしています。SMC Ultra 互換モードも持っており、Linux の Ultra ドライバで使用することも可能です。 このカードをもっともうまく使うためには、SMC が提供しているプログラム (SMC の WWW/ftp サイトから入手できます)を使って、PnP を無効にし共有メ モリモードに設定してください。上述の Ultra ドライバに関する注意を参照 してください。
バージョン 1.2 のカーネルでは、カードは共有メモリで動作するように設定 しなければなりません。しかしバージョン 2.0 のカーネルでは共有メモリモー ドでもプログラムド I/O モードでも使用できます。共有メモリモードの方が 多少高速で、PCU 資源の消費も少ないです。
ステータス: サポート、ドライバ名: de4x5, tulip
注意: EtherPower II はまったく別のカードです。後述の説明を読んでください! これらのカードは基本的な DEC 21040 の実装です(つまり、1 つの大きなチッ プと 2 個のトランシーバからなります)。Donald は汎用の 21040 ドライバ (別名 tulip.c)を開発するのに、これらのカードの一つを使用しました。繰り 返しになりますが、開発のためにカードを提供してくれた Duke Kamstra に感 謝します。
このカードのより新しいバージョンの中には、比較的新しい DEC 21041 チッ プを使用したものがあり、古いバージョンの tulip ドライバで問題を起こす かもしれません。問題が起きた場合には、最新リリースのドライバを使用して いることを確認してください。最新のドライバは最新のカーネルのソースツリー にはまだ取り込まれていないかもしれません。
このカードを使用するにあたっての詳細な情報、およびドライバの現状に関 しては DEC 21040 を参照してください。
どうやら、このカードの最新版の EtherPower-II は 9432 チップを使ってい るようです。このカードが現在のドライバで動作するかどうかは今のところ不 明です。いつものことですが、動作するかどうかがよく分からなければ、 Linux のドライバで動作しなければカードに金を払う前に返品できるこ とを確認しておきましょう。
ステータス: 準サポート、ドライバ名: epic100
これらのカードは SMC 83c170 チップをベースにしており、Tulip ベースのカー ドとは全く異なります。バージョン 2.0 と 2.2 のカーネルに、これらのカー ドをサポートする新しいドライバが入っています。詳しくは以下の WWW ペー ジを見てください:
http://cesdis.gsfc.nasa.gov/linux/drivers/epic100.html
ステータス: 未サポート
これらの 8 ビットカードは富士通の MB86950 ベースで、Linux の at1700 ド ライバで使われている B86965 の古い祖先にあたります。Russ は、at1700.c のコードと彼が Tiara カード用に作った DOS のパケットドライバ (tiara.asm)を見れば、たぶんドライバを作れるだろうと言っています。
ステータス: 未サポート
これは 16 ビット I/O マップトの 8390 カードで、一般的な NE2000 カード と大変よく似ています。SMC から仕様を入手できたら、非常に簡単に NE2000 のドライバを移植できるでしょう。これらのカードはあまり一般的ではありま せん。
ステータス: サポート、ドライバ名: smc9194
SMC9000 は 91c92 チップをベースにしている VLB カードです。91c92 は他の ブランドのいくつかのカードでも使われていますが、かなりマイナーです。 ドライバは Erik Stahlman (erik@vt.edu) が書きました。これはバージョン 2.0 のカーネルに入っていますが、バージョン 1.2 の古いカーネルには入っ ていません。このドライバをバージョン 1.2 のカーネルのソースツリーに入 れるのはさほど難しくないと思います。
ステータス: 準サポート、ドライバ名: smc9194
SMC 91c92 ドライバは、この 100Base-T 用チップをベースにしているカード でも動作すると思われますが、現時点ではこの確認は行われていません。
ステータス: サポート、ドライバ名: tlan
このドライバは、Compaq 機に組み込まれている多くのイーサネットデバイス で使われています。NetFlex シリーズや Netelligent シリーズがこれに該当 します。このドライバは Olicom 2183, 2185, 2325, 2326 にも対応していま す。
これは DEC の 21040 チップをベースにした PCI カードの一つです。
詳しくは 21040 チップに関する節 ( DEC 21040) を見てください。
VIA のネットワークカードを見かけることは多分ないでしょう。というのも、 VIA がいくつか作っているのは、イーサネットカードの部品として他のカード で使われているネットワークチップだからです。VIA の WWW サイトが以下に あります:
http://www.via.com.tw/
ステータス: サポート、ドライバ名: ne, ne2k-pci (+8390)
この制御チップは VIA が PCI-NE2000 用に販売しています。
ISA/PCI ne.c
ドライバと PCI 専用の ne2k-pci.c
のどちらでも使
うことができます。詳しくは PCI-NE2000 に関する節を見てください。
ステータス: サポート、ドライバ名: via-rhine
これは比較的新しいドライバで、現在の 2.0, 2.1 カーネルに入っています。 このチップは、バスマスタ転送をサポートしている点で NE2000 用の 86C926 チップよりも進歩していますが、厳密に 32 ビット境界を持つバッファが必要 なので、バスマスタ転送で得られる利点も制限されてしまいます。詳しい説明 とドライバの更新については以下のページを見てください:
http://cesdis.gsfc.nasa.gov/linux/drivers/via-rhine.html
SMC カードの情報については SMC の節を見てください。 (SMC は何年も前に Western Digital のネットワークカード部門を買収してい ます。)
Winbond は実際には一般向けの完成品のカードの製造・販売は行っていません -- この会社は完成品のカードではなく 1 チップイーサネットを作っています。 これは他の会社が購入し、独自の名前を持つ PCI ボードに取り付け、小売店 経由で販売しています。
ステータス: 準サポート、ドライバ名: winbond-840
このドライバは現時点ではカーネルに含まれていません。というのも、テスト 段階だからです。このドライバは以下の場所で入手できます:
http://cesdis.gsfc.nasa.gov/linux/drivers/test/winbond-840.c
ステータス: サポート、ドライバ名: ne, ne2k-pci (+8390)
このチップは、多くの会社が販売している低価格の PCI NE2000 カードでよく 見かける 2 つのチップうちの 1 つです。これは 10 年以上も前の古い設計を PCI バスで使えるようにしただけのものに過ぎない点に注意してください。性 能は対応する ISA モデルよりずっと優れているわけではありません。
ずっと長い間、Xircom はドライバを書くために必要なプログラミング情報を 就職でもしない限り公開しようとしませんでした。もちろん Linux ユーザは、 非開示契約を結ばなくても Xircom が文書を公開するように方針を変えるよう に、ドライバの対応を Xircom にせがんできました(Xircom はポピュラーなネッ トワーク OS は全てサポートしていると言っていました)。SCO ドライバのソー スコードを公開するつもりだと言われた人がいる一方で、古い PE モデルのよ うな「時代遅れになった」製品の情報を今さら提供しないと言われた人もいま す。この話題に興味があり、ご自身で確認してみたいなら、電話番号 1-800-874-7875, 1-800-438-4526, +1-818-878-7600 で Xircom に連絡するこ とができます。
ステータス: 未サポート
期待をしてはいけませんが、もしパラレルポート用のアダプタをお持ちであれ ば、Xircom が提供している DOS ドライバを DOS エミュレータ上で使えるか もしれません。DOSEMU がパラレルポートにアクセスできるようにする必要が あるでしょうし、SIG (DOSEMU の Silly Interrupt Generator)を使う必要も あるでしょう。
ステータス: 準サポート、ドライバ名: ????
一部の Xircom 製 PCMCIA カードには、David Hinds の PCMCIA パッケージで 使えるドライバがあります。PCMCIA パッケージの最新情報を確認してくださ い。
ステータス: サポート、ドライバ名: znet
Z-Note に組み込まれているネットワークドライバは、DMA チャネルを
2 つ使う Intel i82593 をベースにしています。最新バージョンのカー
ネルには、(アルファ版の?)ドライバが入っています。全てのノート用アダプ
タやポケットアダプタと同様に、make config
時の設定は
`Pocket and portable adaptors' のセクションにあります。
IBM ThinkPad 300 は Z-Note と互換である点にも注意してください。
ステータス: サポート、ドライバ名: de4x5, tulip
このチップをベースにしているカードの場合は 2 つのドライバを選ぶこ とができます。つまり David が書いた DE425 ドライバと Donald が書いた 汎用の 21040 ドライバです。
1.1.91 の時点では、David が追加した DEC 製でないカード(Znyx 製カード等)
でこのドライバを動作させるためのコンパイル時オプションが入っています。
詳しくはREADME.de4x5
をご覧ください。
このカードを使用するにあたっての詳細な情報、およびドライバの現状に関 しては DEC 21040 を参照してください。
さて、あなたの叔父さんのいとこの隣人の友達に兄弟がいて、その人が息子の ペットのハムスターの籠として使われている AT ケースの中に ISA イーサネッ トカードを見つけたとします。何らかの理由で読者の皆さんがそのカードを手 に入れてこれを Linux で使おうとしたものの、そのカードが何であるかにつ いての手がかりを誰も持っておらず、文書もまったくないものとします。
何よりもまず、見て分かるモデル番号がヒントになるかもしれないので確認し てください。「2000」を含むモデル番号がついていれば大抵 NE2000 の互換カー ドです。「8003」や「8013」が書いてあるカードは Western/Digital WD80x3 カードか、SMC Elite カードか、あるいはこれらの互換カードでしょう。
カードに付いている最も大きなチップを探しましょう。これがネットワークコ ントローラ(NIC)で、そのほとんどは部品番号で識別することができます。ど の NIC がカードに載っているかがわかっていれば、カードが何であるかを調 べる際に以下の説明が役立つでしょう。
多分今でもまだ最も一般的な NIC は National Semiconductor の DP8390、別名 NS32490, DP83901, DP83902, DP83905, DP83907 です。 これらは全て National Semiconductor が作った同じ NIC です! Winbond や UMC 等の他の会社も、Winbond 89c904 (DP83905 クローン)や UMC 9090 といった DP8390 と DP83905 の互換品を作っています。 もしカードに何らかの形の 8390 が載っていれば、これは NE1000 または NE2000 の互換カードである可能性があります。8390 ベースで次に一般的なカー ドは、wd80x3 カードとそのクローンです。DP83905 が載っているカードは ne2000 または wd8013 として設定できます。純正の wd80x3 と SMC Elite には、元々の DP8390 の代わりに 83c690 を使っているバージョンはあ りません。SMC Ultra には 83c790 が載っており、そのためドライバは wd80x3 カードと少し異なります。SMC EtherEZ カードには 83c795 が載って おり、SMC Ultra と同じドライバを使います。何らかの種類の 8390 か 8390 クローンをベースにしている全ての BNC カードには普通、BNC コネクタのす ぐ近くに 16 ピンの DIN チップである 8392(または 83c692 や ???392)が載っ ています。
古いカードに載っている一般的な NIC としては Intel i82586 もあります。 この NIC が載っているカードには 3c505, 3c507, 3c523, Intel EtherExpress-ISA, Microdyne Exos-205T, Racal-Interlan NI5210 がありま す。
元々の AMD LANCE NIC には AM7990 という番号が付いています。新しいリビ ジョンには 79c960, 79c961, 79c965, 79c970, 79c974 があります。これらの NIC のいずれかが載っているカードの大部分は Linux の LANCE ドライバで動 作します。ただし古い Racal-Interlan NI6510 は例外で、専用のドライバが あります。
NIC に DEC 21040, 21041, 21140 等の番号が付いている新しい PCIカードは、 Linux の tulip ドライバか de4x5 ドライバで動作するはずです。
これ以外で、RTL8029 や 89C940, 86C926 と記されている大きなチップが載っ ている PCI カードは NE2000 のクローンであり、Linux バージョン 2.0 以上 の ne ドライバはこれらのカードを自動的に検出するはずです。
それぞれのイーサネットカードは、そのカード固有の 6 バイトのアドレスを
持っています。このアドレスの最初の 3 バイトは、カードを作ったメーカー
が同じならば同じです。例えば、全ての SMC のカードのアドレスは
00:00:c0
で始まります。最後の 3 バイトはメーカーによって、製造時
にそれぞれのカードに対して一意に割り当てられます。
6 バイトのアドレスを全て示すステッカーがカードに貼ってあれば、最初の 3 バイトからメーカーを調べることができます。しかし普通は、最後の 3 バイ トしか印刷されていないステッカーがソケットに挿さった PROM に貼られてい ることの方が多いでしょう。この場合はメーカーについては何も分かりません。
どのメーカーがアドレスを割り当てたのかは RFC-1340 で調べることができま
す。また、もっと新しい一覧を色々な場所で入手できるようです。
EtherNet-codes
や Ethernet-codes
で WWW や FTP の検索を行え
ば何か見つかるでしょう。
まだカードの正体がはっきりしなくても、少なくともある程度絞りこめれば、 ドライバを山のように埋め込んだカーネルを構築し、起動時にドライバのいず れかがカードを自動検出するかどうかを見ることができます。
カーネルがカードを検出しなければ、カードの設定がドライバがカードを探す
時に検知するアドレスを使うようになっていないのかもしれません。この場合
には、お近くの Linux 関連 FTP サイトから scanport.tar.gz
を入手し、
このツールでカードのジャンパ設定を調べられるかどうか試すとよいでしょう。
このツールは ISA バスの I/O アドレスを 0x100
から 0x3ff
まで、
/proc/ioports
に登録されていないデバイスを探しながらスキャン
します。どこか特定のアドレスから始まる未知のデバイスが見つかれば、
イーサネットがそのアドレスを検知するように、起動時の引き数 ether=
で明示的に指定できます。
何とかカードを検出させることができたら、ジャンパの設定を一つずつ変更し、 そのカードが検出される I/O ベースアドレスと IRQ がどうなるかを調べるこ とにより、不明なジャンパの意味を明らかにできます。IRQ 設定は、カードの 裏にある跡をジャンパが半田付けされている所まで追いかけることによって調 べられます。カードの裏側の「金色のピン」を金属のブラケットが付いている 側の端から数えて、4, 21, 22, 23, 24, 25, 34, 35, 36, 37, 38 番目のピン によってそれぞれ IRQ を 9, 7, 6, 5, 4, 3, 10, 11, 12, 15, 14 を設定で きます。8 ビットのカードには 31 ピンまでしかありません。
何もしないように見えるジャンパは普通、オプションの起動 ROM のメモリア ドレスを選ぶためのものです。これ以外で BNC, RJ-45, AUI 端子の近くにあ るジャンパは、普通は出力メディアを選ぶためのものです。これらは通常、 YCL や Valor, Fil-Mag 等と記された「ブラックボックス」の電圧コンバータ の近くにあります。
各種カードのジャンパ設定について集めた素晴らしいコレクションが以下の URL にあります:
Linuxの ソースには他にいくつかドライバがあり、ネットワークプログラムに 対して、実際にはイーサネットではないけれどイーサネットのようなデ バイスを提供します。完璧を期すため、以下で簡単に説明します。
dummy.c
- このドライバの目的は、通過する経路をデバイスに示すこと
です。しかし実際にはパケットは送信しません。
eql.c
- (負荷を平均化する)ロードイコライザです。複数のデバイス(通
常はモデム)を支配下に置いてデバイス間の送信負荷を平均化し、その一方で
ネットワークプログラムには 1 つのデバイスを提供します。
ibmtr.c
- IBM の Token Ringです。実際にはイーサネットではありませ
ん。Broken-Ring にはソースルーティングや他の難しいものが必要です。
loopback.c
- ループバックデバイスです。これは自分自身から出て自分
宛になっている全てのパケットマシンが送られるデバイスです。本質的には送
信キューから受信キューにパケットを移動させるだけです。
pi2.c
- オタワアマチュア無線クラブの PI および PI2 インタフェース
です。
plip.c
- パラレル接続インターネットプロトコルです。2 台のコンピュー
タ間をパラレルポートで結び、Point-to-Point 形式 でパケットをやりとりす
ることが可能です。
ppp.c
- Point-to-Point プロトコル(RFC1331)です。
Point-to-Point 接続(これも通常はモデム)を通じて、マルチプロトコルデー
タグラムを転送するためのものです。
slip.c
- シリアル接続インターネットプロトコルです。
2 台のコンピュータ間をシリアルポートで結び(通常はモデム経由)、
Point-to-Point ポイント形式でパケットをやりとりすることが可能です。
tunnel.c
- サブネット間のネットワークトラフィックを透過的にトンネ
ルさせることができる、IP トンネル機能を提供します。
wavelan.c
- Intel EtherExpress などの他のイーサカードで使われてい
る Intel 82586 コプロセッサによって制御される、イーサネットに似た無線
トランシーバです。