名 前
/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 [AT] users.net