これは漠然とした質問ですね。以下に簡単なトラブル回避策を示します
/usr/adm/messages
をチェックして cardmgr
がカードを
正しく識別し、 serial_cs
ドライバを起動しているか確認してくだ
さい。もし正しく識別されていない場合、/etc/pcmcia/config
ファ
イルに新しいエントリーを加える必要があるかもしれません。詳しくは
3.6 節を見てください。
/usr/adm/messages
をチェックして serial_cs ドライバの出力を調
べてください。もし ``register_serial() failed'' というメッセージが出力
されていれば、他のデバイスと I/O ポートが衝突している可能性があります。
デバイスが 8250 であると識別されている場合も I/O ポートが衝突している
徴候の一つです。というのも、最近の PCMCIA モデムは 16550A UART と識別
されるはずだからです。もし使っている I/O ポートが他のデバイスと衝突し
ている場合、 /etc/pcmcia/config.opts
を修正して、モデム用に割
りあてられているポートを使わないようにしてみてください。
setserial
コマンドを使い、irq を 0
にして動くかどうか確認してみてください。irq を 0 に設定すれば、シリア
ルドライバは割り込みのかわりに、より遅い「呼び出しモード(polled mode)」
を使うようになります。もしこれでうまく行くようなら、何か別のデバイスが
serial_cs の選んだ IRQ を使っている可能性があります。この割り込みを使
わないように/etc/pcmcia/config.opts
を設定してください。
もう一つ、簡単なチェックポイントを示します。
cardmgr
がカードを正しく認識し、ネットワーク
ドライバを起動しているか確認してください。もしだめならば、サポートされ
ているカードと「互換」と称していてもあなたのカードはまだ使えないのでしょ
う。これは、カードが「NE2000 互換」と称している時によく起きるようです。
cardmgr
に正しく認識されてるのにうまく動かない、という場合は、他
のデバイスと IRQ やポートの衝突が起きているのかもしれません。カードが
使っているリソースをチエックして (ログファイルを調べて)、カードが別の
IRQ やポートを使うように /etc/pcmcia/config.opts
を設定し、
問題となる IRQ やポートを使わないようにします。
/etc/pcmcia/network.opts
スクリプトを繰り返しチェックして
ください。ケーブルや ``T'' 型ジャック、ターミネータ等が正しく動作して
いるか確認してください。以下は特定のカードについてのコメントです:
pcnet_cs
モジュールのオプションで
mem_speed=#
を使ってメモリへアクセスする時間を増してみて
ください。例は標準の config.opts
ファイルにあります。
mem_speed=1000
(ナノセコンド単位)まで上げてみるのがいいでしょ
う。
io_speed=#
オプションで指定する必要があるかも知れませ
ん。このオプションは pcmcia_core
モジュールをロードする際に指
定します。/etc/rc.d/rc.pcmcia
の CORE_OPTS
でこのオプ
ションを指定してください。
トランシーバーのタイプは network.opts
で IF_PORT を
指定することで選択できるようになりました。指定は以前のバージョンのよう
に数字でも、トランシーバーの種類を示すキーワードでも可能です。全てのネッ
トワークドライバが、可能ならばインターフェースの種類を自動検出し、自動
検出できない場合は 10baseT になるように、デフォルトでは指定されていま
す。ifport
コマンドを使えば、現在使用中のトランシーバーの種類
を設定したり、調べたりできます。以下の例では eth0
のトランシー
バーを 10base2 に指定しています。
# ifport eth0 10base2 # # ifport eth0 eth0 2 (10base2)
現在の 3c589 ドライバは接続しているネットワークを自動的に検出するよう になりましたが、この機能はまだ完全ではありません。自動検出がうまくいく ためには、カードが設定される際にネットワークケーブルが接続されていなけ ればなりません。ネットワークに接続後、改めて設定しなおすには以下のよう にします。
ifconfig eth0 down up
まずカードが cardmgr
に識別されているか調べてください。
SUPPORTED.CARDS
の中には入っていないカードでも、実際にはサポー
トされているカードの OEM バージョンのことがあります。このようなカード
を見つけたら私に連絡してください。リストに追加します。
もしお使いのカードが識別されない場合、
3.6
節に従って、config ファイルにあなたのカード用のエントリーを作る必要が
あります。カード内部の設定を読み取る必要があるので、まずは、メモリカー
ド用のドライバ pcmem_cs
を使うように設定 (bind の項目)します。
設定後、cardmgr
を再起動(kull -HUP)して修正した config ファイ
ルを読みこませます。
カードのハードウェア的なイーサネットアドレス(MAC アドレス)も知る必要が あります。このアドレスは対になった 16 進数 6 つ組からなっており、たい ていカード本体に書いてあります。もしカードに書いてなければ DOS のドラ イバを使ってアドレスを調べることができます。とにかく何らかの方法で見つ けて、
dd if=/dev/pcmem0a count=20 | od -Ax -t x1
を実行し、カードのアドレスに対応する部分の出力を調べ、アドレスの最初が
16 進のオフセットでいくらになるかを記録しておきます。次に
modules/pcnet_cs.c
を調べて、 hw_info
の構造体を定義
している部分を見つけます。この構造体の中にあなたのカード用のエントリを
作らなければなりません。最初のフィールドはカードの名称、二番目のフィー
ルドは 16 進のオフセットを 2 倍したもの、つぎの 3 つのフィールドはカー
ドのハードウェアアドレスの最初の 3 バイトです。最後のフィールドは特定
の機能の有無を示すフラグで、最初は 0 にしておきましょう。
pcnet_cs.c
を修正したら、新しいモジュールをコンパイルしてイン
ストールします。/etc/pcmcia/config
を再度修正して、そのカード
用のエントリを pcmem_cs
から pcnet_cs
に変更します。
cardmgr
を再起動して設定ファイルを読みこみなおせば完了です。
作成された hw_info
と config のエントリをぜひ私あてに送ってく
ださい。
もし 16 進ダンプからカードのハードウェアアドレスの位置を見つけられなけ
れば、最後の手段として、pcnet_cs
モジュールの初期化の際にハー
ドウェアアドレスを直接書きこんでしまう方法もあります。
/etc/pcmcia/config
を修正して、hw_addr=
オプションを:
module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"
のように指定します。もちろん、 ``hw_addr=..
'' の部分にあなた
のカードのハードウェアアドレスを指定することは言うまでもありません。
1.3.73 以降の新しいカーネルならば、複数の機能を持つカードの機能を同時 に利用できるようになりました。
古いバージョンのカーネルでは、異なるデバイスドライバの間で割り込みを共 有することはできなかったので、PCMCIA ドライバでも、このカードをイーサ ネットとモデムとして同時に使用することはできません。イーサネット用のド ライバとシリアル用のドライバの双方が自動的にロードされますが、デフォル トではイーサネット用のドライバが優先して割り込みを取ります。モデムを使 うには、イーサネット用のドライバをアンロードして、以下のようにシリアル ポートを再設定します。
ifconfig eth0 down
rmmod 3c589_cs
setserial /dev/modem autoconfig auto_irq
setserial /dev/modem
2 度目の setserial
コマンドは、そのポートが以前はイーサネット
ドライバが使っていた割り込みを使うように正しく設定されているか確認のた
めのものです。
Compaq Aero や他のいくつかのラップトップ機で使われている PCMCIA のフロッ ピーインタフェースカードは現在の PCMCIA カードサービスではサポートされ ていません。Aero の PCMCIA フロッピーカードには、DMA をサポートするた めに専用の PCMCIA コントローラを使っているという問題があります。このコ ントローラがどのように DMA を制御しているのかが正確にわからない限り、 Linux でサポートすることはできません。
Aero の場合、起動時にフロッピーアダプタカードが接続されていれば Aero の BIOS がカードを設定し、Linux からは通常のフロッピードライブとして利 用できます。PCMCIA ドライバがロードされた時、そのカードは既に設定済で Linux の(フロッピー)ドライバと接続されていることが分かるはずで、カード が挿さっているソケットの設定は変更されません。すなわち、FD カードが起 動時に挿入されていればフロッピーデバイスは使用可能ですが、そのカードは 抜き挿しできないことに注意してください。
Xircom は秘密保持契約 (non-disclosure agreement) を結んだベンダにのみ 自らのカードの技術情報を公開しています。そのため、自由に配布できる Xircom カードのドライバを作るには DOS ドライバをリバース・エンジニアリ ングするような法的に疑わしい方法を取るしかありません。
最近 Xircom 社は秘密保持契約の方針を変更しつつあり、将来には必要な情報 がより入手しやすくなるかも知れません。しかし Xircom 社のカードについて の問い合せは御遠慮ください。ドライバが使えるようになればアナウンスしま すが、いつごろになるかは全くわかりません。
Xircom 製の CreditCard Ethernet+Modem II カードは特別な設定をしなくて も modem としては Linux で使えます。