本节列出了当前 Linux 下支持的声卡和接口。 此处的信息基于最新的 Linux 内核,在撰写本文时,其版本为 2.4.4。 本文档仅适用于标准 Linux 内核源代码发行版中包含的声音驱动程序。 还有其他可用于 Linux 的声音驱动程序(请参阅后面题为“备用声音驱动程序”的部分)。
有关支持的声卡和功能的最新信息,请参阅 Linux 内核源代码中包含的文件,通常安装在目录/usr/src/linux/Documentation/sound.
本 HOWTO 中的信息适用于 Intel x86 平台上的 Linux。
声音驱动程序也应适用于 Alpha 平台上的大多数声卡。 但是,即使某些卡在 i386 机器上完美运行,它们也可能与 Alpha 系统上其他设备的 I/O 端口冲突,因此通常无法在实际尝试之前判断给定的卡是否可以工作。
用户报告称,声音驱动程序在 PowerPC 版本的 Linux 上尚无法工作,但将来应该会得到支持。
声音可以在 Linux 的 MIPs 端口下配置到内核中,并且某些 MIPs 机器具有 EISA 插槽和/或内置声音硬件。 我被告知 Linux-MIPs 组有兴趣在未来添加声音支持。
Linux 内核为 Atari 和 Amiga 版本的 Linux 包含一个单独的驱动程序,该驱动程序使用这些机器上的内置声音硬件实现与 Intel 平台上声音驱动程序兼容的子集。
Linux 的 SPARC 端口当前支持某些型号的 Sun 工作站的声音。 我被告知板载声音硬件可以工作,但外部 DSP 音频盒不受支持,因为 Sun 尚未发布其规范。
存在多种不同类型的声卡,反映了可用的不同总线架构。 以下是更常见类型及其区别特征的简要概述。
ISA 总线卡是使用原始(非即插即用)ISA 总线的最早的声卡之一。 这些卡通常使用跳线来选择 I/O 地址、IRQ 和 DMA 通道的硬件设置。 您今天不太可能找到任何这种类型的产品。
ISA 即插即用卡使用扩展版本的 ISA 总线,该总线支持卡设置的软件识别和配置。 这些卡即使有,也几乎不再生产。
PCI 总线卡使用更高带宽的 PCI 总线,该总线提供软件中卡的识别和配置。 今天制造的大多数声卡现在都使用 PCI。 大多数提供板载声音硬件的主板也使用 PCI 总线。
USB 是一种较新的总线架构,用于外部热插拔设备。 理论上可以开发 USB 总线声卡,但我只知道目前正在销售 USB 总线扬声器。
以下声卡受 Linux 内核声音驱动程序支持。 列出的某些项目是音频芯片组,而不是声卡型号。 该列表不完整,因为有许多与这些兼容的声卡可以在 Linux 下工作。 更令人困惑的是,一些制造商会定期更改其卡的设计,导致不兼容,并继续以相同的型号销售它们。
6850 UART MIDI 接口 | 基于 AD1816/AD1816A 的卡 | AD1816/AD1816A 声音芯片 | AD1848 声音芯片 |
ADSP-2115 | 基于 ALS-007 的卡 (Avance Logic) | ALS-1x0 声音芯片 | ATARI 板载声音 |
ATI Stereo F/X | Acer FX-3D | AdLib | Amiga 板载声音 |
Audio Excel DSP 16 | AudioDrive | Aztech Sound Galaxy Washington 16 | Aztech Sound Galaxy WaveRider 3D |
Aztech Sound Galaxy WaveRider Pro32 | Beethoven ADSP-16 | CMI8330 声音芯片 | CMI8338/8378 声音芯片 |
Cardinal DSP16 | Compaq Deskpro XL 板载声音 | Corel Netwinder WaveArtist | Crystal CS423x |
Crystal CS4280 | Crystal CS46xx | ES1370 声音芯片 | ES1371 声音芯片 |
ESC614 声音芯片 | ESS Maestro 1/2/2E 声音芯片 | ESS Solo1 声音芯片 | ESS1688 声音芯片 |
ESS1788 声音芯片 | ESS1868 声音芯片 | ESS1869 声音芯片 | ESS1887 声音芯片 |
ESS1888 声音芯片 | ESS688 声音芯片 | Ensoniq AudioPCI (ES1370) | Ensoniq AudioPCI 97 (ES1371) |
Ensoniq/Reveal/Spea SoundScape | Gallant SC-6000 | Gallant SC-6600 | Gravis Ultrasound |
Gravis Ultrasound ACE | Gravis Ultrasound Max | Gravis Ultrasound with 16 bit option | HP Kayak |
Highscreen Sound-Booster32 Wave3D | IBM MWAVE | Jazz 16 | Logitech Sound Man 16 |
Logitech SoundMan Games | Logitech SoundMan Wave | MAD16 Pro (OpTi 82C9xx 芯片组) | Media Vision Jazz16 |
MediaTriX AudioTriX Pro | Microsoft Windows Sound System | MiroSOUND PCM12 | Mozart (OAK OTI-601) |
NeoMagic 256AV/256ZX | OpTi 82C931 | Orchid SW32 | Personal Sound System (PSS) |
Pinnacle MultiSound | Power Mac 板载声音 | Pro Audio Spectrum 16 | Pro Audio Studio 16 |
Pro Sonic 16 | Q40 板载声音 | Roland MPU-401 MIDI 接口 | S3 SonicVibes |
SGI Visual Workstation | SM Games | SY-1816 | SoundBlaster 1.0 |
SoundBlaster 16 | SoundBlaster 16ASP | SoundBlaster 2.0 | SoundBlaster 32 |
SoundBlaster 64 | SoundBlaster AWE32 | SoundBlaster AWE64 | SoundBlaster Live! |
SoundBlaster PCI 128 | SoundBlaster PCI 512 | SoundBlaster Pro | SoundBlaster Vibra16 |
SoundBlaster Vibra16X | TI TM4000M notebook | Terratec Base 1 | Terratec Base 64 |
ThunderBoard | Trident 4DWave DX/NX | Trident Ali 5451 | Trident SiS 7018 |
Turtle Beach Maui | Turtle Beach MultiSound Classic | Turtle Beach MultiSound Fiji | Turtle Beach MultiSound Hurricane |
Turtle Beach MultiSound Monterey | Turtle Beach MultiSound Pinnacle | Turtle Beach MultiSound Tahiti | Turtle Beach WaveFront Maui |
Turtle Beach WaveFront Tropez | Turtle Beach WaveFront Tropez+ | VIA 82Cxxx 芯片组 | VIDC 16 位声音 |
Yamaha OPL2 声音芯片 | Yamaha OPL3 声音芯片 | Yamaha OPL3-SA1 声音芯片 | Yamaha OPL3-SA2 声音芯片 |
Yamaha OPL3-SA3 声音芯片 | Yamaha OPL3-SAx 声音芯片 | Yamaha OPL4 声音芯片 | Yamaha YM3812 声音芯片 |
关于兼容性的一句话:即使大多数声卡都声称与 SoundBlaster 兼容,但目前销售的卡中很少有足够兼容以与 Linux SoundBlaster 驱动程序一起工作的。 这些卡通常在使用 MSS/WSS 或 MAD16 驱动程序时效果更好。 只有 Creative Labs 制造的真正的 SoundBlaster 卡,它们使用 Creative 的定制芯片(例如 SoundBlaster16 Vibra)、MV Jazz16 和基于 ESS688/1688 的卡通常与 SoundBlaster 驱动程序一起工作。 尝试将与 SoundBlaster Pro 兼容的 16 位声卡与 SoundBlaster 驱动程序一起使用通常只是浪费时间。
Linux 内核支持某些声卡(例如 ProAudioSpectrum 16)上提供的 SCSI 端口以及某些 CD-ROM 驱动器(例如 SoundBlaster Pro)的专有接口。 有关更多信息,请参阅 Linux SCSI HOWTO 和 CDROM HOWTO 文档。
内核驱动程序支持操纵杆端口,包括某些声卡上提供的端口,作为 2.2 及更高版本内核的一部分包含在内。
请注意,内核 SCSI、CD-ROM、操纵杆和声音驱动程序彼此完全独立。
Linux 内核中的声音支持最初由 Hannu Savolainen 编写。 然后,Hannu 继续开发 Open Sound system,这是一个由 4Front Technologies 出售的商业声音驱动程序集,在许多 Unix 系统上都受支持。 Red Hat Software 赞助 Alan Cox 增强内核声音驱动程序,使其完全模块化。 还有其他人也贡献了错误修复程序,并为新的声卡开发了额外的驱动程序。 这些修改后的驱动程序由 Red Hat 在其 5.0 到 5.2 版本中发布。 这些更改现已集成到版本 2.0 的标准内核中。 Alan Cox 现在是标准内核声音驱动程序的维护者,尽管 Hannu 仍然定期贡献从商业驱动程序中提取的代码。
4Front Technologies 的商业 Open Sound System 驱动程序往往更易于配置,并支持更多声卡,尤其是较新的型号。 它还与为标准内核声音驱动程序编写的应用程序兼容。 缺点是您需要付费,并且您无法获得源代码。 您可以在决定是否购买之前下载该产品的免费评估副本。 有关更多信息,请参阅 4Front Technologies 网页:http://www.opensound.com。
Jaroslav Kysela 和其他人开始为 Gravis UltraSound 卡编写备用声音驱动程序。 该项目更名为高级 Linux 声音架构 (ALSA),并产生了他们认为更通用的声音驱动程序,可以用作内置内核驱动程序的替代品。 ALSA 驱动程序支持许多流行的声卡,是全双工的、完全模块化的,并且与内核中的声音架构兼容。 ALSA 项目的主要网站是 http://www.alsa-project.org。 还有一个单独的“Alsa-sound-mini-HOWTO”可用,其中介绍了编译和安装这些驱动程序。 ALSA 驱动程序可能会作为 2.5 内核开发的一部分移入标准 Linux 内核。
Markus Mummert (mum@mmk.e-technik.tu-muenchen.de) 为 Turtle Beach MultiSound(经典版)、Tahiti 和 Monterey 声卡编写了一个驱动程序包。 文档声明
它专为高质量硬盘录音/播放而设计,即使在繁忙的系统上也不会丢失同步。 其他功能(如波形合成、MIDI 和数字信号处理器 (DSP))无法使用。 此外,无法同时进行录音和播放。 它目前取代了 VoxWare,并在从 1.0.9 到 1.2.1 的多个内核版本上进行了测试。 此外,它可以在 UN*X SysV386R3.2 系统上安装。
Kim Burgaard (burgaard@daimi.aau.dk) 为 Roland MPU-401 MIDI 接口编写了一个设备驱动程序和实用程序。 Linux 软件地图条目给出了以下描述
用于真正的 Roland MPU-401 兼容 MIDI 接口的设备驱动程序(包括 Roland SCC-1 和 RAP-10/ATW-10)。 附带了有用的实用程序集合,包括标准 MIDI 文件播放器和录音机。
自 0.11a 版本以来,已经进行了许多改进。 除此之外,该驱动程序现在具有 IRQ 共享策略,并符合新的内核模块接口。 节拍器功能、在不损失精度的情况下在每个节拍基础上同步图形的可能性、高级重放/录制/叠加接口等等。
可以在 ftp://www.ibiblio.org/pub/Linux/kernel/sound/mpu401-0.2.tar.gz 找到它。
Creative Labs 在 http://opensource.creative.com 上为多款卡提供了 Linux 驱动程序,包括 SoundBlaster Live!。
Linux 下声卡的另一种新颖用途是用作业余无线电数据包的调制解调器。 2.1 及更高版本的内核包含一个驱动程序,该驱动程序与 SoundBlaster 和 Windows Sound System 兼容的声卡一起使用,以实现 1200 bps AFSK 和 9600 bps FSK 数据包协议。 有关详细信息,请参阅 Linux AX25 HOWTO(顺便说一句,我也是一个业余无线电爱好者 - 呼号 VE3ICH)。
有一个备用声音驱动程序可用,它不需要额外的声音硬件;它使用内部 PC 扬声器。 它在软件上与声卡驱动程序兼容,但正如预期的那样,它提供的输出质量要低得多,并且 CPU 开销要大得多。 结果似乎因个体扬声器的特性而异。 有关更多信息,请参阅发行版随附的文档。
PC 扬声器驱动程序的最新版本可以在 ftp://ftp.infradead.org/pub/pcsp/ 找到。
另一种选择是使用并行打印机端口和一些额外的组件构建数字到模拟转换器。 这提供了比 PC 扬声器更好的音质,但仍然有很多 CPU 开销。 上面提到的 PC 声卡驱动程序包支持此功能,并包括构建必要硬件的说明。