📄 sound-howto-6.html
字号:
开/关时间, 使1542占汇流排更久. 从Adaptec的BBS或Internet的其它地方抓
SCSISEL.EXE 程式, 减少BUS ON时间或增加BUS OFF时间, 直到这问题完全消失.
SCSISEL 会改变 EEPROM 的设定, 所以比在CONFIG.SYS中载入的DOS驱动程式效力更
持久, 开机就直接进Linux也有效(不像DOS修补). 又解决了一个问题.
<P>
<P>最後一个问题 - 旧的Symphony晶片组剧烈地降低I/O周期时间, 加快汇流排存取.
我所玩过的各种卡中, 除了PAS-16以外, 没有一片卡有出现过<EM>任何</EM>问题.
Media Vision的BBS有个SYMPFIX.EXE可以将Symphony的汇流排控制器的诊断位元调整,
治好这种证状, 但这并不能算有力的保证. 您也许要:
<P>
<UL>
<LI>找主机板经销商, 换掉旧版的晶片</LI>
<LI>换主机板, 或</LI>
<LI>买别牌的音效卡.</LI>
</UL>
<P>
<P>Young Microsystems愿意以$30(美金)的代价为他们制的板子升级; 如果您能讲出谁制的或
谁进口的板子, 别的厂商也可能会这样(祝你好运). 据我所知这问题出於ProAudio的汇流
排介面晶片; <EM>没有人</EM>会花$120买音效卡, 然後把它插在6MHz的AT上. 多数人会升
级到25-40MHz的386/486, 而如果设计正确, 至少能承受12MHz以上的汇流排频率. 讲完了,
下台一鞠躬.
<P>
<P>第一个问题和你的主机板晶片组, 汇流排速率, 及其它BIOS设定, 还有月亮的圆缺有关.(?)
第二个问题牵涉到您的记忆体充电方式 (隐藏式或同步式), 1542 DMA 频率及汇流排I/O速
率(可能有关). 第三个问题, 可以打电话到Media Vision, 问他们哪些Symphony晶片组的
慢速设计和他们的卡不相容. 在此警告一下, 我问过的四位``工程师''中, 就
有三个头壳坏去. 听他们讲别人的硬体讲得啥一样, 其实他们甚至连自己的都搞不清楚.
<P>
<P>译注: 这一段可能和原文意思差很多, 有建议请不吝提供.
<P>
<H2><A NAME="ss6.18">6.18 可不可以同时录放音?</A>
</H2>
<P>
<P>受限於硬体, 在多数音效卡上是不可能的. 一些新卡能支援这功能. 请看在
<EM>Hacker's Guide to Voxware</EM>中的"bidirectional mode"这一节.
<P>
<H2><A NAME="ss6.19">6.19 我的声霸卡16是设IRQ 2, 可是驱动程式不准我设这个值</A>
</H2>
<P>
<P>
<P>在'286及以後的机器, IRQ2中断连接了第二个中断控制器. 它等同於IRQ 9.
<P>
<H2><A NAME="ss6.20">6.20 声霸卡AWE32及声霸卡16ASP有支援吗?</A>
</H2>
<P>
<P>
<P>在过去, Creative Labs很不愿意为这些卡出版程式设计资讯. 现在他们已经改变策略,
而在2.1.x核心中也包含了AWE驱动程式了.
<P>
<H2><A NAME="ss6.21">6.21 我离开Linux, 起动DOS, 然後有些软体发声不正常</A>
</H2>
<P>
<P>
<P>这在暖开机进DOS後发生. 有时错误讯息会误导您, 以为是CONFIG.SYS档哪里
写错了.
<P>
<P>多数现在的音效卡有软体设定的IRQ及DMA设定. 如果您的卡在Linux下及MSDOS/Windows
下设定值不一样的话, 可能会造成问题. 有些音效卡不准设新参数, 除非完全 reset.
(如把电源关掉再打开, 或使用硬体上的reset钮)
<P>
<P>简单对付方法就是按下reset键, 或把开关关了再开, 不要用暖开机(即 Ctrl-Alt-Del).
<P>
<P>正解则是确保您在MS-DOS及Linux下都用同样的IRQ及DMA设定 (或乾脆不要用DOS :-).
<P>
<H2><A NAME="ss6.22">6.22 在Linux下跑DOOM出问题</A>
</H2>
<P>
<P>
<P>想玩ID software出的DOOM游戏之Linux版的玩家们, 可能对这个有兴趣.
<P>
<P>要正确的音效输出, 您必需使用2.90版或以後的音效驱动程式; 它支援了即时的
``DOOM模式''.
<P>
<P>音效样本是16 bit. 如果您用8 bit音效卡, 您仍然可以用一些可在
<A HREF="ftp://sunsite.unc/edu/pub/Linux/games/doom">ftp://sunsite.unc/edu/pub/Linux/games/doom</A>中找到的一些程式, 让声音
出现.
<P>
<P>如果DOOM动作不流畅, 把音效取消(把<CODE>sndserver</CODE>档改名)会有一些改进.
<P>
<P>DOOM预设不支援音乐(如同DOS版). <CODE>musserver</CODE>程式将增加Linux下的
音乐支援. 它可以在
<A HREF="ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz">ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz</A>
中找到.
<P>
<H2><A NAME="ss6.23">6.23 怎样降低音效卡产生的杂音?</A>
</H2>
<P>
<P>
<P>用高品质的屏蔽电缆, 换个插槽插, 可能有助於减低杂音. 如果音效卡有音量调整钮, 您
可以试试不同的设定(通常最大声最好)
<P>
<P>您可以用混音程式, 将不想要的输入(如麦克风)调成无增益
<P>
<P>有些音效卡偷工减料, 没有好的遮蔽及接地, 容易产生杂音
<P>
<P>最後, 在我的电脑上, 我发现核心命令列有个选项<CODE>no-hlt</CODE>可以降低杂讯. 这个选
项叫核心在跑□置回圈时不要用HLT指令. 您可以开机时手动试试, 或在LILO设定档中加上
<CODE>append="no-hlt"</CODE>
<P>
<H2><A NAME="ss6.24">6.24 能放音, 不能录音</A>
</H2>
<P>
<P>
<P>如果您能放音, 却不能录音, 试试:
<UL>
<LI>使用混音程式选择适当来源(如麦克风)</LI>
<LI>使用混音程式将该来源的增益调到最大</LI>
<LI>可以的话, 在MS-DOS下测试, 看看是不是硬体方面的问题</LI>
</UL>
<P>
<P>有时录音及放音用的DMA通道是不同的. 这种情况下八成是录音用DMA设定不对.
<P>
<H2><A NAME="ss6.25">6.25 必须先进DOS跑驱动程式, 不然我的"相容卡"没法用</A>
</H2>
<P>
<P>
<P>多数情况下, ``声霸卡相容''卡在Linux下若舍声霸卡驱动程式不用而改用
别的驱动程式, 会更好用. 多数号称相容(如``16位元SB Pro相容''或SB相容的
``16位元'')的卡, 它的声霸卡相容模式是提供DOS游戏的相容性所做的. 多数卡有可能
被最近的Linux(2.0.1以後)支援的, 自身的16位元模式.
<P>
<P>只有一些(通常很旧)的卡必须尝试用声霸卡模式运作. 新卡中只有一个例外, 那就是用
Mwave为主的卡.
<P>
<H2><A NAME="ss6.26">6.26 我的16位元声霸卡相容卡在Linux下只能用8位元模式</A>
</H2>
<P>
<P>
<P>号称和声霸卡相容的16位元音效卡其实只和8位元的声霸卡Pro相容而已. 它们有和声霸卡
16不相容的16位元模式, 和Linux音效驱动程式不相容.
<P>
<P>也许改用MAD16或MSS/WSS驱动程式後, 您就能用16位元模式了.
<P>
<H2><A NAME="ss6.27">6.27 在哪里找得到Linux的音效软体?</A>
</H2>
<P>
<P>
<P>这里有一些好的档案库, 可以搜寻Linux专用的音效应用软体:
<UL>
<LI>
<A HREF="ftp://sunsite.unc.edu:/pub/Linux/kernel/sound/">ftp://sunsite.unc.edu:/pub/Linux/kernel/sound/</A></LI>
<LI>
<A HREF="ftp://sunsite.unc.edu:/pub/Linux/apps/sound/">ftp://sunsite.unc.edu:/pub/Linux/apps/sound/</A></LI>
<LI>
<A HREF="ftp://tsx-11.mit.edu:/pub/linux/packages/sound/">ftp://tsx-11.mit.edu:/pub/linux/packages/sound/</A></LI>
<LI>
<A HREF="ftp://nic.funet.fi:/pub/OS/Linux/util/sound/">ftp://nic.funet.fi:/pub/OS/Linux/util/sound/</A></LI>
<LI>
<A HREF="ftp://nic.funet.fi:/pub/OS/Linux/xtra/snd-kit/">ftp://nic.funet.fi:/pub/OS/Linux/xtra/snd-kit/</A></LI>
<LI>
<A HREF="ftp://nic.funet.fi:/pub/OS/Linux/ALPHA/sound/">ftp://nic.funet.fi:/pub/OS/Linux/ALPHA/sound/</A></LI>
</UL>
<P>
<H2><A NAME="ss6.28">6.28 音效驱动程式可不可以编译成可载入模组?</A>
</H2>
<P>
<P>
<P>最新的核心里的音效驱动程式可以做成可载入模组.
<P>详情请参考:<CODE>/usr/src/linux/drivers/sound/Readme.modules</CODE>及<CODE>/usr/src/linux/Documentation/modules.txt</CODE>(或<CODE>/usr/src/linux/README</CODE>)
<P>
<H2><A NAME="ss6.29">6.29 我能把主控台的哔哔声改用音效卡发出吗?</A>
</H2>
<P>
<P>
<P>试试<CODE>oplbeep</CODE>程式, 可在
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/oplbeep-alpha.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/oplbeep-alpha.tar.gz</A>
中找到.
<P>
<P>另一个变种, 叫<CODE>beep</CODE>程式, 可在
<A HREF="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz">ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz</A>
中找到.
<P>
<P><CODE>modutils</CODE>套件有个□例程式及核心修补, 支援在核心要求时, 执行外部程式,
产生声音.
<P>
<P>另外在一些音效卡上, 您可以将PC喇叭输出到音效卡上, 这样所有声音就都由音效卡
发出来了.
<P>
<H2><A NAME="ss6.30">6.30 VoxWare是什麽?</A>
</H2>
<P>
<P>
<P>支援很多Intel为基台的Unix相容作业系统的核心音效驱动程式, 也可以以独立於
Linux核心的套件取得. 在1996年二月以前, 作者称这软体为 ``VoxWare''.
然而不幸的, 这名称已成了
<A HREF="http://www.voxware.com/">VoxWare Incorporated</A>的注册商标, 不能再被使用了. 现在这个驱动程式的新名
称叫OSS/Free.
<P>
<P>Open Sound System(OSS)是给很多Unix系统用的, 商业版核心音效驱动程式, 由 4Front
Technologies出售. 叫做 OSS/Free 的免费版本将继续在Linux系统上以免费型式存在.
<P>
<P>更多资讯可在4Front Technologies网站(在
<A HREF="http://www.4front-tech.com/">http://www.4front-tech.com/</A>)
上看到.
<P>
<P>同一个东西, 您可能有听过的名称还有TASD(暂时的无名音效驱动程式)及USS
(Unix音效系统)
<P>
<P>欲取得更多资讯, 请见4Front Technologies的网页, 在
<A HREF="http://www.4front-tech.com/">http://www.4front-tech.com/</A>. 我在1997年六月的
<A HREF="http://www.ssc.com/lj/">Linux Journal</A>有写过OSS/Linux的评论文章.
<P>
<H2><A NAME="ss6.31">6.31 有支援随插即用音效卡吗?</A>
</H2>
<P>
<P>
<P>到了Linux 2.1版後应该能完全支援随插即用. 现在要让随插即用音效卡能用, 还有不少
要做的.
<P>
<P>如果您用有Plug and Play BIOS的新Pentium机器, 要小心设定您的卡. 确定您将核心
音效驱动程式的I/O位址, IRQ及DMA等设得和BIOS给的一样.
<P>
<P>给Linux用, 可用来设定这种卡的随插即用工具是存在的. 您可以在Red Hat的网站
<A HREF="http://www.redhat.com/">http://www.redhat.com/</A>找到. 它也可能包含在您的Linux套餐中.
<P>
<P>如果您在 Windows95 下使用这种卡, 可以用设备管理员来设定卡, 然後用LOADLIN
暖启动进Linux. 确定 Windows95 及 Linux 使用相同的设定参数.
<P>
<P>如果您在DOS下用这种卡, 您可以使用声霸卡16PnP卡附的<CODE>icu</CODE>公用程式, 在DOS
下设定. 然後用LOADLIN暖开机进Linux. 一样, 确定 DOS 及 Linux 用相同的设定参数.
<P>
<P>商业版的OSS音效驱动程式支援声霸卡16PnP, 您可以向 4Front Technologies 购买.
<P>
<H2><A NAME="ss6.32">6.32 Sox/Play/Vplay 回报 "invalid block size 1024"</A>
</H2>
<P>
<P>
<P>在1.3.67版核心中的改变让(错误的)检查SNDCTL_DSP_GETBLKSIZE ioctl是否传回大
於4096的放音软体失效. 在最新的snd-util-3.x.tar.gz套件(在
<A HREF="ftp://ftp.4front-tech.com/ossfree">ftp://ftp.4front-tech.com/ossfree</A>
中的公用程式现已能处理这种状况了. 最新的驱动程式也已修正, 避免配置小於4096
bytes的碎块, 解决了旧公用程式的问题.
<P>
<H2><A NAME="ss6.33">6.33 音效驱动程式为何要用自己的设定程式?</A>
</H2>
<P>
<P>
<P>音效驱动程式支援很多不同的设定参数. 驱动程式中的<CODE>configure</CODE>
会检查各参数间的相依性. 而核心的设定工具就没有提供这样的功能.
<P>
<P>这就是说, 最新的核心部份地允许音效驱动程式使用标准核心设定工具(参见前面
``设定核心''那一小节.)
<P>
<H2><A NAME="ss6.34">6.34 我载入音效驱动程式模组後,混音设定就被重设了</A>
</H2>
<P>
<P>
<P>您可以将音效驱动程式做成可载入模组, 并使用<CODE>kerneld</CODE>自动载入及除去. 然而
这造成了一个问题 - 当模组重新载入时, 混音器设定又回归预定的值. 对有些音效卡来
说, 这会太大声(如声霸卡16)或太小声. Markus Gutschke
(<CODE>gutschk@uni-muenster.de</CODE>)发现了这问题的解决之道, 在您的
<CODE>/etc/conf.modules</CODE>档中加入如下的一行:
<P>
<BLOCKQUOTE><CODE>
<PRE>
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>这会在音效驱动程式载入後立刻执行您的混音程式(在□例中是用<CODE>setmixer</CODE>). <CODE>dma_buffsize</CODE>参数没有意义, 但是是必需的, 因为这个命令
需要一些命令列的选项. 把上面那行改成您想要的混音及增益设定值.
<P>
<P>如果您将音效驱动程式连进核心, 而想在开机後就自动设定音量, 您可以在开机自动执行
档<CODE>/etc/rc.d/rc.local</CODE>中将混音程式加进去.
<P>
<H2><A NAME="ss6.35">6.35 只有root能录音</A>
</H2>
<P>
<P>
<P>在Readme.linux中的script, 会将音效设备档设成仅有<CODE>root</CODE>可读, 这是为了填补
安全上的漏洞. 在网路环境里, 外面的使用者可以远端连进有音效卡及麦克风的Linux系统
并窃听. 如果您不担心这个, 您可以改变这个script中的权限.
<P>
<P>在预设的安装法, 一般使用者仍然可以播放音效档. 这不会造成安全上的负担, 反而可
以省掉很多麻烦.
<P>
<H2><A NAME="ss6.36">6.36 在IBM ThinkPad上的音效硬体可以支援吗?</A>
</H2>
<P>
<P>
<P>关於如何在Linux下使用IBM ThinkPad上的mwave音效卡之资讯, 可在
<A HREF="http://www.screamin.demon.co.uk/">http://www.screamin.demon.co.uk/</A>查到.
<P>
<HR>
<A HREF="Sound-HOWTO-7.html">Next</A>
<A HREF="Sound-HOWTO-5.html">Previous</A>
<A HREF="Sound-HOWTO.html#toc6">Contents</A>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -