本文档旨在帮助您在 Linux 系统中安装和使用创新科技的 Sound Blaster AWE 32 或 Sound Blaster AWE 64 声卡。参考系统是基于 Intel i586 平台的 Debian GNU/Linux 系统,但它应该也适用于任何其他 Linux 发行版,以及 Linux 声卡驱动程序支持的任何平台(如有差异,将在出现时提及)。
请务必仔细阅读 Linux Sound HOWTO(参见 附加信息 部分)。我认为我的文档是对 Sound HOWTO 的补充,您通常可以在那里找到更多关于我遗漏的内容的信息。
SB AWE 32 声卡提供原始音频设备、标准 OPL-2/OPL-3 合成、MPU-401 MIDI 端口和 32 复音 EMU 8000 波表合成(有关这些术语和其他术语的解释,请参阅 Linux Sound HOWTO)。本文档的目标之一是帮助您使所有这些功能正常工作。
SB AWE 64 具有 SB AWE 32 的功能,以及创新科技特别引以为傲的附加波导合成。Linux 用户面临的问题是,额外的 32 个复音是由软件生成的,并通过原始波形设备输出。由于创新科技认为 Linux 驱动程序没有市场,因此波导合成声卡驱动程序仅适用于 Windows 3.1 和 Windows 95。
这意味着,从 Linux 用户的角度来看,SB AWE 32 和 SB AWE 64 几乎相同。从现在开始,我将只笼统地提及 SB AWE,并且只在出现差异时提及(如果有)。
大多数用于 Intel 平台的现代声卡都是 ISA PnP 声卡,它是“即插即用”的缩写。这意味着,声卡必须由操作系统配置,并且必须在启动时通过初始化例程完成。一般来说,至少有三种可能的方法可以做到这一点
在 Linux 下初始化 PnP 声卡最常用的软件是“isapnptools”(参见 来源 部分和 入门 部分)。它们提供了一种可预测的方式来配置您机器中的所有 ISA PnP 声卡,而不仅仅是您的声卡。
一些设备驱动程序可以构建为模块,而不是编译到内核中。您可以在 Kernel HOWTO 和 Module HOWTO 中找到有关模块的更多信息(参见 附加信息 部分)。
如果您有 PnP 声卡,您必须将声卡支持安装为可加载内核模块。这意味着,您不能将声卡驱动程序构建到内核中,而是必须将其构建为可以在运行时加载到内核中的模块。这是因为内核将在您的 ISA PnP 声卡配置之前安装,并且您的声卡驱动程序必须在您的 ISA PnP 声卡配置之后加载。
可以通过 insmod sound
或 modprobe -a sound
手动加载声卡内核模块,或者在 Linux 系统的相应启动脚本中加载(在 Debian 中,只需在 /etc/modules
中附加包含 sound
的单行即可)。另一种方法是启动 kerneld
,这是一个守护程序,可以根据需要安装和删除内核模块。
请注意,kerneld
可能不是 AWE 声卡驱动程序模块的最佳解决方案,因为将模块加载到内核中需要时间,特别是如果您想使用波表合成并加载大型音色库,而您每次插入模块后都必须这样做。由于 kerneld
默认情况下在一分钟后删除未使用的模块,因此最好手动或在启动时插入声卡模块。请注意,手动或在启动时插入声卡模块确实可以防止 kerneld
在空闲时删除它。顺便说一句:您可以手动插入声卡模块并同时使用 kerneld
。这两种方法不会冲突,但 kerneld
不再关心声卡模块。
如果您的混音器设置在删除并重新安装模块后受到干扰,这将特别有用。有关此问题的解决方案将在 混音 部分中给出(其中描述了如何在插入声卡模块时自动启动混音器)。但是,kerneld
需要时间来加载模块、加载音色库并启动混音器,并且出于这个原因和其他原因,最好在启动时安装声卡模块,而不是让 kerneld
删除它。
您可以将声卡支持安装到内核中,作为内置模块或可加载模块。如果您有 PnP 声卡,则必须将声卡支持安装为模块,因为 PnP 声卡需要在安装模块之前通过 isapnptools 进行初始化。
您可以想象,您将需要重新编译内核。我将在下面给出一些关于它的提示。现在,让我们谈谈内核源代码中的声卡支持。内核附带 OSS (USS) 声卡驱动程序的免费(精简)版本。此驱动程序的当前版本 (3.5.4) 不完全支持 SB AWE,但支持 SB 16 的一部分。因此,如果您使用它,您可以拥有原始音频设备和 OPL-2/OPL-3 合成,但您将无法使用波表合成播放 midi 音乐。
如果您想使用波表设备,您可以从 4Front Technologies 购买商业声卡驱动程序(请有人确认我可以做到这一点,拜托),或者使用 Takashi Iwai 的 AWE 32 声卡驱动程序扩展来修补您的内核。前者超出了本文档的范围,我假设您想使用后者。
AWE32 声卡驱动程序扩展(参见 来源 部分)根据 GNU 版权许可发布,并附带许多工具来利用 SB AWE 声卡的 EMU 8000 波形合成。
awedrv
软件已经包含在较新的内核源代码树中(从某些 2.1.x 内核开始,但您可能想要升级内核树中的源代码,它们可能已过时)。