FreeBSD QandA 300

FreeBSD QandA

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 まで お知らせください。