This section lists the sound cards and interfaces that are
currently supported under Linux. The information here is based on the
latest Linux kernel, which at time of writing was version 2.2.4. This
document only applies to the sound drivers included with the standard
Linux kernel source distribution. There are other sound drivers
available for Linux (see the later section entitled Alternate Sound
Drivers).
For the latest information on supported sound cards and features see
the files included with the Linux kernel source code, usually
installed in the directory
/usr/src/linux/Documentation/sound.
The information in this HOWTO is valid for Linux on the Intel
platform.
The sound driver should also work with most sound cards on the
Alpha platform. However, some cards may conflict with I/O
ports of other devices on Alpha systems even though they work
perfectly on i386 machines, so in general it's not possible to tell if
a given card will work or not without actually trying it.
Users have reported that the sound driver was not yet working on the
PowerPC version of Linux, but it should be supported in
future.
Sound can be configured into the kernel under the MIPs port
of Linux, and some MIPs machines have EISA slots and/or built in sound
hardware. I'm told the Linux-MIPs group is interested in adding sound
support in the future.
The Linux kernel includes a separate driver for the Atari
and Amiga versions of Linux that implements a compatible
subset of the sound driver on the Intel platform using the built-in
sound hardware on these machines.
The SPARC port of Linux currently has sound support for
some models of Sun workstations. I've been told that the on-board
sound hardware works but the external DSP audio box is not supported
because Sun has not released the specifications for it.
The following sound cards are supported by the Linux kernel
sound driver. Some of the items listed are audio chip sets rather than
models of sound cards. The list is incomplete because there are many
sound cards compatible with these that will work under Linux. To add
further to the confusion, some manufacturers periodically change the
design of their cards causing incompatibilities and continue to sell
them as the same model.
6850 UART MIDI Interface
AD1816/AD1816A based cards
ADSP-2115
ALS-007 based cards (Avance Logic)
ATI Stereo F/X (no longer manufactured)
Acer FX-3D
AdLib (no longer manufactured)
Audio Excel DSP 16
AudioDrive
CMI8330 sound chip
Compaq Deskpro XL onboard sound
Corel Netwinder WaveArtist
Crystal CS423x
ESC614
ESS1688 sound chip
ESS1788 sound chip
ESS1868 sound chip
ESS1869 sound chip
ESS1887 sound chip
ESS1888 sound chip
ESS688 sound chip
ES1370 sound chip
ES1371 sound chip
Ensoniq AudioPCI (ES1370)
Ensoniq AudioPCI 97 (ES1371)
Ensoniq SoundScape (and compatibles made by Reveal and Spea)
Gallant SC-6000
Gallant SC-6600
Gravis Ultrasound
Gravis Ultrasound ACE
Gravis Ultrasound Max
Gravis Ultrasound with 16 bit sampling option
HP Kayak
Highscreen Sound-Booster 32 Wave 3D
IBM MWAVE
Logitech Sound Man 16
Logitech SoundMan Games
Logitech SoundMan Wave
MAD16 Pro (OPTi 82C928, 82C929, 82C930, 82C924 chipsets)
Media Vision Jazz16
MediaTriX AudioTriX Pro
Microsoft Windows Sound System (MSS/WSS)
MiroSOUND PCM12
Mozart (OAK OTI-601)
OPTi 82C931
Orchid SW32
Personal Sound System (PSS)
Pinnacle MultiSound
Pro Audio Spectrum 16
Pro Audio Studio 16
Pro Sonic 16
Roland MPU-401 MIDI interface
S3 SonicVibes
SY-1816
Sound Blaster 1.0
Sound Blaster 2.0
Sound Blaster 16
Sound Blaster 16ASP
Sound Blaster 32
Sound Blaster 64
Sound Blaster AWE32
Sound Blaster AWE64
Sound Blaster PCI 128
Sound Blaster Pro
Sound Blaster Vibra16
Sound Blaster Vibra16X
TI TM4000M notebook
Terratec Base 1
Terratec Base 64
ThunderBoard
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 chip set
VIDC 16-bit sound
Yamaha OPL2 sound chip
Yamaha OPL3 sound chip
Yamaha OPL3-SA1 sound chip
Yamaha OPL3-SA2 sound chip
Yamaha OPL3-SA3 sound chip
Yamaha OPL3-SAx sound chip
Yamaha OPL4 sound chip
A word about compatibility: even though most sound cards are claimed
to be SoundBlaster compatible, very few currently sold cards are
compatible enough to work with the Linux SoundBlaster driver. These
cards usually work better using the MSS/WSS or MAD16 driver. Only real
SoundBlaster cards made by Creative Labs, which use Creative's custom
chips (e.g. SoundBlaster16 Vibra), MV Jazz16 and ESS688/1688 based
cards generally work with the SoundBlaster driver. Trying to use a
SoundBlaster Pro compatible 16 bit sound card with the SoundBlaster
driver is usually just a waste of time.
The Linux kernel supports the SCSI port provided on some sound cards
(e.g. ProAudioSpectrum 16) and the proprietary interface for some
CD-ROM drives (e.g. Soundblaster Pro). See the Linux
SCSI HOWTO and
CDROM HOWTO documents for more information.
A kernel driver to support joystick ports, including those
provided on some sound cards, is included as part of the 2.2 kernels.
Note that the kernel SCSI, CD-ROM, joystick, and sound drivers are
completely independent of each other.
Sound support in the Linux kernel was originally written by Hannu
Savolainen. Hannu then went on to develop the Open Sound system, a
commercial set of sound drivers sold by 4Front Technologies that is
supported on a number of Unix systems. Red Hat Software sponsored Alan
Cox to enhance the kernel sound drivers to make them fully
modular. Various other people also contributed bug fixes and developed
additional drivers for new sound cards. These modified drivers were
shipped by Red Hat in their 5.0 through 5.2 releases. These changes
have now been integrated into the standard kernel as of version
2.0. Alan Cox is now the maintainer of the standard kernel sound
drivers, although Hannu still periodically contributes code taken from
the commercial driver.
The commercial Open Sound System driver from 4Front Technologies tends
to be easier to configure and support more sound cards, particularly
the newer models. It is also compatible with applications written for
the standard kernel sound drivers. The disadvantage is that you need
to pay for it, and you do not get source code. You can download a free
evaluation copy of the product before deciding whether to purchase it.
For more information see the 4Front Technologies web page
at
http://www.opensound.com.
Jaroslav Kysela and others started writing an alternate sound driver
for the Gravis UltraSound Card. The project was renamed Advanced
Linux Sound Architecture (ALSA) and has resulted in what they
believe is a more generally usable sound driver that can be used as a
replacement for the built-in kernel drivers. The ALSA drivers support
a number of popular sound cards, are full duplex, fully modularized,
and compatible with the sound architecture in the kernel. The main web
site of the ALSA project is
http://www.alsa-project.org. A
separate "Alsa-sound-mini-HOWTO" is available which deals with
compiling and installing these drivers.
Markus Mummert (
mum@mmk.e-technik.tu-muenchen.de) has written a driver package
for the Turtle Beach MultiSound (classic), Tahiti, and Monterey sound
cards. The documentation states:
It is designed for high quality hard disk recording/playback without
losing sync even on a busy system. Other features such as wave
synthesis, MIDI and digital signal processor (DSP) cannot be
used. Also, recording and playback at the same time is not
possible. It currently replaces VoxWare and was tested on several
kernel versions ranging from 1.0.9 to 1.2.1. Also, it is installable
on UN*X SysV386R3.2 systems.
Kim Burgaard (
burgaard@daimi.aau.dk) has written a device driver and
utilities for the Roland MPU-401 MIDI interface. The Linux
software map entry gives this description:
A device driver for true Roland MPU-401 compatible MIDI interfaces
(including Roland SCC-1 and RAP-10/ATW-10). Comes with a useful
collection of utilities including a Standard MIDI File player and
recorder.
Numerous improvements have been made since version 0.11a. Among other
things, the driver now features IRQ sharing policy and complies with
the new kernel module interface. Metronome functionality, possibility
for synchronizing e.g. graphics on a per beat basis without losing
precision, advanced replay/record/overdub interface and much, much
more.
Another novel use for a sound card under Linux is as a modem for
amateur packet radio. The 2.1 and later kernels include a
driver that works with SoundBlaster and Windows Sound System
compatible sound cards to implement 1200 bps AFSK and 9600 bps FSK
packet protocols. See the Linux AX25 HOWTO for details (I'm a ham
myself, by the way -- callsign VE3ICH).
An alternate sound driver is available that requires no additional
sound hardware; it uses the internal PC speaker. It is
mostly software compatible with the sound card driver, but, as might
be expected, provides much lower quality output and has much more CPU
overhead. The results seem to vary, being dependent on the
characteristics of the individual loudspeaker. For more information,
see the documentation provided with the release.
Another option is to build a digital to analog converter using a
parallel printer port and some additional components. This provides
better sound quality than the PC speaker but still has a lot of CPU
overhead. The PC sound driver package mentioned above supports this,
and includes instructions for building the necessary hardware.