リソースのタイプには 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 のリソースマネージャーに登録されないデバイスと うまく共存するための仕組みなのである。
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 "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"
メモリ領域定義は region キーワードと識別文字列から始まる。 次に識別メソッドである default か jedec が来る。 default は他に分類されなかったすべての領域で使う MTD を指定し、 jedec はメモリ領域を JEDEC の識別コードによって識別する。 例えば
region "Intel Series 2 Flash" jedec 0x89 0xa2 mtd "iflash2_mtd"
は、 JEDEC がマッチすれば iflash_mtd ドライバがロードされることを示している。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]