Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_all
名前
/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 キーワードと識別文字列から始まる。 次に識別メソッドである default か jedec が来る。 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)