嬉しいことに、誕生日のプレゼントとして妻は私に新品のサウンドカード をくれました。しかし、残念なことに、その Soundblaster 16 PnP は、 Linux 上では動いてくれません。しかも、あろうことか 3com の 3c509 まで 動かなくなる始末です。
最終的にこのハードウェアを動かすのに、私はカーネル付属の Linux サウンド ドライバと、以下のサイトで入手した isapnp パッケージを使いました。
結局、サウンドカードを動かすまでには、ふたつの大きな障害がありました。
最初の障害は、サウンドカードの IRQ と IO ポートが分からなかったという
点です。この問題の解決には、isapnptools
パッケージを使いました。
ふたつ目は、3c509 イーサネットカードの問題でした。イーサネットカードの
設定をいくらいじっても、Linux カーネルがカードを認識してくれなかった
のです。ようやく分かったのは、サウンドカードが邪魔をして、3c509 の
検出コードとの間でコンフリクトが起きていたということでした。
対処方法は、以下のとおりです。
isapnptools
をインストールする。/etc/isapnp.conf
を
編集して、サウンドカードの IRQ や IO ポートと他のデバイスのリソースとが
コンフリクトを起こさないようにする。
sound support
はモジュールとし、
isapnp.conf
での設定に合わせて IRQ, IO, DMA を設定して、
ビルドする。また、3c509 ドライバもモジュールとする。(カーネルの
コンパイルとインストールが終わったあとで、make modules
と
make modules_install
を忘れずに実行すること。)
私が使っているディストリビューションは Slackware で、カーネルは 2.0.23 です。
私は、ネットワークが設定される前に、isapnp を実行するようにしています
(/etc/rc.d/rc.M
ファイル内でホスト名が設定された直後です)。
# EZA
# Setup plug and play devices
/sbin/isapnp /etc/isapnp.conf
そして、/etc/rc.d/rc.inet1
の冒頭で、ネットワークドライバをロード
するようにしました。
# EZA
# Load networking card module
/sbin/insmod 3c509
起動時の自動検出の際、イーサネットカードからの反応がないという警告
メッセージは無視することにしました。これは、私の設定では、問題に
ならないからです。最後に、/etc/rc.d/rc.local
にサウンド
ドライバモジュールをロードするためのコマンドを入れました。
/sbin/insmod sound
Linux 上での Plug and Play に関する詳細は、
Eric Ayers eric.ayers@compgen.com