擬似デバドラ

 B-right/V 用のデバイスドライバの作り方は,わかっているものとします. 初期化処理が必要なだけで,常駐処理は必要ないので, デバイスドライバらしいデバイスドライバに関する知識は必要ありません. 要するに普通のプログラムと同様に,main で必要なことをやって,済めば終了しておわりです.

 インストール作業は,ディレクトリ pcat で mymake (ソースから作る場合) して,出来たバイナリを /SYS にコピー,STARTUP.CMD の sounddrv の前に, 1 行追加してこのドライバを呼び出すようにすれば OK という感じになります.

YMF754 の設定

 手元に実機があって実験が済んでいる YMF754 を例に説明します.

 まず,ALSA (Advanced Linux Sound Architecture) の FTP サイトから,資料を拾ってきます.資料があるディレクトリの URL はftp://ftp.alsa-project.org/pub/manuals/yamaha/pci/です.

 擬似デバドラでは,PCI のユーティリティライブラリを呼んで, 対象のカードを認識できたら初期化をおこないます.

 初期化は,おおむね,資料のサンプルと同じでですが,SoundBlaster 互換機能を有効にすることと各種の設定をサウンドドライバに合わせることに注意してください.

 また,DMA に関しては,SB-Link の機能が使えないのであれば, PCI コンフィギュレーションレジスタの 42h〜43h の Extended Legacy Audio Control の b[12:11] SMOD を,データシートでは "reserved" とされている 1 に設定するとうまくいくと思われます.

 資料のサンプルソースを見ればわかると思いますが,初期化時に, DSP やコントローラのコードをダウンロードしてやっています. これをやらないと YMF7x4 は動作しません.

 このことについて,データシート等には一切説明がないので, 正しい初期化手順であるかどうかは,動作確認というかたちでしかできません.

 資料にあるハードウェアリビジョンの違いについても注意する必要があります.

 最後に,サウンドカードの出力選択を SoundBlaster にし, マスターボリュームを最大にすれば終了です(このへんはソース(すまぬ.待たせた)を見てください).

IRQ の解放

 YMF7x4 の設定が済んだら,B-right/V の資源管理で「PCIデバイス」に割り当てられてしまっている IRQ を解放しないと(<未使用>の状態にしないと)サウンドドライバが動いてくれません.

 特定の IRQ を指定して解放させることはできませんので,まず PCI デバイスに割当てられている IRQ を全て取得したあとで「PCIデバイス」が確保しているIRQを一旦解放し, あらためて自分以外のIRQについて「PCIデバイス」で再確保,という手順が必要になります.