最終更新: 1999.11.6
BeOS R4.5でPCカード(シリアルカード、NE2000互換Ethernetカード)を使う方法について説明します。 なお、シリアルカードとは、モデムカード・ISDN TAカード・デジタル携帯電話カード・PIAFSカードなど、シリアルポートと互換のあるカードの総称です。
なお、以下の手順の大部分を自動化するPCカードウィザードを開発しましたので、お試しください。
カードをささずに
$ cardctl status
として、
Socket 0: no card Socket 1: no card
と出力されれば、PCカードスロットが使用可能です。
PCカードデータベースを所定の場所に保存します。 あるいは、ここに登録されてないEthernetカードの場合は、 Adding PCMCIA NE2000 compatible cardsや Getting PCMCIA workingを参考にして、 /boot/home/config/settings/pcmciaに記述します。 シリアルカードは、個別に登録する必要はありません。
なお、このデータベースはカードの認識に使用されるだけであり、 DialUpNetworkのモデムの選択肢やNetworkのネットワークカードの選択肢が増えるわけではありません。
ついでに
$ mkdir /var/run
としておくとよいでしょう(後述)。
うまくいけば、
PCMCIA Serial Online (bus/pcmcia/serial/serial0)
というメッセージが出て、カードが使えるようになります。 デバイス名は、標準のシリアルデバイスの次になります。 例えば、内蔵シリアルポートがserial1で、内蔵赤外線デバイスがserial2の場合、 シリアルカードはserial3になります。
SerialConnectでConnect Directlyを実行し、 カードがATコマンドに応答するか確認するとよいでしょう。
DialUpNetworking preferencesで必要な設定をします。 モデムの種類(Your modem is:)は、Generic AT Commands→AT(またはPre-configured modem)を選んでおけばほとんどの場合OKでしょう。 特に設定が必要な場合はCustomを選んでモデムの機種を登録します。 Connect via:はシリアルカードのデバイス名(この例ではserial3)を選びます。 カードが挿さっていない状態では内蔵デバイスしか選べないので注意してください。
設定が終わったら接続してみましょう。
カードを抜くと
PCMCIA Serial Offline (bus/pcmcia/serial/serial0)
というメッセージが出ます。
Network preferencesでNovell NE2000 compatible adapter (PCMCIA)を登録し、必要な設定をします。
また、/boot/home/config/boot/UserSetupEnvironmentで
export PCMCIANETWORK=true
を有効にします。
うまくいけば、
PCMCIA NetCard Online (net/etherpcmcia0)
というメッセージが出て、カードが使えるようになります。 DHCPの場合はIPアドレスが割り振られるまでしばらく待ちましょう。
カードを抜くと
PCMCIA NetCard Offline (net/etherpcmcia0)
というメッセージが出ます。
カードサービスがカードを認識しているかどうかは
$ cat /var/run/stab
で知ることができます。 カードが認識され、かつ使用可能になっていれば、以下のように出力されます。
Socket 0: ELECOM Laneed LD-CDY, IC-Card Ethernet 0 net ne2000_cs 0 net/etherpcmcia0 Socket 1: empty
また、カードが使用可能になっている場合、 カードに割り当てられたI/OアドレスやIRQなどの情報は
$ cardctl config
で知ることができます。
カードの抜き挿しの際のメッセージが邪魔な場合は、 /etc/pcmcia/serialや/etc/pcmcia/netのalertコマンド行をコメントアウトすることで、 ダイアログが出ないようにできます(Stop those annoying PCMCIA messages)。
→データベースにカードが登録されていません。 cardctl identの情報を登録して再起動しましょう。
Socket 0: ELECOM Laneed LD-CDY, IC-Card Ethernet 0 net ne2000_cs 0 net/etherpcmcia0 Socket 1: emptyとなるはずのところが
Socket 0: ELECOM Laneed LD-CDY, IC-Card Ethernet Socket 1: emptyと1行しか出力されない。 cardctl configではコンフィギュレーション情報が出ない。
→IRQの空きが不足していてカードにIRQを割り当てることができないか、 割り当てられたIRQが何らかの理由で正常に動作していません。 使っていないデバイス(シリアルポート・赤外線ポート・パラレルポートなど)をBIOS設定で殺してIRQを空けてみましょう。
それでもだめな場合は、カードがBeOSのNE2000ドライバと互換でない可能性があります。 別のカードで試してみましょう。