Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_all bug

名前

       /etc/pcmcia/config - PCMCIA カードの設定データベース

説明

       PCMCIA カード設定ファイルは cardmgr(8) が起動時に読み込む。 この設定ファイルは、カードサー
       ビスが利用できる IO ポート・メモリ・IRQ といったリソースを定義し、  デバイスドライバのロー
       ドや初期化の方法を指定し、 それぞれの PCMCIA カードの詳細について記述する。

リソースの記述

       リソースのエントリには  3 つの種類がある。 include, exclude, reserve である。 include した
       リソースは、 カードサービスがクライアントとなる各種ドライバに割り当てる。 カードサービスの
       制御下にあるリソースは  exclude  することもできる。 例えばシステムの特定のデバイスがそのリ
       ソースを使うような場合である。 リソースは  reserve  することもできる。  この場合は、そのリ
       ソースを特に使いたいと要求するクライアントが現われるか、  あるいは他に割り当て可能なリソー
       スが無くなるまで、 そのリソースは割り当てない。

       リソースのタイプには 3 つの種類がある。 port, memory, irq である。  デフォルトでは、カード
       サービスは他のデバイスドライバが使っていない   irq   を自由に使えるものと仮定する。   しか
       し、カードサービスは I/O ポートとアドレスの範囲に関しては なんの仮定も行わない。 Linux  の
       ドライバの中には リソースの利用状況を登録しない物があるからである。 そのため、 IO ポートと
       メモリの範囲については、 PCMCIA デバイスが使って良い部分を明示的に指定しなければならない。

       これらをまとめると、設定ファイルの内容は以下のようになる:

              include port 0x300-0x3ff, memory 0xd0000-0xdffff
              reserve irq 3
              exclude irq 4, port 0x3f8-0x3ff

       この例では、カードサービスは I/O ポートの 0x300  から  0x3ff  と、メモリの  0xd0000   から
       0xdffff までを割り当てて良いことになる。 exclude 指定をした irq 4 と I/O ポートの 0x3f8 か
       ら 0x3ff は、 利用可能であっても使わない。 reserve 指定した irq 3 は、  特にその割り込みを
       クライアントが必要とした場合に限って利用する。

       カードサービスは、他のカーネルデバイスドライバに割り当てられている  リソースは決して利用し
       ない。 include/exclude/reserve  メカニズムは、カードサービスが使おうと試みるリソースを指定
       するもので、 Linux のリソースマネージャーに登録されないデバイスと うまく共存するための仕組
       みなのである。

デバイスドライバの記述

       カードサービスの全てのクライアントドライバは、 32 文字のタグによって識別される。  設定ファ
       イル中の  device エントリがクライアントドライバを記述する。 必須のフィールドは識別用のタグ
       のみで、 その他のフィールドには、 そのデバイスを利用するためにロードすべきカーネルモジュー
       ルや  デバイスの実体を有効/無効するために実行するスクリプトを指定する。 ドライバの実体がソ
       ケットに割り当てられると、 ドライバは cardmgr にシステムから見たそのデバイスの名称 (ネット
       ワークデバイスならば  eth0、 モデムならば cua1 など) を通知する。 この名称は設定用スクリプ
       トに渡される。例えば:

              device "pcnet_cs"
                class "network"
                module "net/8390" opts "ei_debug=4", "pcnet_cs"

       という指定では、 pcnet_cs デバイスは 2  つのローダブルモジュールが必要であることを示してい
       る。 1 つめのモジュール (8390) はモジュールディレクトリの net サブディレクトリにあり、指定
       したパラメータ ei_debug=4 と共にロードされる。 2 つめのモジュール (de650_cs) は pcmcia  サ
       ブディレクトリにある。 このデバイス (pcnet_cs) は network というクラスに属し、デバイスの起
       動と終了には、       設定ファイルと同じディレクトリにある        network        スクリプト
       (/etc/pcmcia/network) が利用される。

       デバイスドライバ宣言の外部で、  特定のカーネルモジュールのデフォルトのオプションを指定する
       こともできる。 これはローカルな設定オプションを メインのカード設定ファイルから分離するのに
       便利である。

              module "pcnet_cs" opts "mem_speed=600"

カードの記述

       card  宣言は、PCMCIA カードとそのクライアントドライバとを 結びつけるものである。 card 宣言
       は、カードの名称・カードが挿入された際の識別方法・ 利用するドライバ、の  3  つの部分からな
       る。  カードを識別するには  6  つのメソッド (方法) がある。 version メソッドはカード識別に
       VERSION_1 id 文字列を用いる。 manfid メソッドはカードの MANFID タプルコードを用いる。  pci
       メソッドは  CardBus カードの PCI デバイス ID を用いる。 tuple メソッドはカードの任意の CIS
       タプルに埋めこまれた文字列を用いる。 function メソッドはカードの  function  ID  を用いる。
       anonymous メソッドは CIS を持たないカードにマッチする (これは旧式のタイプ I メモリカードに
       用いる物である)。 以下にいくつか例を示す。

              card "Linksys Ethernet Card"
                tuple 0x40, 0x0009, "E-CARD PC Ethernet Card"
                bind "pcnet_cs"

       このカードは 0x40 タプルのオフセット 0x0009 から始まる 文字列 "E-CARD PC Ethernet Card" に
       よって識別され、 pcnet_cs ドライバにバインドされる (ドライバはあらかじめ driver 宣言で定義
       されていなければならない)。

              card "Connectware LANdingGear Adapter"
                manfid 0x0057, 0x1004
                bind "pcnet_cs"

       このカードは MANFID タプルの内容によって識別される。 pci メソッドも同じ形式で、 manfid  の
       代わりに pci と書く。

              card "D-Link DE-650 Ethernet Card"
                version "D-Link", "DE-650"
                bind "pcnet_cs"

       このカードは VERISON_1 タプルによって識別され、 pcnet_cs ドライバにバインドされる。

              card "Serial port device"
                function serial_port
                bind "serial_cs"

       これは  CIS  function ID が 0x02 (シリアルポートカードに対応) のあらゆるカードを serial_cs
       ドライバにバインドする。  function   ID   は数字でも良いし、定義済みの   function   である
       memory_card,   serial_port,  parallel_port,  fixed_disk,  video_adapter,  network_adapter,
       aims_card のいずれかでもかまわない。

       最後に、カードで見付かった設定情報とは異なるものを  カードサービスに用いさせるような指定も
       設定ファイルでは可能である。  カードの設定情報が特に不完全・不正確である場合にこれを使える
       こともある。 新しい設定はファイルから読み込む。例を示す:

              card "Evil broken card"
                manfid 0x1234, 0x5678
                cis "fixup.cis"
                bind "serial_cs"

メモリ領域定義

       メモリ領域定義は、特定の形式のメモリデバイスを Memory Technology Driver (MTD) に関連付けす
       るために用いられる。 MTD はメモリアクセスを、デバイス独立なやり方で提供する。 カードがこの
       種のメモリデバイスであると識別されると、 カードサービスはそのメモリ領域全てに対して MTD を
       読み込もうとする。

       メモリ領域定義は  region キーワードと識別文字列から始まる。 次に識別メソッドである defaultjedec が来る。 default は他に分類されなかったすべての領域で使う MTD を指定し、 jedec は
       メモリ領域を JEDEC の識別コードによって識別する。 例えば

              region "Intel Series 2 Flash"
                jedec 0x89 0xa2
                mtd "iflash2_mtd"

       は、 JEDEC がマッチすれば iflash_mtd ドライバがロードされることを示している。

バグ

       今のところ reserve キーワードの実装はこのバージョンのカードサービスにはあまり便利でない。

著者

       David Hinds - dahinds@users.sourceforge.net

関連項目

       cardmgr(8)