PCMCIA(5) PCMCIA(5) 名前 /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) pcmcia-cs 2000/10/16 16:37:38 PCMCIA(5)
コロナウイルスの日ごとの感染者数・死者数をグラフ化してみました。どの国が増加傾向にあり、どの国が終息に向かっているかを視覚化しています。
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa