Linux 版 (精华区)

发信人: clx (楚留香), 信区: Unix
标  题: The Linux Sound HOWTO -- Linux 音效指引(05)
发信站: 紫 丁 香 (Sat Jun 27 17:31:46 1998), 转信

The Linux Sound HOWTO -- Linux 音效指引 : 安装
Previous: 支援的硬体
Next: 支援音效的应用软体 


4. 安装

要在Linux下享用音效, 必须先进行以下步骤:

  1.安装音效卡 
  2.建造核心, 使之支援音效 
  3.建造设备档 
  4.启动Linux核心, 并测试 

底下我们将对每一步作详细解说.

4.1. 安装音效卡

按照说明书的指示, 安装硬体, 或是请厂商来装.

旧的音效卡通常有开关或跳线, 以设定IRQ, DMA通道等, 请把这些
设定记下来. 如果你不 确定要怎麽调, 就照出厂值. 可能的话, 避
免和其它设备(如网路卡, SCSI卡, 平行及串列 埠)相冲.

若你在DOS下有使用音效卡, 通常应该设成和DOS下一样. 不过有些
情况下(特别是PnP的 卡)也可能要设成和DOS不一样的值. 这时可能
要实验一下.

4.2. 设定核心

安装时您用的是预先编译过的核心, 它们通常是不支援音效的. 所
以最好自己编译适合自 己用的核心. 而且, 您也可能想要藉此来升
级到更新版的核心, 或是缩小核心体积, 增加 可用的记忆体.

在如何建造核心方面, 您应该参考 Linux Kernel HOWTO. 我在这里
只提和音效卡相关的部份.

如果您还没有编译核心, 加入音效支援的经验, 先读一下核心驱动
程式里的Readme 档(特别是关於您的音效卡的部份)是个不错的主
意. 以下档案可以在核心音效驱动程式 的目录中找到, 通常放在
/usr/src/linux/drivers/sound:

CHANGELOG         - 简介每一版中的变更
COPYING           - 拷贝及版权限制
Readme            - 最新, 最重要的消息
Readme.aedsp16    - 关於 Audio Excel DSP 16 音效卡的资讯
Readme.cards      - 设定音效卡的说明
Readme.linux      - 安装核心以外散布的驱动程式之注意事项
Readme.modules    - 如何作成可载入模组
Readme.v30        - 3.0 版的新功能介绍
experimental.txt  - 讲一些实验中的功能

照一般造核心的程序来就好. 目前设定核心有三种介面可选择. 用
``make xconfig '' 可叫出在X11下的图形设定介面; 用 ``make
menuconfig'' 则是文字 模式的选单介面; 最原始的方法, 则是用
``make config'', 提供了简单的文 字问答介面.

当用``make xconfig''或``make menuconfig''时, 所有Yes/No问题
都要特别小心确认. 这些命令给的预设答案都是No, 这并不见得就
是正确的选择. 特别是 ``/dev/dsp and /dev/audio support''
(CONFIG_AUDIO) 选项通常是要打开 的.

在这篇文件中, 我假设你用传统的命令行式 ``make config''来做.
虽然说其实别的方式也差不多.

设定音效的方法也有二则. 其一, ``老''方法(在2.0.0板以前的核
心只能 用这方法), 使用一个内附的设定程式. 这种方法对多数音
效卡有用, 除了少数需要 额外``低阶''驱动程式的(如miroSOUND,
AWE32, 及AEDSP16)以外.

第二种是``新''方法, 它和设定核心的其它部份用的选单介面有较
佳的整合性. 这方法对要韧体下载档的音效卡无效. 这些卡包括
PSS, SM Wave, AudioTrix Pro 及 TurtleBeach Tropez/Maui卡,
对付它们你只好用老方法了.

``make xconfig''一定用``新''方法. 在``make menuconfig'' 中,
你可以在音效子画面中选择用``老''方法或``新''方法. "make
config"的情况, 预设是用``老''方法, 不过如果你已经用过 一次
``新''方法了, 那麽它也会改成用新方法. 之後你仍可以在"make
menuconfig"中切换回老方法.

我们建议用``make menuconfig''加``老''方法. 很多设定问题都 
(至少一部份是)由於误用了新方法所致.

也可以把音效驱动程式做成核心可载入模组. 我建议一开始先不要
做成模组, 等测试过可 用後, 再试试把它做程模组.

执行``make config''时, 以``y''回答下列问题, 以起动音效支援.

     Sound card support (CONFIG_SOUND) [M/n/y/?]

这问题答完後, 音效设定程式会被编译, 执行. 它会问你要那些装
置及选项. 回答这些问 题时要小心, 前面回答错误可能後面的问题
就不会问了. 例如说, 如果你没有PAS16音效 卡, 第一个问题
(PAS16)就不要答``yes''. 不要加入比你会用上的卡还多的驱 动程
式, 这只会浪费记忆体. 有些驱动程式(像MPU-401)可能会和你的
SCSI卡相冲, 结果 开不了机.

作者在此简短的叙述各个设定选项的意义. 对每一个问题请以
``y''(yes)或 ``n''(no)作答. 里面会显示预定答案,
 如``[Y/n/?]''表示 预定``y'' 而``[N/y/?]''表示预定是``n''.
你可以 直接按Enter选预定的答案, 但记住预定答案不一定是对的.

输入问号(``?'')会给你对此选项的简短的描述.

也注意一下不见得每个问题都会问, 设定程式可能会依据前面的选
择而自动取消或设定某 些选项.

Old configuration exists in /etc/soundconf. Use it [Y/n/?]

     如果你以前有设定过音效驱动程式, 您的设定会被存起来. 如
     果您想直接用上次的设定, 回答``y''. 如果您想作些改变或换
     了新版核心, 您应该回答 ``n'' 并继续下面的设定程序.

ProAudioSpectrum 16 support [Y/n/?]

     只有当您有ProAudio Spectrum 16, ProAudio Studio 16或罗
     技 SoundMan 16 时, 答'y'. 如果您有其它Media Vision或罗
     技的卡, 还是请回答'n', 因为它们并不和 PAS16相容.

SoundBlaster support [Y/n/?]

     如果您有真正由Creative Labs制的声霸卡或100%硬体相容(如
     Thunderboard 或 SM Games )卡, 回答'y'. 如果您的卡在支援
     之列, 请先看Readme.cards中和卡相关的指示 再回答. 对完全不
     知道的卡, 如果它坚称是和声霸卡相容, 你可以回答'y'.

Gravis Ultrasound support [Y/n/?]

     如果您有GUS或GUS Max,回答'y'. 不然就回答'n', 这个驱动程
     式吃记忆体吃得凶.

MPU-401 support (NOT for SB16) [Y/n/?]

     这问题要小心. 几乎所有的卡都支援MPU-401 MIDI介面, 然而,
     有些卡需要专属的驱动程 式. 在这种卡上开启这个驱动程式会
     造成冲突. 在没有MPU-401的电脑上使用这个驱动程式 也会造
     成麻烦. 如果你的卡在支援之列, 看Readme.cards档中的指示. 如
     果你有 真正的MPU-401 MIDI介面卡, 那就可以放心回答'y'.

6850 UART Midi support [Y/n/?]

     最好回答'n'. 6850 UART 介面甚少被用到.

PSS (ECHO-ADI2111) support [Y/n/?]

     如果你有Orchid SW32, Cardinal DSP16或其它用PSS晶片组
     (AD1848 编解码器 + ADSP-2115 DSP晶片 + Echo ESC614 ASIC
     晶片)的卡, 答'y', 不然答'n'.

16 bit sampling option of GUS (not GUS MAX) [Y/n/?]

     如果您的GUS上有装16 bit取样子卡, 回答'y'. 如果您有GUS
     MAX, 回答 'n'. 启动这个就 会关闭GUS MAX.

GUS MAX support [Y/n/?]

     除非你有GUS Max, 不然回答'n'吧!

Microsoft Sound System support [Y/n/?]

     一样请先三思再答. 如果你有微软制的原版Windows Sound
     System卡或Aztech SG 16 Pro (或NX16 Pro)的话, 可放心回答
     'y'. 如果你的音效卡不在上面所列, 也可以答'y'试试.
      对VoxWare支援的卡请先看Readme.cards. 有些驱动程式有自己的
     一套驱动MSS的 方法, 起动这个会造成冲突.

Ensoniq Soundscape support[Y/n/?]

     如果你的卡用的是Ensonic Soundscape晶片, 回答'y'. 这种卡
     至少有Ensoniq, Spea 及 Reveal(也做别种卡)在制造.

MediaTriX AudioTriX Pro support [Y/n/?]

     如果你有AudioTrix Pro的话, 答'y'.

Support for MAD16 and/or Mozart based cards?

     如果你是用莫扎特音效卡(OAK OTI-601)或MAD16(Opti 82c928
     或82c929)音效介面晶片. 这 种晶片非常普遍, 所以一些无牌
     卡也许就用它. 除此之外, MAD16也被一些知名厂商像
     TurtleBeach(Tropez), Reveal(几种型式), 及 Diamond(最新
     的)用来放在他们的卡上.

Support for Crystal CS4232 based (PnP) cards [Y/n/?]

     如果你的卡用Crystal CS4232晶片, 答'y'.

Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers [Y/n/?]

     如果你有上面列出的卡才选'y'.

SoundBlaster Pro support [Y/n/?]

     如果你的卡是声霸卡Pro或声霸卡16, 答'y'. 对声霸卡Pro相容
     的也可以用它. 回答'n'省 一点记忆体, 但'y'也是安全的选
     择.

SoundBlaster 16 support [Y/n/?]

     如果你的卡是声霸卡16(包括AWE32), 答'y'.

Audio Excel DSP 16 initialization support [Y/n/?]

     如果你用Audio Excel DSP16的话, 答'y'. 请看Readme.aedsp16以
     获得更多资 讯.

然後设定程式会问你关於高阶服务方面的问题. 建议对每一项都答
'y', 除非你很 明白你不会用到这功能才答'n'.

/dev/dsp and /dev/audio support (usually required) [Y/n/?]

     回答'n'的话, /dev/dsp及/dev/audio(及A/D及D/A转换装置)就不能
     用了. 回答'y'吧!

MIDI interface support [Y/n/?]

     回答'n'则会让/dev/midixx及使用/dev/sequencer和/dev/music的MIDI
     连接埠失效. 这选项也会影响MPU-401及General MIDI相容设
     备.

FM synthesizer (YM3812/OPL-3) support [Y/n/?]

     在这请回答'y'.

/dev/sequencer support [Y/n/?]

     回答'n'就会让/dev/sequencer及/dev/music失效.

Do you want support for the mixer of SG NX Pro ?

     如果你有SoundGalaxy NX音效卡, 想支援它的延伸混音功能的
     话, 答'y'.

Do you want support for the MV Jazz16 (ProSonic etc.) ?

     如果你有MV Jazz16(ProSonic等), 答'y'.

Do you have a Logitech SoundMan Games [Y/n/?]

     如果你有罗技SoundMan Games音效卡, 答'y'.

以上问题问完後, 设定程式提示你回答和卡相关的设定问题. 通常
只问I/O位址, IRQ及DMA 号码. 对某些卡会要你用一些启始时需要
的档案. 这是用在一些必须载入程式(微码)以起 动的DSP晶片或微
处理器. 有时这写在.h档里, 在编译时加入驱动程式里. 同样,
读Readme.cards中关於你的卡的部份以便了解更多.

最後它会说: 

     The sound driver is now configured.
     Save copy of this configuration to /etc/soundconf [Y/n/?]
     (音效驱动程式已经设定完毕.
     要不要将设定存到/etc/soundconf [Y/n/?])

正常状况下你会答'y', 这样一来, 今後你重编译核心的话, 可以直
接用上次的音效驱动 程式设定.

如果你由旧版的音效驱动程式升级, 确定/usr/include/sys/soundcard.h
及 /usr/include/sys/ultrasound.h以符号连结连到/usr/include/linux 下的
同名档案, 或是它们分别包含#include <linux/soundcard.h>及#include
<linux/ultrasound.h>

你现在已准备好, 可以编译及安装新核心了.

4.3. 建立设备档

为了正常的操作, 必须为各音效设备建立设备档. 通常在你装Linux
时就已经 建好了, 可以用下列的命令快速检查一下. 如果输出结果
和下面很像(日期不一样 没关系), 那麽设备档差不多是设定正确
了.

     % ls -l /dev/sdnstat
     crw-rw-rw-   1 root     root      14,   6 Apr 25  1995 /dev/sndstat

译注: 作者打错了, 是ls -l /dev/sndstat才对

注意有了正确的设备档并不保证一切完美了. 在设备能用以前, 还
是要先载入或加进 核心驱动程式(稍後再详述).

如果您觉得设备档设错了, 您可以以root身份执行在
/usr/src/linux/drivers/sound目录里的Readme.linux档尾部, 那个很短 的
shell script来重建它们. 另外, 多数Linux套件也提供
/dev/MAKEDEV script, 可以作 这种用途.

如果您用PC喇叭驱动程式, 请读内附文件, 以决定是否需要建立设
备档.

4.4. 起动Linux及测试

您至此应该可以准备起动新核心, 测试驱动程式了. 照著您平时安
装及重启动新核心的步 骤去做(当然, 保留一份旧核心以防万一).

在起动中, 检查一下有没有类似以下的讯息:(如果讯息卷动太快,
您可以用dmesg 命令回过来查看.)

     Sound initialization started
     <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
     <Sound Blaster 16> at 0x330 irq 5 dma 0
     <Yamaha OPL3 FM> at 0x388
     Sound initialization complete

这应该和您的音效卡及跳线设定(如果有的话)一致.

如果您用可载入模组, 以上讯息就不会显示出来(除非您载入它时,
用``insmod sound trace_init=1 '')

当音效驱动程式载入核心中时, 应该会显示``Sound
initialization started ''及``Sound initialization
complete''讯息. 如果没有, 表示音效驱 动程式没有载入, 这时您
应该检查一下目前起动的核心有没有加入音效驱动程式支援.

如果在``Sound initialization started''及``Sound
initialization complete ''间没有印出什麽东西, 那表示没有侦
测到音效设备. 这最可能的原因是您没有使用 正确的驱动程式, 卡
没被支援, I/O位址不对或您用了还没有设定过的PnP卡.

驱动程式起动中亦可能印出错误及警告讯息. 在设定完驱动程式後,
重启动时, 注意这 些讯息.

再来是检查/dev/sndstat设备档. 读取这个状态档可以得知额外的资
讯, 或是音 效卡驱动程式是不是正确启动了. 输出□例如下:

     % cat /dev/sndstat
     Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
     Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
     Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
     Config options: 0

     Installed drivers: 
     Type 1: OPL-2/OPL-3 FM
     Type 2: Sound Blaster
     Type 7: SB MPU-401

     Card config: 
     Sound Blaster at 0x220 irq 5 drq 1,5
     SB MPU-401 at 0x330 irq 5 drq 0
     OPL-2/OPL-3 FM at 0x388 drq 0

     Audio devices:
     0: Sound Blaster 16 (4.13)

     Synth devices:
     0: Yamaha OPL-3

     Midi devices:
     0: Sound Blaster 16

     Timers:
     0: System clock

     Mixers:
     0: Sound Blaster

以上的命令也可能回报错误讯息. ``No such file or directory''
表示您还 没建设备档(参考4.3节). ``No such device'' 表示音效
程式没有载入, 或没 有连结进核心里. 请回到4.2节以修正之.

如果/dev/sndstat档中, 在``Card config:''段的几行写在括号里
(就像`` (SoundBlaster at 0x220 irq 5 drq 1,5)''), 它表示设
备已经设定了, 但是没有侦 测到.

现在您应该可以试试放简单的音效档了. 抓□例音效档, 把它丢到
设备档来检查.

     % cat endoftheworld >/dev/dsp
     % cat crash.au >/dev/audio

(确定您没有省略掉大於符号)

注意, 在平时用cat不是放音效档的贴切方法, 这只是为了检查罢了.
去抓合适的放音程式可以做得更好.

只有在/dev/sndstat内的audio devices这段至少列出一个设备的情
形下, 以上命令才会 有效. 如果这段没列出什麽, 您应该检查一下
为何设备没侦测到.

如果以上命令回报``I/O error'', 您可以用``dmesg''命令检查 核
心讯息的尾部, 在那很可能会有印出错误讯息, 而且经常是
``Sound: DMA (output) timed out - IRQ/DRQ config error?''
这个讯息是指驱动程式没有从音效卡得到应 该发生的中断. 最有可
能的原因是, IRQ和DMA的设定没有作用. 解决这问题的最好方法就
是土法炼钢, 把所有这张卡能设到的DMA和IRQ搭配都试试看.

另一种可能原因是驱动程式和卡不相容. 这几乎一定是所谓``声霸
卡(Pro/16)相容卡 ''和声霸卡驱动程式搭不起来. 这种状况下您要
找出和您的卡能搭配的驱动程式才 行.(例如, 可以投书到
comp.os.linux.hardware讨论区问问)

一些音效□例档可在 
ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z
抓到.

现在您可以试试录音了. 如果您的卡有录音能力, 您可以用以下命
令来快速测试一下:

     # 从麦克风录进 4 秒声音
     EDT% dd bs=8k count=4 < /dev/audio >sample.au
     4+0 records in
     4+0 records out
     # 把刚刚录的放出来
     % cat sample.au > /dev/audio

显然您必需要有连接音效卡的麦克风, 还要对著它讲话, 才能试出
有没有效. 您也许也需 要弄到一个混音程式, 设定麦克风为输入装
置, 并设定其录音的增益.

如果以上测试都通过了, 您就有理由相信音效D/A及A/D硬体和软体
都很正常. 如果您碰到 问题, 参考下一小节.

4.5. 问题与解决

如果您进行了以上部骤, 仍然有问题, 那麽可以检查几个地方. 这
些检查由简单到复杂 依序排列, 如果检查出问题, 先解决, 再进行
下一道检查.

4.5.1. 第一步: 确定您用您自己编译的核心起动.

您可以用核心的日期戳记来识别是不是您编译的那个有支援音效的
核心. 您可以用 uname命令来作:

     % uname -a
     Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386

或显示/proc/version档内容: 

     % cat /proc/version
     Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996

如果日期戳记不是您编译核心的时间, 那您用了旧的核心. 您真的
重开机了吗? 如果您用 LILO, 是不是有重装呢(平常用
/etc/lilo/install)? 如果是软碟起动, 您真的 做了新开机片, 并用它
开机吗?

4.5.2. 第二步: 确定核心音效驱动程式有编进去.

最简单的方法就是前面提过的, 检查``/dev/sndstat''的输出. 如
果有地方不对, 那麽核心设定或建立一定有问题. 再重新设定及建
立, 安装新核心的程序.

4.5.3. 第三步: 核心起动时有侦测到您的音效卡吗?

确定核心启动时您的卡有被侦测到. 您应该看过开机讯息了, 如果
它卷得过快, 您通常可 用dmesg命令叫回来:

     % dmesg

或 

     % tail /var/adm/messages

如果您的卡没侦测到, 就是某一处出问题. 确定那张卡真的装了.
如果那张卡在DOS下工 作得很好, 那你就有理由相信硬体是正常的.
不是您把音效卡设错型式, 下错参数, 就是 您的音效卡和核心音效
驱动程式不相容.

一种可能就是需要特殊DOS驱动程式来驱动的``相容''卡. 试著起动
DOS, 载入 厂商给的驱动程式, 然後按Control-Alt-Delete暖开机进
Linux. 确定卡的I/O位 址, DMA及IRQ设定都和DOS一样. 读在音效
驱动程式原始码中的Readme.cards档 以得到关於设定您的这型卡的提
示讯息.

如果您的卡并没有在本文件中列出, 可能是Linux驱动程式没支援的
关系. 您可以参考本文 末的参考资料来求助.

4.5.4. 第四步: 您能从dsp设备读出资料吗?

试试用前面提过的``dd''命令读取/dev/audio. 这个命令应该不会有
错误才对.

如果不行, 那可能是IRQ/DMA冲到, 或某种硬体不相容(设备不为
Linux支援, 或用错驱 动程式).

还有一个少见的可能是不良的硬体. 可能的话, 在DOS下测试一下,
消去这种可能性.

4.5.5. 要是这些都没用呢?

如果您还是有问题, 这里提供最後几招试试:

     小心重读这份HOWTO文件 
     读本文件後列的参考资料, 特别是Hannu Savolainen的网站,
     及相关的核心原始码 Readme档. 
     到comp.os.linux或其它Usenet讨论区(comp.os.linux.hardware
     是个好地方; 因为这儿水量多, 最好在标题栏注明 "sound",
     这样适合的专家才会找到它.) 
     用Web/Usenet搜寻引擎, 智慧型搜寻, 很快就能找到很好的结
     果. 一个好选择是 http://www.altavista.com. 
     用最新的Linux核心.(但是只在最後关头才用, 最新的发展用核
     心可能很不稳) 
     发封信给音效驱动程式作者 
     发封信给Sound HOWTO的作者 
     叫出emacs, 输入Esc-x doctor :-) 


The Linux Sound HOWTO -- Linux 音效指引 : 安装
Previous: 支援的硬体
Next: 支援音效的应用软体 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:203.804毫秒