2.2.6-RELEASE をインストールしていたマシンのマザーボードを ASUS T2P4 Ver.2.1 から、3.1 に変更しました。そーしたら・・。ISA PnP カードは根こそぎ動かなくなってしまいました。そんなこんなで、FreeBSD では、2.2.6-RELEASE で PnP がサポートされたのですかざすの設定です・・。
ISA PnP である SB16 を利用する為には代表的な設定方法は二つあります。今までの VoxWare ドライバを使う方法と、新たに 2.2.6-RELEASE でサポートされた Luigi ドライバを使う方法です。ともに PnP と言うコントローラをカーネルの config file に書いてカーネルのリコンフィグをします。
1. まず kernel を再構築する必要があります。config ファイルに以下の行を追加して再構築して reboot します。
-.pnp+VoxWare ドライバの設定
---------------- controller pnp0 controller snd0 device sb0 at isa? port 0x220 irq 5 conflicts drq 1 vector sbintr device sbxvi0 at isa? drq 5 device sbmidi0 at isa? port 0x330 device opl0 at isa? port 0x388 conflicts -----------------. pnp+Luigi ドライバの設定
---------------- controller pnp0 device pcm0 at isa? port ? tty irq 5 drq 1 flags 0x15 vector pcmintr ----------------両方で必要なのが、"controller pnp0" になります。で、VoxWare と言うのは今までの FreeBSD で利用していたサウンド系のドライバ。Luigi と言うのは新たに 2.2.6-RELEASE からサポートされた、 Linux から移植されたドライバです。どっちを使うかは皆さんの好み;-)。
2. reboot 後、ブートメッセージ(または dmesg )により以下のメッセージが表示されているか確認します。
-.pnp+VoxWare ドライバの結果
---------------- Probing for PnP devices: CSN 1 Vendor ID: CTL0024 [0x24008c0e] Serial 0x1006475d PnP: override config for CSN 1 LDN 0 vend_id 0x24008c0e Probing for devices on the ISA bus: : sb0 at 0x220 irq 5 drq 1 on isa sb0:-. pnp+Luigi ドライバの結果sbxvi0 at 0x0 drq 5 on isa sbxvi0: sbmidi0 at 0x330 on isa opl0 at 0x388 on isa opl0: ----------------
---------------- May 31 00:22:59 pochi /kernel: Probing for PnP devices: May 31 00:22:59 pochi /kernel: CSN 1 Vendor ID: CTL0024 [0x24008c0e] Serial 0x1006475d May 31 00:22:59 pochi /kernel: PnP: override config for CSN 1 LDN 0 vend_id 0x24008c0e May 31 00:22:59 pochi /kernel: pcm1 (SB16pnp両方のデバイス認識で、それぞれ以上のメッセージが出ていれば認識した事になります。音は出るでしょう;-)。最初に ISA PnP のテバイス認識が行われ、その結果 SB16 を認識する。と言う事になります。sn 0x1006475d) at 0x220 irq 5 drq 1 flags 0x15 id 13 May 31 00:22:59 pochi /kernel: Probing for devices on the ISA bus: ----------------
---------------- May 28 02:28:45 pochi /kernel: Probing for PnP devices: May 28 02:28:45 pochi /kernel: CSN 1 Vendor ID: CTL0024 [0x24008c0e] Serial 0x1006475d May 28 02:28:45 pochi /kernel: PnP: override config for CSN 1 LDN 0 vend_id 0x24008c0e May 28 02:28:45 pochi /kernel: This is a SB16 PnP, but LDN 0 is disabled May 28 02:28:45 pochi /kernel: Probing for devices on the ISA bus: ----------------3. boot: プロンプトで -c と入力し、UserConfig のプロンプトで以下のコマンドを入力します。尚、以下の値は SB16 の標準の値になります。値は自分の PC の値を MS/OS 等で参照して設定しましょう。
-. pnp+VoxWare ドライバ/pnp+Luigi ドライバの設定の両方で有効
---------------- config > pnp 1 0 os config > pnp 1 0 enable config > pnp 1 0 irq0 5 config > pnp 1 0 drq0 1 config > pnp 1 0 drq1 5 config > pnp 1 0 port0 0x220 config > pnp 1 0 port1 0x330 config > pnp 1 0 port2 0x388 config > quit ----------------これで多分、dmesg の結果が 2. の様になったと思います。ふふふ(^^)V。
あ、後、pnp+Luigi ドライバ を認識した後、それ専用にデバイスを作ってあげる必要があります。
---------------- # cd /dev # sh MAKEDEV snd1 # ln -sf mixer1 mixer # ln -sf audio1 audio # ln -sf dsp1 dsp ----------------その他、必要と思われるデバイスを ???1 に symlink してあげてください。。オプションパラメータを間違えずにね・・。
4. pnp+Luigi ドライバ 使用時の注意点
と、言う事で、案外簡単に PnP で SB16 が動きます。詳細は 「ソフトウェアデザイン 1998 年 4 月号」に PnP の事、Luigi ドライバの事が出ているので参考にしてみては・・。
更に余談ですが、ソフトウェアデザインの 5 月号 41 ページには私のホームページの URL が「参考文献」として載っていたりします(^^)V。