sound-setup.html
来自「FreeBSD安装说明概述 FreeBSD 提供了一个以文字为主」· HTML 代码 · 共 468 行
HTML
468 行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>安装声卡</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="多媒体" href="multimedia.html" /><link rel="PREVIOUS" title="多媒体" href="multimedia.html" /><link rel="NEXT" title="MP3音频" href="sound-mp3.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="multimedia.html"accesskey="P">Prev</a></td><td width="80%" align="center" valign="bottom">Chapter 16. 多媒体</td><td width="10%" align="right" valign="bottom"><a href="sound-mp3.html"accesskey="N">Next</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="SOUND-SETUP" name="SOUND-SETUP">16.2. 安装声卡</a></h1><i class="AUTHORGROUP"><span class="CONTRIB">贡献者</span> Moses Moore.</i> <div class="SECT2"><h2 class="SECT2"><a id="SOUND-DEVICE" name="SOUND-DEVICE">16.2.1.选择正确的设备</a></h2><p>在开始之前,你应该清楚声卡类型、所用的芯片以及它是PCI还是ISA卡。FreeBSD支持大量的PCI卡和ISA卡。如果你在下面的列表中没有找到你的声卡类型,那么你可以去<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">pcm</span>(4)</span>看看。虽然下面的列表不全,不过也包括大部份最常见的声卡类型。</p><ul><li><p>Crystal 4237, 4236, 4232, 4231</p></li><li><p>Yamaha OPL-SAx</p></li><li><p>OPTi931</p></li><li><p>Ensoniq AudioPCI 1370/1371</p></li><li><p>ESS Solo-1/1E</p></li><li><p>NeoMagic 256AV/ZX</p></li><li><p><span class="TRADEMARK">SoundBlaster</span>® Pro, 16, 32, AWE64, AWE128, Live</p></li><li><p>Creative ViBRA16</p></li><li><p>Advanced Asound 100, 110, and Logic ALS120</p></li><li><p>ES 1868, 1869, 1879, 1888</p></li><li><p>Gravis UltraSound</p></li><li><p>Aureal Vortex 1 or 2</p></li></ul><p>要使用声卡,你就应装载正确的驱动程序。完成的方式有两种:最简单的是使用命令<spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">kldload</span>(8)</span>来装载一个内核模块,在命令行输入</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">kldload snd_emu10k1.ko</kbd></pre><p>或者在文件<tt class="FILENAME">/boot/loader.conf</tt>里加入一行,内容如下</p><pre class="PROGRAMLISTING">snd_emu10k1_load="YES"</pre><p>上边实例用于Creative <span class="TRADEMARK">SoundBlaster</span>Live!声卡。其它可装载的模块列在文件<ttclass="FILENAME">/boot/defaults/loader.conf</tt>里边。</p><p>另外,你也可以把支持你声卡的代码静态地编译到内核里去。下面的部份就采用这种方式支持硬件给出提示。关于重新编译内核,请参考<a href="kernelconfig.html">Chapter 9</a>。</p><div class="SECT3"><h3 class="SECT3"><a id="AEN21013" name="AEN21013">16.2.1.1. Creative, Advance, and ESS声卡</a></h3><p>如果你有上面的某一种声卡的话,就请增加:</p><pre class="PROGRAMLISTING">device pcm</pre><p>到内核配置文件里去。如果你的是即插即用的ISA卡,就请再加入:</p><pre class="PROGRAMLISTING">device sbc</pre><p>对于非即插即用的ISA卡,加入:</p><pre class="PROGRAMLISTING">device pcmdevice sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15</pre><p>到内核配置文件里去。上面给出的设置都是默认的。你可能要改变IRQ或其它的设置来符合你的声卡。参看<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">sbc</span>(4)</span>页面获取更多信息。</p><div class="NOTE"><blockquote class="NOTE"><p><b>Note:</b> Sound BlasterLive声卡在FreeBSD 4.0以下没有补丁是不被支持的,而关于补丁本章并不涉及。因此如果你要用这种声卡的话,建议你升级系统到最新的稳定版(STABLE)。</p></blockquote></div></div><div class="SECT3"><h3 class="SECT3"><a id="AEN21027" name="AEN21027">16.2.1.2. Gravis UltraSoundCards</a></h3><p>如果是即插即用的ISA卡,请增加:</p><pre class="PROGRAMLISTING">device pcmdevice gusc</pre><p>到内核配置文件里去。如果是即插即用的ISA卡,就请增加:</p><pre class="PROGRAMLISTING">device pcmdevice gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13</pre><p>到内核配置文件里去。你可能要改变IRQ或其它的设置来符合你的声卡。参看<spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">gusc</span>(4)</span>页面获取更多信息。</p></div><div class="SECT3"><h3 class="SECT3"><a id="AEN21037" name="AEN21037">16.2.1.3. Crystal Sound Cards</a></h3><p>对于Crystal声卡,请增加:</p><pre class="PROGRAMLISTING">device pcmdevice csa</pre><p>到内核配置文件里去。</p></div><div class="SECT3"><h3 class="SECT3"><a id="AEN21042" name="AEN21042">16.2.1.4. 一般性支持</a></h3><p>如果是即插即用的ISA卡或PCI卡,请增加:</p><pre class="PROGRAMLISTING">device pcm</pre><p>到内核配置文件里去。如果是非即插即用的ISA卡并且又没有桥路驱动器(bridgedriver)的话,就请增加:</p><pre class="PROGRAMLISTING">device pcm0 at isa? irq 10 drq 1 flags 0x0</pre><p>到内核配置文件里去。你可能要改变IRQ或其它的设置来符合你的声卡。</p></div><div class="SECT3"><h3 class="SECT3"><a id="AEN21049" name="AEN21049">16.2.1.5. 集成声卡</a></h3><p>一些集成声卡的计算机可能需要在内核配置文件中做如下设置:</p><pre class="PROGRAMLISTING">options PNPBIOS</pre><div class="NOTE"><blockquote class="NOTE"><p><b>Note:</b> 如果你正在运行FreeBSD 5.0 或更新版本,那么就不需要<varclass="LITERAL">PNPBIOS</var>选项了。这个选项已经被移除,而其功能现在是一直是有效的。</p></blockquote></div></div></div><div class="SECT2"><h2 class="SECT2"><a id="SOUND-DEVICENODES" name="SOUND-DEVICENODES">16.2.2.创建和测试设备结点</a></h2><p>重启后,登入系统,检查文件<ttclass="FILENAME">/var/run/dmesg.boot</tt>中的设备,如下所示:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">grep pcm /var/run/dmesg.boot</kbd>pcm0: <SB16 DSP 4.11> on sbc0</pre><p>输出结果可能与你的系统有所不同。如果没有<ttclass="DEVICENAME">pcm</tt>设备显示正常,则说明先前什么地方出了错。如果真的出了错,就请再回到内核配置文件中检查一下,确信是否选对了设备。一般性的问题列在<a href="sound-setup.html#TROUBLESHOOTING">Section 16.2.2.1</a>中。</p><div class="NOTE"><blockquote class="NOTE"><p><b>Note:</b>如果你用的是FreeBSD 5.0或更新,你可以放心略过剩下部份不看。这些版本都使用了<spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">devfs</span>(5)</span>来自动创建设备结点。</p></blockquote></div><p>如果先前的命令返回<tt class="DEVICENAME">pcm0</tt>,你必须以用户<ttclass="USERNAME">root</tt>运行下边的命令:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">cd /dev</kbd><samp class="PROMPT">#</samp> <kbd class="USERINPUT">sh MAKEDEV snd0</kbd></pre><p>如果先前的命令返回<tt class="DEVICENAME">pcm1</tt>,执行上边同样的命令,记得把<ttclass="DEVICENAME">snd0</tt>换成<tt class="DEVICENAME">snd1</tt>。</p><div class="NOTE"><blockquote class="NOTE"><p><b>Note:</b> 上边的命令<span class="emphasis"><iclass="EMPHASIS">不会</i></span>创建<tt class="DEVICENAME">/dev/snd</tt>设备!</p></blockquote></div><p><tt class="COMMAND">MAKEDEV</tt>能创建一组设备结点,其中包括:</p><div class="INFORMALTABLE"><a id="AEN21091" name="AEN21091"></a><table border="0" frame="void" class="CALSTABLE"><col /><col /><thead><tr><th>设备</th><th>描述</th></tr></thead><tbody><tr><td><tt class="DEVICENAME">/dev/audio</tt></td><td>与<span class="TRADEMARK">Sparc</span>®兼容的音频设备</td></tr><tr><td><tt class="DEVICENAME">/dev/dsp</tt></td><td>数字声音设备</td></tr><tr><td><tt class="DEVICENAME">/dev/dspW</tt></td><td>和<tt class="DEVICENAME">/dev/dsp</tt>一样,只是采样率是16位(bit)</td></tr><tr><td><tt class="DEVICENAME">/dev/midi</tt></td><td>存取Raw和midi设备</td></tr><tr><td><tt class="DEVICENAME">/dev/mixer</tt></td><td>控制端口混音设备</td></tr><tr><td><tt class="DEVICENAME">/dev/music</tt></td><td>2阶音序接口</td></tr><tr><td><tt class="DEVICENAME">/dev/sequencer</tt></td><td>音序设备</td></tr><tr><td><tt class="DEVICENAME">/dev/pss</tt></td><td>可编程设备接口</td></tr></tbody></table></div><p>如果一切顺利,你的声卡应该能发声了。如果你的CD-ROM或者DVD-ROM光驱连接到了声卡,你现在就可以放一张CD到光驱里使用<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">cdcontrol</span>(1)</span>命令来播放了:</p><pre class="SCREEN"><samp class="PROMPT">%</samp> <kbd class="USERINPUT">cdcontrol -f /dev/acd0c play 1</kbd></pre><p>程序各不相同,如<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/audio/workman/pkg-descr"><ttclass="FILENAME">audio/workman</tt></a>提供了很好的界面。或许你会想安装一个像<ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/audio/mpg123/pkg-descr"><ttclass="FILENAME">audio/mpg123</tt></a>一样的程序来听MP3。</p><div class="SECT3"><h3 class="SECT3"><a id="TROUBLESHOOTING" name="TROUBLESHOOTING">16.2.2.1.常见问题</a></h3><div class="INFORMALTABLE"><a id="AEN21152" name="AEN21152"></a><table border="1" class="CALSTABLE"><col /><col /><thead><tr><th>错误信息</th><th>解决方法</th></tr></thead><tbody><tr><td>``<tt class="ERRORNAME">unsupported subdevice XX</tt>''</td><td><p>一个或多个设备结点没有正确地建立。重复上面的步骤。</p></td></tr><tr><td>``<tt class="ERRORNAME">sb_dspwr(XX) timed out</tt>''</td><td><p>I/O端口没有设置正确。</p></td></tr><tr><td>``<tt class="ERRORNAME">bad irq XX</tt>''</td><td><p>IRQ设置不正确。确信设定的IRQ和声卡的IRQ是一样的。</p></td></tr><tr><td>``<tt class="ERRORNAME">xxx: gus pcm not attached, out of memory</tt>''</td><td><p>没有足够的内存空间供设置使用。</p></td></tr><tr><td>``<tt class="ERRORNAME">xxx: can't open /dev/dsp!</tt>''</td><td><p>使用命令<tt class="COMMAND">fstat | grepdsp</tt>进行检查是否有其它的程序打开了设备。值得注意的是<bclass="APPLICATION">esound</b>和<bclass="APPLICATION">KDE</b>提供的声卡支持造成麻烦。</p></td></tr></tbody></table></div></div></div><div class="SECT2"><h2 class="SECT2"><a id="AEN21187" name="AEN21187">16.2.3. 利用多个声源</a></h2><i class="AUTHORGROUP"><span class="CONTRIB">贡献者</span>Munish Chopra.</i> <p>同时有多个声源的声音在播放,这是完全可能的,例如当<bclass="APPLICATION">esound</b>或者<bclass="APPLICATION">artsd</b>不支持与其它程序共享音频设备时。</p><p>FreeBSD可以通过<span class="emphasis"><i class="EMPHASIS">虚拟声道(Virtual SoundChannels)</i></span>来达到,具体设置用工具<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">sysctl</span>(8)</span>。虚拟的声道可以能过在内核里混合声音来混合声卡里播放的声道。</p><p>使用两条sysctl命令来设置虚拟声道的数目。如果你是<ttclass="USERNAME">root</tt>用户,照此做:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">sysctl hw.snd.pcm0.vchans=4</kbd><samp class="PROMPT">#</samp> <kbd class="USERINPUT">sysctl hw.snd.maxautovchans=4</kbd></pre><p>上面的实例设定了4个虚拟声道,这也是实际上所使用的数目。<varclass="VARNAME">hw.snd.pcm0.vchans</var> 是<ttclass="DEVICENAME">pcm0</tt>的虚拟声道数,一当链接上一个设备它就可配置了。 <varclass="LITERAL">hw.snd.maxautovchans</var>是分配给新的音频设备的虚拟声道数,此时这个设备要用<span class="CITEREFENTRY"><span class="REFENTRYTITLE">kldload</span>(8)</span>来链接。因为<ttclass="DEVICENAME">pcm</tt>模块可以独立装载许多硬件驱动程序,因此<varclass="VARNAME">hw.snd.maxautovchans</var>也就可以存储分配给以后链接到的设备的虚拟声道数。</p><p>如果不使用<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">devfs</span>(5)</span>,你就不得不把你的应用程序指向<ttclass="DEVICENAME">/dev/dsp0</tt>.<var class="REPLACEABLE">x</var>,这里<varclass="REPLACEABLE">x</var>为0到3,因为在上面的例子里<varclass="VARNAME">hw.snd.pcm.0.vchans</var>被设为了4。在使用<spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">devfs</span>(5)</span>的系统里,上边那些会自动分配给用户。</p></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="multimedia.html"accesskey="P">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">Home</a></td><td width="33%" align="right" valign="top"><a href="sound-mp3.html"accesskey="N">Next</a></td></tr><tr><td width="33%" align="left" valign="top">多媒体</td><td width="34%" align="center" valign="top"><a href="multimedia.html"accesskey="U">Up</a></td><td width="33%" align="right" valign="top">MP3音频</td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?