⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alsa-sound-4.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>4</title>
</head>

<body>

<table>
  <tr>
    <td bgColor="#FFFFFF" vAlign="top"><a href="Alsa-sound-5.html"><img alt="Next" src="next.gif" width="16" height="16"></a> 
      <a href="Alsa-sound-3.html"><img alt="Previous" src="prev.gif" width="16" height="16"></a> <a href="Alsa-sound.html#toc4"><img alt="Contents" src="toc.gif" width="16" height="16"></a>
      <hr>
      <h2><a name="s4">4. 载入驱动程式</a></h2> 
      <p>有两种使用 ALSA 音效模组的方法.  
      笔者个人比较喜欢使用手动的方法,  
      也就是在开机时安插驱动程式. ALSA 驱动程式是以可载入/卸除模组为目标来设计  
      -- 例如说它们不会在载入後重设音量 --  
      所以您可以简单地使用 kerneld 的方法. 
      <p>(译注: 原文直译为 ALSA 驱动程式设计成可载入/卸除模组,  
      但译者认为 OSS 也可以这麽做(只差它会重设音量,  
      对模组使用者来说较不方便, 虽然解决办法是有(见 Sound  
      HOWTO)), 这麽翻无法凸显 ALSA 的优点, 故翻成上面的意思.  
      希望没误解...) 
      <p>请一定要阅读 <a href="#backw-compat">向前相容</a>这节,  
      如果您想要和以前的程式相容的话. 
      <p> 
      <h2><a name="ss4.1">4.1 用 modprobe 安插驱动程式</a></h2> 
      <p>请注意: 如果您有 PnP 音效卡, 您首先要设定正确的(或至少是已知的)  
      IO/IRQ/DMA. 请读 Plug-and-Play-HOWTO. 您已经设定过您的  
      随插即用 音效卡了吗? 好, 那麽请继续读下去.  
      主要部份是 &quot;modprobe snd-&lt;soundcard&gt;&quot;,  
      这样应该就可以. 不过并非所有安装套件都把 /sbin  
      包含在您的 PATH 环境变数下. 如果您得到 &quot;bash: modprobe:  
      command not found&quot; 这样的回应, 可能是由於 modprobe  
      没有在 path 中. 试著用 &quot;/sbin/modprobe snd-sb16&quot;,  
      或想办法找出 modprobe 公用程式在哪. 
      <p>对 Crystal 晶片组的卡来说可能最困难. ALSA  
      驱动程式不对这些卡进行自动侦测.  
      更进一步的资讯记载在驱动程式目录下的 INSTALL 档中.  
      接下来笔者举两个例子, 然後接著是个列表: 
      <p>Gravis UltraSound (GUS) 及相容卡: 
      <blockquote> 
        <code> 
        <pre>/sbin/modprobe snd-gusclassic
</pre> 
        </code> 
      </blockquote> 
      对完全 16 位元的 SoundBlaster 卡 (SoundBlaster 16 (PnP),  
      SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 (PnP): 
      <blockquote> 
        <code> 
        <pre>/sbin/modprobe snd-sb16
</pre> 
        </code> 
      </blockquote> 
      <p> 
      <h2><a name="ss4.2">4.2 那张卡应该用哪个驱动程式?</a></h2> 
      <p> 
      <h3>Gravis UltraSound Extreme</h3> 
      <p> 
      <p><code>modprobe snd-gusextreme</code> 
      <h3>Gravis UltraSound MAX</h3> 
      <p> 
      <p><code>modprobe snd-gusmax</code> 
      <p> 
      <p> 
      <p> 
      <h3>ESS AudioDrive</h3> 
      <p>ESS AudioDrive ES-1688 及 ES-688 音效卡 
      <p><code>modprobe snd-audiodrive1688</code> 
      <p> 
      <h3>Gravis UltraSound PnP</h3> 
      <p>Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32  
      以及其它用 AMD InterWave (tm) 晶片的音效卡. 
      <p><code>modprobe snd-interwave</code> 
      <h3>UltraSound 32-Pro</h3> 
      <p>UltraSound 32-Pro (STB 制 Compaq 使用) 及其它使用 AMD InterWave  
      (tm) 晶片以及用 TEA6330T 电路来做 bass, treble  
      及主音量控制的卡. 
      <p><code>modprobe snd-interwave-stb</code> 
      <h3>Soundblaster</h3> 
      <p>8-bit Soundblaster 卡 (SoundBlaster 1.0, SoundBlaster 2.0,  
      SoundBlaster Pro) 
      <p><code>modprobe snd-sb8</code> 
      <h3>Soundblaster 16</h3> 
      <p>16-bit SoundBlaster 卡 (SoundBlaster 16 (PnP), SoundBlaster AWE 32  
      (PnP), SoundBlaster AWE 64 (PnP). 请注意本模组不支援 SoundBlaster  
      VibraX16 音效卡. 
      <p><code>modprobe snd-sb16</code> 
      <h3>Yamaha OPL3-SA2/SA3 音效卡</h3> 
      <p>光是 &quot;modprobe snd-opl3sa&quot; 是无效的,  
      驱动程式不会自动侦测. 请看後面. 
      <p> 
      <h3>S3 SonicVibes</h3> 
      <p>S3 SonicVibes PCI 音效卡. (PINE Schubert 32 PCI) 
      <p><code>modprobe snd-sonicvibes</code> 
      <p> 
      <h3>Ensoniq/Soundblaster PCI64</h3> 
      <p>Ensoniq AudioPCI ES1370/1371 PCI 音效卡. (SoundBlaster PCI 64) 
      <p><code>modprobe snd-audiopci</code> 
      <p> 
      <h3>CS4232/4232A</h3>
      <p>所有使用 CS4232/CS4232A 晶片的音效卡. 光是 &quot;modprobe  
      snd-card-cs4232&quot; 没用, 不自动侦测, 看後面. 
      <p> 
      <h3>4235 以及其後的</h3> 
      <p>所有使用 CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 晶片的.  
      光是 &quot;modprobe snd-card-cs4236&quot; 没用, 不自动侦测,  
      看後面. 
      <p> 
      <h2><a name="ss4.3">4.3 不自动侦测时怎麽载入驱动程式</a></h2> 
      <p>如果您要用的驱动程式不自动侦测,  
      您必须在让驱动程式运作前先提供额外资讯.  
      更多资讯可在驱动程式目录下的 INSTALL 档中找到. 
      <h3>OPL3-SA2 及 OPL3-SA3</h3> 
      <p>根据 INSTALL 档, 您需要提供驱动程式一切资讯.  
      如果您用 isapnp-tools 来初始化您的卡, 也许可以在 /etc/isapnp.conf  
      档中看到像下面的值: 
      <blockquote> 
        <code> 
        <pre>snd_port - control port # for OPL3-SA chip
snd_wss_port - WSS port # for OPL3-SA chip (0x530,0xe80,0xf40,0x604)
snd_midi_port - port # for MPU-401 UART (0x300,0x330), -1 = disable
snd_fm_port - FM port # for OPL3-SA chip (0x388), -1 = disable
snd_irq - IRQ # for OPL3-SA chip (5,7,9,10)
snd_dma1 - first DMA # for Yamaha OPL3-SA chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha OPL3-SA chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)
</pre> 
        </code> 
      </blockquote> 
      <p>您要用 &quot;modprobe snd-opl3sa snd_port=0xNNN snd_wss_port=0x530  
      snd_midi_port=-1 snd_fm_port=0x388 snd_irq=5 snd_dma1=0 snd_dma1_size=NN  
      snd_dma2=1 snd_dma2_size=NN&quot; 命令来载入驱动程式(没有 midi  
      支援, 我仍然相信如果您有合成器之类想连上 Linux 主机,  
      您需要它. 如果只是听 MIDI 档就不必了.) 
      <p>上例的 &quot;NN&quot; 值您要给真正的值,  
      我不晓得合理值是多少, 所以才这麽写. 我不晓得 dma  
      大小的参数是不是非要不可. 
      <h3>CS4232/CS4232A 晶片</h3> 
      <p>根据 INSTALL 档所言, 对这些卡您要提供 midi port 的资讯.  
      注意对下面例中的卡, 它使用给 3235/6/7/8/9 的驱动程式,  
      我给了所有资讯(除了 DMA 大小), 不然它不会动.  
      所以您也许就用这整段命令列来载入驱动程式吧!  
      如果您用了 isapnp-tools, 您可能在 /etc/isapnp.conf  
      中看到这些值: 
      <p> 
      <blockquote>
        <code>
        <pre>snd_port - port # for CS4232 chip (PnP setup - 0x534)
snd_cport - control port # for CS4232 chip (PnP setup - 0x120)
snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable
snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 =
disable
snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15)
snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15)
snd_dma1 - first DMA # for CS4232 chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)
</pre>
        </code>
      </blockquote>
      <p>对标准设定值的卡, 您要用 &quot;modprobe snd-card-cs4232  
      snd_port=0x534 snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1  
      snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN&quot;  
      命令来载入驱动程式(没有 midi 支援, 请看 Yamaha OPL-3  
      的注意事项, 又, 没有支援摇□). 如果您的 /etc/isapnp.conf  
      中的值不同, 那麽这里的值也该变一下. (用用您的头脑想想比较好  
      ;) 
      <p>上例的 &quot;NN&quot; 值您要给真正的值,  
      我不晓得合理值是多少, 所以才这麽写. 我不晓得 dma  
      大小的参数是不是非要不可. 
      <h3>CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 chips</h3> 
      <p>根据 INSTALL 档所言, 对这些卡您要提供 midi port 以及  
      control port 的资讯. 注意对 CS4237B 的卡, 我给了所有资讯(除了  
      DMA 大小), 不然它不会动.  
      所以您也许就用这整段命令列来载入驱动程式, 不只是有  
      snd_port 及 snd_cport 而已. 如果您用了 isapnp-tools, 您可能在  
      /etc/isapnp.conf 中看到这些值: 
      <p> 
      <blockquote>
        <code>
        <pre>snd_port - port # for CS4232 chip (PnP setup - 0x534)
snd_cport - control port # for CS4232 chip (PnP setup - 0x120)
snd_mpu_port - port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
snd_fm_port - FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable
snd_jport - joystick port for CS4232 chip (PnP setup - 0x200), -1 = disable
snd_irq - IRQ # for CS4232 chip (5,7,9,11,12,15)
snd_mpu_irq - IRQ # for MPU-401 UART (9,11,12,15)
snd_dma1 - first DMA # for CS4232 chip (0,1,3)
snd_dma1_size - max first DMA size in kB (4-64kB)
snd_dma2 - second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable
snd_dma2_size - max second DMA size in kB (4-64kB)
</pre>
        </code>
      </blockquote>
      <p>您要用 &quot;modprobe snd-card-cs4232 snd_port=0x534 snd_cport=0x120  
      snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0  
      snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN&quot;  
      命令来载入驱动程式(没有 midi 支援, 请看 Yamaha OPL-3  
      的注意事项, 又, 没有支援摇□). 
      <p>注意事项: 
      <ul> 
        <li>&quot;NN&quot; 值要给真正的,  
          我不知道合理值是多少才这麽写. 
        <li>我的 CS4237B 卡没有明白指定 DMA 大小也用得很好.</li> 
      </ul> 
      <h2><a name="ss4.4">4.4 使用 kerneld 来载入</a></h2> 
      <p><code>kerneld</code> 是个在需要时插入模组,  
      并在不再使用时卸除它们的服务程式(daemon).  
      由於笔者没用过 kerneld, 不晓得下面的资讯准不准确.  
      以下资讯来自 ALSA 驱动程式套件的 INSTALL 档. 关於 kerneld  
      的详尽资讯可在 kerneld-mini-HOWTO 中找到. 
      <p>照以下步骤做: 
      <ul> 
        <li>编辑 /etc/conf.modules(後有□例) 
        <li>执行 'modprobe snd-card', 其中 snd-card 是您的音效卡名称  
          [ 我觉得奇怪, kerneld 应该负责载入它不是吗? VS]</li> 
      </ul> 
      这是 Gravis UltraSound PnP 音效卡的 /etc/conf.modules □例: 
      <blockquote> 
        <code> 
        <pre>alias char-major-14 snd
alias snd-minor-oss-0 snd-interwave
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-interwave
options snd snd_major=14 snd_cards_limit=1
options snd-interwave snd_index=1 snd_id=&quot;guspnp&quot; snd_port=0x220 snd_irq=5
snd_dma1=5 snd_dma2=6
</pre> 
        </code> 
      </blockquote> 
      <p>如果您想插更多卡, 这儿有□例(是同时有 Gravis  
      UltraSound Classic 及 Sound Blaster 16 的情形) 
      <blockquote> 
        <code> 
        <pre>alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-sb16
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-sb16 snd_index=1 snd_port=0x220 snd_irq=5 snd_dma8=1 snd_dma16=5
options snd-gusclassic snd_index=2 snd_irq=11 snd_dma1=6 snd_dma2=7
</pre> 
        </code> 
      </blockquote> 
      <p>如果有两片 Gravis UltraSound Classic 音效卡, 就像下例: 
      <blockquote> 
        <code> 
        <pre>alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-gusclassic
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-gusclassic snd_index=1,2 snd_port=0x220,0x260 snd_irq=5,11
snd_dma1=5,6 snd_dma2=7,3
</pre> 
        </code> 
      </blockquote> 
      <p> 
      <h2><a name="backw-compat"></a><a name="ss4.5">4.5 向前相容</a></h2> 
      <p>如果您想保留 OSS/Free 或 OSS/Linux 的相容性,  
      您还要再加一个驱动程式: snd-pcm1-oss 驱动程式, 提供 OSS  
      相容性. 下 
      <blockquote> 
        <code> 
        <pre>modprobe snd-pcm1-oss
</pre> 
        </code> 
      </blockquote> 
      命令. 这将提供 /dev/audio 及 /dev/dsp 的支援, 就像 OSS/Free (核心)驱动程式及  
      OSS/Linux (要 25 美金的)所做的一样. 注意这只是模拟而已. 
      <p> 
      <hr>
      <a href="Alsa-sound-5.html"><img alt="Next" src="next.gif" width="16" height="16"></a> <a href="Alsa-sound-3.html"><img alt="Previous" src="prev.gif" width="16" height="16"></a> 
      <a href="Alsa-sound.html#toc4"><img alt="Contents" src="toc.gif" width="16" height="16"></a><script>EndPage();</script>
    </td>
  </table>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -