FreeBSD QandA 300
Q. 音楽 CD を鳴らすにはどうしたらいいですか?
A. まずは CD のデバイスを調べましょう。基本的には
SCSI CD ドライブなら /dev/cd0c
ATAPI CD ドライブなら /dev/wcd0c (FreeBSD 2.2.8-RELEASE 以前)
/dev/acd0c (FreeBSD 3.0-RELEASE 以降)
となっていますが、わからなければ dmesg(8) コマンドで調べてください。
例えば、
acd0: <CD-ROM 40X/AKU/T02> CDROM drive at ata1 as master
acd0: 128KB buffer, PIO4
acd0: Reads: CD-R, CD-RW, CD-DA stream, packet
acd0: Audio: play, 255 volume levels
acd0: Mechanism: ejectable tray
acd0: Medium: no/blank disc inside, unlocked
などという出力が得られれば /dev/acd0c が CD のデバイスです。
次に FreeBSD 付属の cdcontrol(1) コマンドで音楽 CD が鳴るか
どうかを試してみましょう。
% cdcontrol -f 調べたデバイス名 play 1
で、CD の 1 曲目が鳴るはずです。
注意点 1.
デバイスの読み込み権限が必要ですので、
cdcontrol: /dev/acd0c: Permission denied
などとなったら、root で
# chmod 644 /dev/acd0c
とするのがよいでしょう。これだと誰でも音楽 CD を鳴らせます
(逆にいうと、誰でも鳴らせるという危険性もあります)。
あるいは、デフォルトでは
crw-r----- 2 root operator .... /dev/acd0c
となっているので、「音楽 CD を聞きたい人は operator グループに
属する」と決めておく手もあります。ただし operator グループに属する
人は shutdown(8) できてしまいます → [管理番号 461]
また、/etc/fbtab に
/dev/ttyv0 0644 /dev/acd0c
などと記述する方法もあります。詳細は fbtab(5) の man ページを
参照してください。
とりあえず試すだけなら root で cdcontrol(1) を実行すればよいです。
注意点 2.
音楽 CD の音をサウンドカードから出すには、サウンドカードの
設定が必要です。もしまだサウンドカードの設定を行っていない
場合は、CD ドライブ前面のヘッドホンジャックから音が出ている
か調べて下さい。CD ドライブ前面のヘッドホンジャックは、サウ
ンドカードを経由せず、直接 CD ドライブから出力されているから
です。
なお、音楽 CD を鳴らす際、cdcontrol(1) などの CD プレイヤーは、
CD ドライブに「何曲目を鳴らせ」と命令を出します。後は CD ドライブが
音を垂れ流して、サウンドカードは CD ドライブからの出力をミキシング
して出力するだけです。その証拠に、FreeBSD を shutdown(8) しても、
マシンの電源が切れるまでは演奏は続きます。
ですから、音楽 CD が鳴るからといってサウンドカードの設定が
うまくいっている (=MP3 も鳴る) とは限りません。
cdcontrol(1) 以外にも、ports/packages で xcdplayer, cdplay, workman,
cdplayer, xmcd, cda, wmcdplay などたくさんの CD プレイヤーが用意されて
います。ところが、以下の例のように、デバイスの指定方法がばらばらです。
cdcontrol -f /dev/acd0c play 1
xcdplayer -device /dev/acd0c
workman -c /dev/acd0c
wmcdplay -d /dev/acd0c
デバイスの指定方法については、各コマンドの man ページを参照して下さい。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。