2.2.6-RELEASE の目玉。PnP で SB16 を利用しようっ!!
 何の事はない・・・。使って見たくて使ったのではなく、使う必要性が出来たので慌てて使った。と、言うのが現状です・・(^^;;

 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: 
sbxvi0 at 0x0 drq 5 on isa
sbxvi0: 
sbmidi0 at 0x330 on isa
 
opl0 at 0x388 on isa
opl0: 
----------------
-. pnp+Luigi ドライバの結果
----------------
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  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:
----------------
 両方のデバイス認識で、それぞれ以上のメッセージが出ていれば認識した事になります。音は出るでしょう;-)。最初に ISA PnP のテバイス認識が行われ、その結果 SB16 を認識する。と言う事になります。
 以下のメッセージが出ていた場合、pnp による自動プロープが失敗しているので boot 時の UserConfig で手動により設定してあげましょう。3. に進んでください。
----------------
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 ドライバ 使用時の注意点

-. timidity-0.2i に付いて
 timidity-0.2i では正しく音が出てくれない様です。ports でインストールし直しましょう。make patch した後、http://www.iet.unipi.it/~luigi/FreeBSD.html から snd980419.tgz (数値の部分は最新の日付けが入ります)と言うファイルを入手し、 misc/linux_a.c を ports の timidity のと置き換えて make;make install しましょう。make patch と叩くとソースは ftp で持って来てくれます。

-. Emiclock 2.0.0 に付いて
 Emiclock 2.0.0 に付いてでは「みゅっ」が聞こえずウインドが白く固まります。パッチを用意したのでどうぞ、ご利用ください。;-)
 このパッチを $EMIDIR/sys/FreeBSD に移して、cat emipatch | patch -p0 とした後で、 make;make install してください。

-. Luigi ドライバはちょっと不安定です・・(^^;;。
 私の場合は、mpg123 *.mp3 とかコマンド打ってから mp3 の演奏に入ると、10 曲の内、3 曲位が途中て演奏停止になってしまったりしてしまいます・・。VoxWare ドライバでは起きない現象だったのでちょっと驚いています・・。

 と、言う事で、案外簡単に PnP で SB16 が動きます。詳細は 「ソフトウェアデザイン 1998 年 4 月号」に PnP の事、Luigi ドライバの事が出ているので参考にしてみては・・。

 更に余談ですが、ソフトウェアデザインの 5 月号 41 ページには私のホームページの URL が「参考文献」として載っていたりします(^^)V。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.