14.4 建立和测试设备装载的节点
重新启动后,登陆并执行cat /dev/sndstat。会出现类似下面的输出信息:
FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53
Installed devices:
pcm0: <Aureal Vortex 8830> at memory 0xfeb40000 irq 5 (4p/1r +channels duplex)
如果看到错误信息,表示前面某个步骤错了。如果发生了,请重新检查一次内核设置以确定选择了正确的设备。
如果没有错误信息而且显示pcm0,请执行su 变成root 并如下执行:
# cd /dev
# sh MAKEDEV snd0
如果没有错误信息而且显示pcm1,使用su 变成root 并如下执行:
# cd /dev
# sh MAKEDEV snd1
请注意上面任一个命令将不会产生/dev/snd 设备!而是产生一组设备节点包括:
第3 页FreeBSD 使用手册
说明设备
与SPARC 兼容的声音设备/dev/audio
数字声音设备/dev/dsp
象/dev/dsp,但每次取样为16 bits /dev/dspW
/dev/midi midi 访问设备
控制端口混音设备/dev/mixer
/dev/music Level 2 音序接口
/dev/sequencer 音序设备
可编程设备接口/dev/pss
如果顺利,现在应该有个可正常工作的声卡了。如果没有,请参考下一节。
14.5 常见的问题
14.5.1. 我遇到一个unsupported subdevice XX error!
一个或多个设备节点没有被正确的产生。请重复上面的步骤。
14.5.2. 我遇到一个sb_dspwr(XX) timed out 的错误!
I/O port 没有设置正确。
14.5.3. 我遇到a bad irq XX 的错误!
IRQ 设置有误。请确定设置的IRQ 和声卡IRQ 一致。
14.5.4.我遇到“xxx: gus pcm not attached, out of memory” 的错误。这是什么造成的?
如果发生了,表示没有足够的内存来使用这个设备。
14.6 MP3 音乐
14.6.1 MP3 播放器
最流行的XFree86 MP3 播放器是XMMS。Winamp 的skins 也能被用在XMMS 上。XMMS 也支持插件。
XMMS 能从audio/xmms port 或package 中安装。XMMS 接口是很直观的,它有一个播放目录,一个图形的均衡器等。这些都很象winamp。也可以在audio/mpg123 port 中选择一个命令行的MP3 播放器。可以这样做:
第4 页FreeBSD 使用手册
# mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See ''README'' for more!
THIS SOFTWARE COMES W99vH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from BT - Foobar-GreastHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
在你的系统中,/dev/dsp1.0 应该被dsp 设备接口所替换。
14.6.2 转换CD 音轨
在把CD 或CD 音轨转换成MP3 时,在CD 上的声音数据必须被转到硬盘上。这可以把CDDA数据转成WAV 文件来完成。cdda2wav 工具,是sysutils/cdrtools 套件的一部分。下面的命令可以把整个CD 转成一个个(每个音轨)WAV 文件:
# cdda2wav -D 0,1,0 -B
-D 0,1,0指出了SCSI 设备是0,1,0,它是与cdrecord -scanbus 输出相符合的。转换每个音轨,可以加上-t 选项:
# cdda2wav -D 0,1,0 -t 7
这个例子可以从CD 上抓取7 个音轨。可以指定一个范围,如1 到7:
# cdda2wav -D 0,1,0 -t 1+7
cdda2wav 只支持SCSI CDROM 驱动器。对于IDE 驱动器可以选择其它的工具。
14.6.3 MP3 编码
现在,可以选择lame 这个mp3 编码器。可以在audio/lame 中找到。
第5 页FreeBSD 使用手册
使用转换的WAV 文件,可以使用下面的命令把audio01.wav 转成audio01.mp3:
# lame -h -b 128 \
--tt " Foo Song Title" \
--ta " FooBar Artist" \
--tl " FooBar Album" \
--ty " 2001" \
--tc " Ripped and encoded by Foo" \
--tg " Genre" \
audio01.wav audio01.mp3
128K 是标准的MP3 比特率。多数使用160, 或192。更高的比特率,可能需要更多的磁盘空间。-h 选项可以打开“higher quality but a little slower”模式。
14.6.4 MP3 解码
为了把mp3 转成CD,它们必须被转成不被压缩的WAV 格式。XMMS 和mpg123 都支持这些。
在XMMS 中写入磁盘:
1. 运行XMMS.
2. 在窗口上单击右键打开XMMS 菜单。
3. 在Options 中选择Preference。
4. 改变Output Plugin 为Disk Writer Plugin。
5. 键入Configure.
6. 键入一个要写的非压缩文件的目录。
7. 打开一个MP3 文件,把volume 设成100%,EQ 设为关闭。
8. 键入Play -- XMMS 将显示正在播放的MP3 文件,但听不见声音。说明它正在转换MP3.
第6 页FreeBSD 使用手册
9. 如果要听MP3,记得将Output Plugin 设回默认值。
在mpg123 中写成stdout:
1. Run mpg123 -s audio01.mp3 > audio01.pcm
XMMS 用WAV 格式写一个文件,而mpg123 把MP3 写成PCM 音乐格式。这些格式能用cdrecord 或burncd 程序来写成CDR 光盘。可以看看第12.6 节的在FreeBSD 中使用CD burner。