SoundBlaster AWE64の設定方法

掲載1999年1月5日


DOS/V機で最高峰のISAバスSoundCardであるSoundBlaster64をFreeBSDで動作させる方法を説明します。FreeBSDでもWindowsのように音楽を演奏させる事ができます。

今回の方法はFreeBSD 2.2.7で確認しました。

  1. まず、調べる事。

    SoundBlaster が IRQ などの資源をどのくらい使っているかを調べて下さい。普通は 説明書などに記載されているはずです。 もし、Windows95 などと共存していると簡単に調べる事ができます。今回は、 Windows95 を使って調べたいと思います。各種設定を行えるコントロールパネル のなかにシステムという、項目があると思います。 そのシステムのデバイスマネージャーで使っているサウンドのプロパティをみて 下さい。I/OポートアドレスやIRQやDMAの値が分ると思います。この値を全てメモして 下さい。

  2. カーネルの再コンパイル

    1. 再コンパイルの準備

      /usr/src の下に sys というディレクトリがあるでしょうか? sys はカーネルの 再コンパイルに必要なディレクトリですので、/stand/sysinstall などでインストール して下さい。

    2. 設定ファイルへ追加

      /usr/src/sys/i386/conf の下に自分のマシンの設定ファイルを用意します。GENERIC を コピーして使うのが一般的です。既に用意してある場合はそのファイルをコピーして 使ってください。
      このファイルに何を追加するかは同じディレクトリにある、LINT というファイルを 参考にします。このファイルには使用できるほぼ全ての設定が書いてあります。
      この LINT を利用して sound 関連の1部を取って来ます。利用するのは

      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行加えました。

    3. カーネルの再コンパイル

      今度は実際に自分の設定ファイルを使ってカーネルを作り直して下さい。
      # config 設定ファイル
      # cd ../../compile/設定ファイル
      # make depend
      # make 
      

    4. そのカーネルを指定してリブート

      それではできた kernel を / に別の名前でコピーして reboot してみて下さい。 Boot: と出て来たら新しい kernel の名前を指定してあげて下さい。それで でうまく起動したら、dmesg コマンドで本当に認識しているか確認してみて下さい。

  3. PnPの設定

    上記の設定でサウンド関係のデバイスを正常に認識しない場合はリブート後に
    boot: -c
    で起動し、FreeBSDにPnPのリソースを割り当てるようにします。
    config>
    とプロンプトが帰ってくるので、
    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>
    
    とカーネルが判別すれば認識しています。

  4. デバイスの作成

    たとえ、SoundBlaster が認識されてもこのままでは音がでません。そこで、音を出力 するデバイスを作ってあげなくてはいけません。/dev にデバイスが全て置いてあり ますがそこに、MAKEDEV というシェルスクリプトがあります。これを実行すると、 さまざまなデバイスを作る事ができます。今回は SoundBlaster64 ですので、
    # cd /dev
    # ./MAKEDEV snd0
    
    として下さい。これはサウンド関連のデバイスを作るという事です。

  5. 音楽を聞こう

    UNIX の代表的なサウンドファイルは .au で終るものです。まず、それを聞いてみたい と思います。このファイルは、
    # cat test.au > /dev/audio 
    
    このように、デバイスに直接流し込んでやる事で聞く事ができます。その他には、 CD を演奏した音楽を聞いたり、playmidi などで MIDI 形式のものを聞いたり、 sox を利用する事で、 .wav の拡張子がつくファイルを .au に直して聞いたりする事 ができます。

Last modified