DOS/V機で最高峰のISAバスSoundCardであるSoundBlaster64をFreeBSDで動作させる方法を説明します。FreeBSDでもWindowsのように音楽を演奏させる事ができます。
今回の方法はFreeBSD 2.2.7で確認しました。
controller snd0 device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr device sbxvi0 at isa? drq 5 device sbmidi0 at isa? port 0x330 device opl0 at isa? port 0x38a #device awe0 at isa? port 0x620の5行です。 また、SoundBlaster64はPnPで資源を割り当てていますので、FreeBSDでもPnPデバイスを利用するために次の一行を加えてあげます。
controller pnp0先程しらべた I/OポートアドレスやIRQと比べて下さい。ちなみに私のマシンでの場合は
オーディオ: I/Oアドレス 0220-022F I/Oアドレス 0330-0301 I/Oアドレス 0388-038B IRQ 05 DMA 01 DMA 05 MIDI: I/Oアドレス 0620-0223 I/Oアドレス 0A20-0223 I/Oアドレス 0E20-0223となっています。、上の設定を利用して、
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 0x300 device opl0 at isa? port 0x388 device awe0 at isa? port 0x620とゆうよう書き換え5行加えました。
# config 設定ファイル # cd ../../compile/設定ファイル # make depend # make
config> pnp 1 0 enable os irq 5 port0 0x220 port1 0x330 port2 0x388 drq0 1 drq1 5 config> pnp 1 2 enable os port0 0x620 port1 0xa20 0xe20 config> quitとします。
sb0 at 0x220 irq 5 drq 1 on isa sb0: <SoundBlaster 16 4.16> sbxvi0 at 0x0 drq 5 on isa sbxvi0: <SoundBlaster 16 4.16> sbmidi0 at 0x330 on isa <SoundBlaster MPU-401> awe0 at 0x620 on isa opl0 at 0x388 on isa opl0: <Yamaha OPL-3 FM>とカーネルが判別すれば認識しています。
# cd /dev # ./MAKEDEV snd0として下さい。これはサウンド関連のデバイスを作るという事です。
# cat test.au > /dev/audioこのように、デバイスに直接流し込んでやる事で聞く事ができます。その他には、 CD を演奏した音楽を聞いたり、playmidi などで MIDI 形式のものを聞いたり、 sox を利用する事で、 .wav の拡張子がつくファイルを .au に直して聞いたりする事 ができます。