WSN-A2FのPCM音源をFreeBSDで使う

初版 1999-04-03

メルコのウィンドウアクセラレータボードであるWSN-A2F,WSN-A4FにはPCM音源としてCS4231(*1)がのっています。FreeBSD(98)ではこのボードに対応していないので、このPCM音源を使えるようにする方法をまとめました。

ソースを修正してカーネルを再構築することで、とりあえずPCMがなるようになりますが、まだいろいろ不具合があります。あくまで自己責任で使用してください。ちなみにFM音源は使用できません。

(*1) Cirrus Logic(旧CRYSTAL)社のCS4231はMicrosoftのWindows Sound Systemと互換のPCM音源。

FreeBSD(98) 2.2.8R-Rev01用

FreeBSD(98)で使用されているVoxWareのソースを使います。あらかじめsysinstallでソースをインストールしておいてください。

  1. まず、以下のパッチを当てるファイルをダウンロードします。

    wsn_pcm228r.diff  ← パッチを当てるための差分ファイル。

  2. /usr/src/sys/i386/isa/soundに移動し、ダウンロードしたファイルを使ってパッチを当てます。ad1848.cが修正されます。
    # cd /usr/src/sys/i386/isa/sound
    # patch < wsn_pcm228r.diff
    
    
  3. /usr/src/sys/pc98/confにあるConfigファイルを修正します。以下の項目を有効にしてカーネルを再構築します。

    controller snd0
    device mss0 at isa? port 0xf40 irq 12 drq 3 vector adintr

    portは 0xf40 固定。irqは3,5,12から、drq(dma)は0,1,3から空いているところを選んでください。

  4. カーネルをインストールした後、リブートします。正常に認識すると以下の表示があるはず。

    mss0 at 0xf40 irq 12 drq 3 on isa
    f40=13 f43=ff ← ここの値は変わります。
    mss0: <MS Sound System (CS4231)>

  5. あとはテスト。 PCMファイルを使って以下のように実行してみてください。
    # cat hogehoge.au > /dev/audio
    
    

    PCMファイルがないときはemiclockなんかをインストールして起動してみましょう。
    WAVEファイルがあるならsplayをインストールしてみましょう。

わかっている不具合

参考文献

UNDOCUMENTED Vol.2 メモリ・I/O編 http://www.webtech.co.jp/

CS4231A Data Sheet http://www.cirrus.com/


戻る