下一步 上一步 目录

2. 准备工作

2.1 简介

本文档旨在帮助您在 Linux 系统中安装和使用创新科技的 Sound Blaster AWE 32 或 Sound Blaster AWE 64 声卡。参考系统是基于 Intel i586 平台的 Debian GNU/Linux 系统,但它应该也适用于任何其他 Linux 发行版,以及 Linux 声卡驱动程序支持的任何平台(如有差异,将在出现时提及)。

请务必仔细阅读 Linux Sound HOWTO(参见 附加信息 部分)。我认为我的文档是对 Sound HOWTO 的补充,您通常可以在那里找到更多关于我遗漏的内容的信息。

2.2 关于 SB AWE 声卡的一些通用说明

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,并且只在出现差异时提及(如果有)。

2.3 关于即插即用声卡的一些通用说明

大多数用于 Intel 平台的现代声卡都是 ISA PnP 声卡,它是“即插即用”的缩写。这意味着,声卡必须由操作系统配置,并且必须在启动时通过初始化例程完成。一般来说,至少有三种可能的方法可以做到这一点

  1. 您拥有 PnP Bios,这意味着您的 Bios 了解 PnP 声卡并可以配置它们。如果您认为仅仅因为您拥有 PnP Bios 就可以使用 SB AWE PnP 的所有功能,那么您就太幸运了。即使 Bios 声称支持 PnP 声卡,它也只初始化您的声卡使用的一部分端口和地址。您可能能够播放原始波形数据,但您将无法播放 MIDI 音乐,例如。因此,PnP Bios 不是一个选项。
  2. 您有一个支持 PnP 声卡的操作系统。当前的稳定 Linux 内核 (2.0.x) 不是这样的操作系统,因此我们必须等待未来的内核版本,这些版本将支持 PnP 设备。
  3. 您有一个特殊的程序,在启动时启动,用于初始化您的 PnP 声卡。这就是我们要做的方式。

在 Linux 下初始化 PnP 声卡最常用的软件是“isapnptools”(参见 来源 部分和 入门 部分)。它们提供了一种可预测的方式来配置您机器中的所有 ISA PnP 声卡,而不仅仅是您的声卡。

2.4 关于可加载内核模块的一些通用说明

一些设备驱动程序可以构建为模块,而不是编译到内核中。您可以在 Kernel HOWTO 和 Module HOWTO 中找到有关模块的更多信息(参见 附加信息 部分)。

如果您有 PnP 声卡,您必须将声卡支持安装为可加载内核模块。这意味着,您不能将声卡驱动程序构建到内核中,而是必须将其构建为可以在运行时加载到内核中的模块。这是因为内核将在您的 ISA PnP 声卡配置之前安装,并且您的声卡驱动程序必须在您的 ISA PnP 声卡配置之后加载。

可以通过 insmod soundmodprobe -a sound 手动加载声卡内核模块,或者在 Linux 系统的相应启动脚本中加载(在 Debian 中,只需在 /etc/modules 中附加包含 sound 的单行即可)。另一种方法是启动 kerneld,这是一个守护程序,可以根据需要安装和删除内核模块。

请注意,kerneld 可能不是 AWE 声卡驱动程序模块的最佳解决方案,因为将模块加载到内核中需要时间,特别是如果您想使用波表合成并加载大型音色库,而您每次插入模块后都必须这样做。由于 kerneld 默认情况下在一分钟后删除未使用的模块,因此最好手动或在启动时插入声卡模块。请注意,手动或在启动时插入声卡模块确实可以防止 kerneld 在空闲时删除它。顺便说一句:您可以手动插入声卡模块并同时使用 kerneld。这两种方法不会冲突,但 kerneld 不再关心声卡模块。

如果您的混音器设置在删除并重新安装模块后受到干扰,这将特别有用。有关此问题的解决方案将在 混音 部分中给出(其中描述了如何在插入声卡模块时自动启动混音器)。但是,kerneld 需要时间来加载模块、加载音色库并启动混音器,并且出于这个原因和其他原因,最好在启动时安装声卡模块,而不是让 kerneld 删除它。

2.5 关于内核声卡驱动程序的一些通用说明

您可以将声卡支持安装到内核中,作为内置模块或可加载模块。如果您有 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 内核开始,但您可能想要升级内核树中的源代码,它们可能已过时)。


下一步 上一步 目录