|
|
次のページ
前のページ
目次へ
6. kernel 2.4 の ISAPnPkernel 2.4 の ISAPnP の文書は linux/Documentations/isapnp.txtです。 ISAPnP のソースファイル群は linux/drviers/pnp/以下にあります。 kernel 2.4 で ISAPnP を有効にするには、 kernel 再構築の時に CONFIG_ISAPNP=y または mを指定します。 6.1 kernel 2.4 ISAPnP のパラメータkernel 2.4 ISAPnP のパラメータを下記に示します。通常は使う必要は無いと 思います。このパラメータは ISAPnP がモジュールの場合に使います。 /etc/modules.confに下記のように、行を追加して使用します。 option isapnp isapnp_rdp=0x203,isapnp_reset=0 凡例
6.2 /proc/isapnpkernel 2.4 での ISAPnP サポートは /proc/isapnp を使用します。 /proc/isapnp を読み出して設定を調べ、適切な設定を /proc/isapnp へ書き込みます。 /proc 以下に isapnp が無い場合、kernel で isapnp が有効になっていません。 /proc/isapnp の読み出し例/proc/isapnp を読み出すと下記のような項目が出力されます。 下記の例では SoundBlaster16 と 33k アナログモデムと 3Com 3C509B の 3 枚 の ISAPnP カードがあります。これは ISAPnP のコンフィグレーションレジスタを 読み出したものです。 /proc/isapnp の読み出し例を簡単に説明します。
Card 1 'CTL0080:Creative ViBRA16CL PnP' PnP version 1.0 Product version1.1
この ISAPnP カードのベンダ名は CTL0080 です。
Logical device 0 'CTL0041:Audio'
論理デバイス 0 の名前は CTL0041 です。
Device is active
この論理デバイスはすでに active 有効になっています。
Active port 0x220,0x330,0x388
Active IRQ 5 [0x2]
Active DMA 1,5
現在の設定です。
Resources 0
Priority preferred
Port 0x220-0x220, align 0x0, size 0x10, 16-bit address decoding
Port 0x330-0x330, align 0x0, size 0x2, 16-bit address decoding
Port 0x388-0x3f8, align 0x0, size 0x4, 16-bit address decoding
IRQ 5 High-Edge
DMA 1 8-bit byte-count compatible
DMA 5 16-bit word-count compatible
使用可能なリソースです。I/O ポートアドレスは 0x220,0x330,0x388 の三つを
使います。IRQ は 5, DMA は 1 と 5 を使います。
Alternate resources 0:1
Priority acceptable
Port 0x220-0x280, align 0x1f, size 0x10, 16-bit address decoding
Port 0x300-0x330, align 0x2f, size 0x2, 16-bit address decoding
Port 0x388-0x3f8, align 0x0, size 0x4, 16-bit address decoding
IRQ 5,7,2/9,10 High-Edge
DMA 1,3 8-bit byte-count compatible
DMA 5,7 16-bit word-count compatible
代替えとなるリソースです。
1 番目の I/O ポートアドレスは 0x220,0x240,0x260,0x280 のうち一つが使えます。
2 番目の I/O ポートアドレスは 0x300,0x330 のどちらかが使えます。
3 番目の I/O ポートアドレスは 0x338 から 4 バイト置きに 0x3f8 まで内、一つ
が使えます。
IRQ は 5,7,2/9,10 の 四つの内、一つが使えます。 2/9 はカスケード接続された割り
込みであることを、示しています。
1 番目の DMA は 1 か 3 が使えます。
2 番目の DMA は 5 か 7 が使えます。
(中略)
Logical device 1 'CTL7002:Game'
論理デバイス 1 の名前は CTL7002 です。
Device is not active
この論理デバイスは not active 無効になっています。
Resources 0
Priority preferred
Port 0x200-0x200, align 0x0, size 0x8, 16-bit address decoding
使用可能なリソースです。 I/O ポートアドレスは 0x200 を使います。
Alternate resources 0:1
Priority acceptable
Port 0x200-0x208, align 0x7, size 0x8, 16-bit address decoding
代替えとなるリソースです。 I/O ポートアドレスは 0x200 と 0x208 のどちらかが使
えます。
Card 2 'FUJ0202:FUJITSU Modem 33600 PNP/I2' PnP version 1.0 Product version 0.5
この ISAPnP カードのベンダ名は FUJ0202 です。
Logical device 0 'FUJ0000:Unknown'
論理デバイス名は FUJ0000 です。
Supported registers 0x2
Device is active
Active port 0x2f8
Active IRQ 3 [0x3]
Active DMA 0,0
現在の設定です。
Resources 0
Priority acceptable
Port 0x2f8-0x2f8, align 0x7, size 0x8, 16-bit address decoding
IRQ 3 High-Edge
使用可能なリソースです。I/O ポートアドレスは 0x2f8, IRQ は 3 を使います。
Alternate resources 0:1
Priority acceptable
Port 0x3f8-0x3f8, align 0x7, size 0x8, 16-bit address decoding
IRQ 4 High-Edge
代替えとなるリソースです。I/O ポートアドレスは 0x3f8, IRQ は 4 を使います。
Alternate resources 0:2
Priority acceptable
Port 0x3e8-0x3e8, align 0x7, size 0x8, 16-bit address decoding
IRQ 4 High-Edge
(中略)
Alternate resources 0:8
Priority acceptable
Port 0x100-0xfff8, align 0x7, size 0x8, 16-bit address decoding
IRQ 3,4,5,7,2/9,10,11,12,15 High-Edge
代替えとなるリソースです。I/O ポートアドレスは 0x100 から 8 バイト置きに
0xfff8 までの内、一つが使えます。
IRQ は 3,4,5,7,2/9,10,11,12,15 の内、どれか一つが使えます。
Card 3 'TCM5098:3Com 3C509B EtherLink III' PnP version 1.0 Product version 1.0
この ISAPnP カードのベンダ名は TCM5098 です。
Logical device 0 'TCM5098:Unknown'
論理デバイス名は TCM5098です。
Supported registers 0x2
Compatible device PNP80f7
論理デバイス名の別名です。
Device is active
Active port 0x300
Active IRQ 10 [0x2]
現在の設定です。
Resources 0
Priority preferred
Port 0x210-0x3e0, align 0xf, size 0x10, 16-bit address decoding
IRQ 3,5,7,2/9,10,11,12,15 High-Edge
使用可能なリソースです。
I/O ポートアドレスは 0x210 から 16 バイト置きに0x3e0 までの内、一つが
使えます。
IRQ は 3,4,5,7,2/9,10,11,12,15 の内、どれか一つが使えます。
リソースの内 Port と IRQ の表記について簡単に説明します。
Port 0x210-0x3e0, align 0xf, size 0x10, 16-bit address decoding Port ベースアドレス = 最小アドレスから最大アドレスの範囲の値 & 境界 になります。この場合、0x210,0x220,0x230...0x3d0,0x3e0 となります。 IRQ 3,5,7,2/9,10,11,12,15 High-Edge /proc/isapnp への書き込み/proc/isapnp への書き込みにより、ISAPnP を設定します。 6.3 kernel 2.4 ISAPnP の設定項目kernel 2.4 の文書 linux/Documents/isapnp.txtを参考にしてください。 /proc/isapnp を読み出した結果を基に、設定します。 /proc/isapnp へ書き込むコマンドは下記の通りです。
6.4 kernel 2.4 での設定例下記に設定例を示します。 SoundBlaster16 用の設定です。論理デバイス 1 CTL7002 は'dev 1 CTL7002'となるはず ですが、'dev 0 CTL7002'にしないと、エラーになります。 $cat SB16 card 0 CTL0080 dev 0 CTL0041 port 0 0x220 port 1 0x330 port 2 0x388 irq 0 5 dma 0 1 dma 1 5 active dev 0 CTL7002 port 0 0x200 active 3C509用の設定です。 $cat 3c509 card 0 TCM5098 dev 0 TCM5098 port 0 0x300 irq 0 10 active 33k アナログモデムは自動設定で、動作していますので、設定はしていません。 6.5 kernel 2.4 での設定の注意
6.6 設定の試験設定が正しいか試験してみましょう。 #cat SB16 >/proc/isapnp設定に問題があれば、メッセージが表示されるか、/var/log/messagesに 記録されます。以下にエラーメッセージの例を示します。 Sep 29 21:55:09 localhost kernel: isapnp: device 'CTL7002' order 0 not found Sep 29 21:55:35 localhost kernel: isapnp: wrong command 'logdev'設定に問題がなければ、とくにメッセージは表示されず、 /var/log/messagesにも、なにも記録されません。 /proc/isapnp を読み出すと、設定したデバイスが Device is activeに なるはずです。 以下に設定が成功した場合の /proc/isapnp を示します。
Card 1 'CTL0080:Creative ViBRA16CL PnP' PnP version 1.0 Product version 1.1
Logical device 0 'CTL0041:Audio'
Device is active
中略
Logical device 1 'CTL7002:Game'
Device is active
中略
Card 3 'TCM5098:3Com 3C509B EtherLink III' PnP version 1.0 Product version 1.0
Logical device 0 'TCM5098:Unknown'
Supported registers 0x2
Compatible device PNP80f7
Device is active
6.7 kernel 2.4 起動時の設定ISAPnP の設定は、kernel 起動後、できるだけ早く行う必要があります。 ISAPnP の設定には /proc を使用するので、/proc がマウントされた直後に行う のが良いでしょう。 ディストリビューションによっても違いますが、ここでは、RedHat 系の /etc/rc.d/rc.sysinitスクリプトを使う場合を説明します。 /etc/rc.d/rc.sysinit の /proc のマウント直後に下記のように追加します。
mount -t proc /proc /proc
#isapnp in kernel
if [ -d /etc/isapnp.d ]; then
for i in /etc/isapnp.d/*; do
echo "ISA PnP setup :$i"
cat $i >/proc/isapnp
done
fi
そして、/etc/isapnp.d ディレクトリを作成し、その中に ISAPnP の設 定ファイルを置きます。設定ファイルの内容は kernel 2.4 での設定例を参照してください。 $ls /etc/isapnp.d 3c509 SB16 次のページ 前のページ 目次へ |
[ |