FreeBSD で MP3 を元気良く鳴らしてみましょう!
- 注)
- これは一例です。
ページ内に出て来る設定値をそのまま使っても動作しない事は十分考えられます。 環境が違うのですから当然と言えるでしょう。 インストールの為の手引として作成しました。 作業方法のみを参考にして下さい。 全てのサウンドカードが同じ要領で使える様になるわけではありませんし、 同じサウンドカードだったにせよ動作を保障する物でもありません。
ですが、ちょっとしたミスにより動作していない場合も考えられます。 気軽に書き込める掲示板を用意してあります。 意見・感想・質問等がある方はこちらをどうぞ。
名称 | 内容 | 備考 |
---|---|---|
FreeBSD-3.1Release | Operating system | |
XFree86-3.3.3.1 | Window system | |
bladeenc-0.76 | MP3 encoder | |
tosha-0.6 | CD-DA data reader | |
xamp-0.8.7 | MP3 player | |
SB16P20/B | Sound card | ぷらっとホームにて購入 |
PX32TSe/TO | 32X CD-ROM drive |
カーネルコンパイルに慣れている人はすぐに行動に移してしまうかも知れませんが、ここはグッと我慢です。 私の場合、上記のデフォルトの設定だけでは使えませんでした。 話せば長くなるのですが、そんな事を書いても仕方無いので目的への最短コースを紹介しましょう。controller snd0 device sb0 at isa? port 0x220 irq 5 drq 1 device sbxvi0 at isa? drq 5 device sbmidi0 at isa? port 0x330 device opl0 at isa? port 0x388
Good Configuration と言うのはこのカードの標準的な設定値を意味します。 ですが、実際には標準的な設定値からずれて認識されているのが分かります。 また、このサウンドチップ(ViBRA16X)は 16-bit DMA 転送がサポートされていない事も分かります。 よって sbxvi0 と言うデバイスもそのままでは使う事が出来ません。(XVI はローマ数字の 16) pnpinfo の報告を元に LINT からコピーした行を下記のように手を加えます。% su # pnpinfo Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID CTL00f0 (0xf0008c0e), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 16 Device Description: Creative ViBRA16X PnP Logical Device ID: CTL0043 0x43008c0e #0 Device Description: Audio TAG Start DF Good Configuration IRQ: 5 - only one type (true/edge) DMA: channel(s) 1 8-bit, not a bus master, count by byte, , Compatibility mode DMA: channel(s) 3 8-bit, not a bus master, count by byte, , Compatibility mode I/O Range 0x220 .. 0x220, alignment 0x1, len 0x10 [16-bit addr] I/O Range 0x330 .. 0x330, alignment 0x1, len 0x2 [16-bit addr] I/O Range 0x388 .. 0x388, alignment 0x1, len 0x4 [16-bit addr] TAG Start DF 〜〜〜 (中略) 〜〜〜 Logical device #0 IO: 0x0220 0x0300 0x0388 0x0000 0x0000 0x0000 0x0000 0x0000 IRQ 5 0 DMA 1 0 IO range check 0x00 activate 0x01 〜〜〜 (後略) 〜〜〜
修正が済んだらカーネルコンパイルを行いますが、コンパイルの方法については説明しません。 他の人のページか、専門の書籍を参考にして新しいカーネルをインストールして下さい。 無事にインストールまで進められた人はOSを再起動してみましょう。と、その前に・・・ OSがサウンドカードを使うには専用の窓口が必要となります。それを作ってあげる事にします。 具体的には root 権限を得て専用のスクリプトを実行します。controller snd0 device sb0 at isa? port 0x220 irq 5 drq 1 device sbxvi0 at isa? conflicts drq 1 device sbmidi0 at isa? port 0x300 device opl0 at isa? port 0x388
すると /dev の下に下記のデバイスファイルが作られると思います。指定した snd0 そのものは作られません。% cd /dev % su # sh MAKEDEV snd0
audio0 , dspW0 , midi0 , mixer0 , music0 , pss0 , sequencer0 , sndstat上記のファイルに加えていくつかのシンボリックリンクも作成されます。 あまり使う事は無いと思いますが、一応 /dev の下を見て確認しておきましょう。
MP3 や WAV 形式のファイル再生だけならば、とりあえず sbmidi0 と opl0 が認識されていなくても問題は無いと思います。 最悪の場合、それでも先に進んじゃいましょう(^^;sb0 at 0x220 irq 5 drq 1 on isa snd0: sbxvi0 at drq 1 on isa snd0: sbmidi0 at 0x300 on isa snd0: opl0 at 0x388 on isa snd0:
% mpg123 foo.mp3どうです? 鳴りましたか? 鳴らなかったと言うのであれば、再度 pnpinfo コマンドを実行してシステムリソースを確認して見ましょう。 作り直したカーネルと設定はあっていますか? もしかすると特定のアプリケーションと相性が悪いのかも知れません(未確認)。 そんな時は他のプレーヤーも試して見ましょう。 au 形式のオーディオファイルや、wav 形式のファイルが手持ちの中にあるのならそちらも試して見ましょう。 それぞれ、
となります。 異なるフォーマットでも鳴らなかった場合はハード的なトラブルも疑った方が良いでしょう。 ケーブルが繋がっていなかったとか、アンプの電源がOFFになっていたとかは良くある事ですが、シャレになりません。% waveplay foo.wav (wav 形式の場合) % cp foo.au /dev/audio0 (au 形式の場合)
取り込みの過程が見れた方が安心出来るのでバーボーズオプション(-v)を付けてみました。 root 権限を持っていなとこのツールは利用出来ない様ですが、その為に出来上がったファイルのオーナーが root になってしまいます。 何かと不便なので chown コマンドで一般ユーザーの物にしてあげましょう。% su # tosha -t 3,5,6 -f wav -v
% bladeenc foo.wav var.wav tmp.wavの様にすると拡張子だけ mp3 になって変換されます。 元の wav ファイルは残りますので不要なら消しましょう。消し忘れるとハードディスクを圧迫します。
% xamp &としてプレーヤーを立ち上げます。 一番下の中央付近にちょっと大きめのボタンがありますから押します。 すると演奏リスト作成用のダイアログが開くので [Add File] ボタンをおいて曲を追加して行きます。 ダイアログをクローズし、プレイボタンを押せばリスト順に再生されますが、ファイル名でダブルクリックすればその曲から再生が出来ます。 あとは普通のCDプレーヤーと特に変わらない操作ですから説明は不要でしょう。