FreeBSD QandA ジャンル別一覧: Plug and play
[管理番号 352] (最終更新 1999/11/03 04:52:21)
Q. PnP の Sound カードを FreeBSD で認識させる方法を教えてください。
A. Luigi の snd driver を使ってみましょう。
<URL:http://info.iet.unipi.it/~luigi/FreeBSD.html>
から入手できます。1999年8月6日の時点で、最新版は、
<URL:http://info.iet.unipi.it/~luigi/snd980607.tgz>
<URL:http://info.iet.unipi.it/~luigi/pnp971020.tgz>
になります。1997年9月3日版から、PnP support codeが分離されています。
このドライバは、CS4236/CS4237, CS4232, SB32, SB16, OPTI931(buggy),
ESS1868、ES1370(PCI) を サポートしています。これら以外でも、Windows
Sound System (WSS/MSS) や SoundBlaster (SB) をエミュレートできる
カードであれば、動作する可能性があります。このドライバは、現在
FreeBSD-3.0 に採用されています。
これ以外にも、
・xperimnt/ISA_PnPのパッチを当ててみる
・最初にWindows95を立ち上げてからFreeBSDを立ち上げる
・マザーボードの BIOS に「PnP 対応 OS を使用する」という項目が
あれば、これを無効にする
などの方法で動作することもあります。
[管理番号 372] (最終更新 2001/04/18 02:12:12)
Q. 以下のような、ISA PnP の LAN カードは使えますか?
例: アライドテレシス LA-ISA (ed)
AceR ISA PnP Ethernet ALN-101T (ed)
3Com 3C509-TPO EtherLink III (ep)
A. 使えますが、以下に述べる作業が必要な場合があります。
通常、カードの設定を参照、変更する DOS 用の utility software がつい
ているはずですので (ベンダーが web で公開している場合もあります)、
それを用いて他の ISA カードと IRQ、I/O アドレスが衝突していないか確
認し、必要なら変更します。
4.0-RELEASE 以降は、ISA PnP をきちんと扱うようになっていますので、
特にリソースを指定する必要はありません。
具体的には、kernel configuration file の記述は 3Com 3C509 を使う場合、
device ep
だけにし、
at isa? port 0x280 irq 10 iomem 0xd8000
のようなリソースの指定は省略します。
2-STABLE、3-STABLE では ISA PnP はうまく扱えませんので、上記
utility で PnP を OFF にし、確認した IRQ、I/O port 及び iomem の情
報を指定する必要があります。
尚、これらリソース情報は、kernel を再構築しなくても、kernel.conf ファ
イルや、boot 時の userconfig で指定可能です。
[管理番号 439] (最終更新 1999/02/17 23:58:45)
Q. PnP って何ですか?
A. PC に差すボードは、IRQ/DRQ/IOアドレス などの値が他と重複しないよう
に管理する必要があります。広義には、これらの値(I/O 資源)をソフトウェア
で調停する枠組のことを、Plug and Play あるいは PnP といいます。
PCI や PCMCIA など、比較的設計の新しいバスでは、設計の早い段階でこ
の I/O 資源の調停をソフトウェアで行う枠組を考えていますが、ISA の場合
は最初はそのような調停を行っていませんでした。そこで、ISA でもソフトウェ
アで統一的に設定する枠組が考えられました。これが (狭義の) PnP です。通
常 PnP と言った場合には、こちらの意味の文脈がほとんどです。
ISA バスの PnP は、ISA バスのボードが広く普及した後にあとづけで設計
された等の理由で、かなりトラブルの原因になることが多いようです。
[管理番号 440] (最終更新 2001/08/12 05:25:06)
Q. FreeBSD では ISA バスの PnP をどう扱っていますか?
A. ISA のボードでは、IRQ/DRQ/IOアドレス などの資源を設定するには、おお
よそ次の四つの方法があります。
0. そもそも資源の設定を変えられない。
1. ボード上のディップスィッチによって設定する。
2. (DOS 上で動作する)設定用プログラムによって設定する。
3. PnP 機能によって設定する。
ボードによっては 1, 2, 3 どれでも選択できるものもありますし、どれか一
つに固定のものもあります。0 に該当するのはマザーボードに組込みのものか、
あるいは game port などのごく一部にすぎません。
PnP というのは、これらの I/O 資源をソフトウェアで可変にできる枠組で
あって、ボードが自分で設定するわけではありません。その設定を行なうソフ
トウェアが、
a. BIOS であったり
b. FreeBSD や Windows95 などの OS であったり
c. アプリケーションであったり
するわけです。もちろん、c. は行儀の悪いことで、DOS 以外の OS では普通
はしません。
FreeBSD では a. か b. になりますが、なるべく a. に頼らない方が良いで
しょう。a. は PC やマザーボードに依存してできたりできなかったりします。
また一見設定しているようで、腐った内容を設定したりする BIOS もあります。
古いマザーボードだと、全く PnP に対応していないもの(つまり、PnP の設定
を全く行なわないもの)もあります。また、ボードを指す slot 単位で資源の
指定ができるものもあります。こういうものの場合は、ボードを別の slot に
差し替えると動作が変ります。たとえ BIOS が PnP に対応していても、OS が
その設定を書換えることも可能です。これらから、BIOS 如何にかかわらず
FreeBSD で PnP の設定をすれば良さそうです。
ところが問題は、今までにリリースされた FreeBSD では PnP の設定機能を
*持っていない* ということなのです。FreeBSD 起動時のコンフィギュレーショ
ンでは、IRQ/port 等の資源の設定ができますが、これは決して PnP の設定を
している訳ではなくて、(1. 2. 3. の)何らかの方法で設定したはずの資源の
情報を、kernel に教えているにすぎないのです。ですから、3. 以外が可能な
場合にはそうするのが楽です。1. or 2. の場合の資源の設定はどうするかと
言うと、それはそのボードのマニュアルを読んでいただかなくてはなりません。
では、3. しか選べないボードを使う場合はどうしたら良いかというと、二つ
方法があります。一つは FreeBSD 3.0-current を使う方法です。これには、
luigi's sound driver から派生した PnP のコードが入っています。もう一つ
は 2.2.x のカーネルにパッチをあてる方法です。パッチは CD-ROM などの
distribution では xperiment/ISA_PnP にあります。また、Web ならば
<URL:http://people.freebsd.org/~smpatel/>
からも入手できます。場合によっては、さらに [FreeBSD-users-jp 15951] の
パッチをあてる必要もあります。後者のパッチは現在はもはや保守されていない
ようですし、コンパイル前に手作業でソースコードを編集する必要もあります
ので、できれば前者を使うのが良いでしょう。
[管理番号 759] (最終更新 1999/02/17 23:58:45)
Q. 3com 3c509(PnP)のカードの PnPを Offにするにはどうしたらいいのでしょ
うか?
A. 以下の手順で作業しましょう。
(1) DOSを起動する。
(2) 3C509附属のインストールFDで、インストール・プログラムを起動する。
(a: INSTALL)
(3) "Configuration Dialog Box"に、
Plug and Play Enabled
というのが設定されているので、これを
Plug and Play Disabled
にする。
(4) 上記の設定をセーブする。
(5) 電源を切って再起動する。
Installメニュー以外の方法として PNPDSABLを実行する方法もあります。
(<URL:http://infodeli.3com.com/infodeli/inotes/techtran/302a_5ea.htm>)
[管理番号 1556] (最終更新 2000/05/24 20:55:08)
Q. Plug & Play の内蔵モデムを使いたい。
A. まず、そのモデムが (いわゆる) WinModem で "ない" ことを確認してください。
WinModem は FreeBSD で動作させるのは今のところ不可能です ([管理番号 832]
参照)。
内蔵モデムの一般的な使用法は [管理番号 574] を参照してください。ここでは
Plug & Play (以下PnP) の内蔵モデムについての特記事項のみ示します。
実は FreeBSD FAQ にそのものズバリの説明が記載されていますので、まずは
こちらを参照してください。
http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/FAQ/hardware.html#AEN979
この URL の内容を簡潔にまとめると次の説明のように、カーネル再構築を最大
で2回行う必要があります。
1. カーネルの PnP サポートを有効にするため、カーネルコンフィギュレーショ
ンファイルに以下の行を加えてカーネルを再構築します。
controller pnp0
2. 再構築したカーネルをインストール、再起動すると PnP サポートが有効に
なるので、再起動時に PnP モデムが次の例のように認識されます (dmesg
コマンドで確認できます)。重要なのは、PnP ID (例では 0x0302aa1a) と
ベンダー ID (例では FUJ0203) です。
CSN 2 Vendor ID: FUJ0203 [0x0302aa1a] Serial 0x08001a17 Comp ID: @@@0000 [0x00000000]
sio1: type 16550A
3. /sys/i386/isa/sio.c の 2777 行目 (FreeBSD のバージョンにより異りま
す) 付近の siopnp_ids[] に、上記で調べた PnP ID とベンダー ID を書
き加えます (/*...*/ 部分はコメントですので書かなくても OK です)。
static pnpid_t siopnp_ids[] = {
{ 0x5015f435, "MOT1550"},
{ 0x8113b04e, "Supra1381"},
{ 0x9012b04e, "Supra1290"},
{ 0x7121b04e, "SupraExpress 56i Sp"},
{ 0x11007256, "USR0011"},
{ 0x30207256, "USR2030"},
{ 0x31307256, "USR3031"},
{ 0x90307256, "USR3090"},
{ 0x0100440e, "Cardinal MVP288IV"},
{ 0x0302aa1a, "FUJ0203"}, /* 追加部分 */
{ 0 }
};
4. ふたたびカーネル再構築、インストール、再起動して以下のような起動時
メッセージが出てくれば成功です。下記例ではモデムが sio0 に認識され
ています。
CSN 2 Vendor ID: FUJ0203 [0x0302aa1a] Serial 0x08001a17 Comp ID: @@@0000 [0x00000000]
sio1: type 16550A
sio1 (siopnp <FUJ0203> sn 0x08001a17) at 0x3e8-0x3ef irq 9 on isa
5. 可能ならばこれらの情報を、パッチを付けて send-pr(1) してください。
上手くすれば次の FreeBSD のリリースでは、何もしないで使えるようにな
るかもしれません。なお、send-pr については [管理番号 19] を参照して
ください。
- [管理番号 54] Q.IBM のパソコンを使っているんですが、Mwave という内蔵モデムは Fr...
- [管理番号 574] Q.内蔵モデムボードを使えるようにする設定方法を教えて下さい。A.内蔵モデムボー...
- [管理番号 832] Q.WinModem は FreeBSD で利用できないと聞きました。WinMo...
- [管理番号 1556] Q.Plug & Play の内蔵モデムを使いたい。A.まず、そのモデムが (い...