Sound on FreeBSD2007年03月08日 13時28分03秒

7.0-CURRENT でしばらくの間、音が出なかった。普段は音が出なくても全然困らない。時折、音楽を流すときに必要になるくらいだ。その為、音が出なくなったのに気が付くのに一ヵ月以上掛かることも稀ではない。

ある日、音が出ないのに気が付いたのだ。そこで、まずは常套手段。


% man sound
SOUND(4)               FreeBSD Kernel Interfaces Manual               SOUND(4)

NAME
     sound, pcm, snd -- FreeBSD PCM audio device infrastructure

SYNOPSIS
     To compile this driver into the kernel, place the following line in your
     kernel configuration file:

           device sound

6.1-STABLE では動いていたので、設定などに問題があるとは思えなかった。しかし、説明通りに試してみる。

$ kldload snd_driver

この後、snd_driver が読まれているのを確認した。

そこで、サウンドデバイスを調べる。


% cat /dev/sndstat 
FreeBSD Audio Driver (newpcm: 32bit)
Installed devices:
pcm0:  at io 0xcfdffe00, 0xcfdffd00 irq 11 bufsz 16384 kld snd_ich (1p/1r/1v channels duplex default

と、デバイスは正しく認識されているのだ。

デバイスはずっと正しく設定されていたのだ。問題はここだった。


% mixer 
Mixer vol      is currently set to  80:80
Mixer pcm      is currently set to  80:80
Mixer line     is currently set to  75:75
Mixer mic      is currently set to   0:0
Mixer cd       is currently set to  75:75
Mixer rec      is currently set to   0:0
Mixer igain    is currently set to   0:0
Mixer ogain    is currently set to  50:50
Mixer line1    is currently set to  75:75
Mixer phin     is currently set to   0:0
Mixer phout    is currently set to   0:0
Recording source: mic

pcm の値が 0 になっていたために、どんなに付属のボリュームを調整したり、mixer の vol を大きくしても音がならなかった。80 に設定したら、音が聞こえた。これに気が付くのに一週間くらい掛かった。

しかし、新たなる発見もあった。echo でスピーカに音を出せるのだ。


$ kldload speaker
$ echo CDE > /dev/speaker