电脑技术学习

FreeBSD handbook中文版 14 声卡

dn001
目录
14;声卡
14.1;概要
14.2;寻找正确的设备
14.3;重新编译内核
14.4;创建和测试设备装载的节点
14.5;常见的问题
14.6;MP3;音乐
=============================================================
第14;章声卡
=============================================================
(翻译中出现的任何问题或错误,请广大读者及时反馈给我:freebsdhandbook@163.com);
14.1;概要
FreeBSD;支持很多种声卡,允许你输出各种格式的音乐。包括MP3,WAV,Ogg;Vorbis;等
等格式的音乐。FreeBSD;Ports;中也包含了很多应用程序可以允许你编辑音乐文件。
读完这章,你将了解到这些:;
.;如何定位你的声卡。
.;如何配置你的系统以便你的声卡能达到最佳状态。
.;通过使用专门的程序测试你的声卡的工作状态的方法。
.;如何解决声卡安装的一些问题。
读这章之前,你应当了解这些:;
.;如何配置和安装一个新内核(第9;章);
14.2;寻找正确的设备
在开始以前,应该要知道你拥有的声卡的型号,它所用的芯片,还有它是PCI;还是ISA;
卡。FreeBSD;广泛地支持多种PCI;及ISA;卡。如果在下面列表中没有发现与你一样的卡,请
参考pcm;联机手册。这不是完整的列表;不过已经列出了大部分通用的声卡。
.;Crystal;4237,;4236,;4232,;4231;
.;Yamaha;OPL-SAx;
.;OPTi931;
.;Ensoniq;AudioPCI;1370/1371;
.;ESS;Solo-1/1E;
.;NeoMagic;256AV/ZX;
.;Sound;Blaster;Pro,;16,;32,;AWE64,;AWE128,;Live;
第1;页FreeBSD;使用手册
.;Creative;ViBRA16;
.;Advanced;Asound;100,;110,;and;Logic;ALS120;
.;ES;1868,;1869,;1879,;1888;
.;Gravis;UltraSound;
.;Aureal;Vortex;1;or;2;
内核中使用的驱动程序视所拥有的声卡而定。下面的段落提供了更多的信息以及那些需
要加入内核设置的资料。
14.2.1;Creative,;Advance;和ESS;Sound;Cards;
如果有上面这些卡之一,请在内核中加入
device;pcm;
如果有PnP;ISA;卡,也请在内核中加入
device;sbc;
对于非PnP;ISA;卡,请在内核中加入
device;pcm;和device;sbc0;at;isa?;port0x220;irq;5;drq;1;flags;0x15;
那些是默认的设置。可能需要改变IRQ;或其它。其它信息请参考sbc;联机手册。
注意:;未经修补的FreeBSD;4.0;不支持Sound;Blaster;Live;这不包含在这份文件中。
建议在尝试使用这张卡以前更新到最新版的-STABLE。
14.2.2;Gravis;UltraSound;Cards;
对于PnP;ISA;卡,请在内核中加入
device;pcm;

device;gusc;
如果有非PnP;ISA;卡,请在内核中加入
device;pcm;

device;gus0;at;isa?;port;0x220;irq;5;drq;1;flags;0x13;
可能需要更改IRQ;或其它。其它信息请参考gusc;联机手册。
第2;页FreeBSD;使用手册
14.2.3;Crystal;声卡
对于Crystal;卡,请在内核中加入
device;pcm;

device;csa;
14.2.4;一般支持
对于PnP;ISA;或PCI;卡,请在内核设置中加入
device;pcm;
如果有不含bridge;驱动程序的非PnP;ISA;声卡,请在内核中加入
device;pcm0;at;isa?;irq;10;drq;1;flags;0x0;
可能需要改变IRQ;或其它,以符合硬件设置。
14.3;重新编译内核
在加入所需的驱动程序至内核设置后,请重新编译内核。其它信息请参考手册的第9.3;
节。
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;WITH;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。
第7;页

标签: