Linux Hardware support
Although some audio hardware companies forget to make drivers for linux, more and more hardware is supported by Linux. Because of good work of many people in the ‘world of linux audio’ and more companies who have noticed Linux.
When you are using linux, it is always wise to check whether a piece of hardware works with linux, before buying it.
Which hardware is supported you can check out below.
Is my soundcard supported by Linux?
Is my firewire device supported by Linux?
Note: The list of supported devices is not always up-to-date. This ffado configuration file is probably more up-to-date….
Is my USB device supported by Linux?
If it’s not listed, don’t worry: if the device is ‘class-compliant USB1 audio’ it will probably work.
Is my audio hardware supported by Linux?
Recommendations
Audio interfaces
Studio/Desktop
M-Audio Delta 44, 66 or 2496
Focusrite Scarlett 2i2 and 2i4 both have 2x combo XLR/TRS inputs, USB 2.x bus powered. 2i2 has 2 outputs (TRS) 2i4 has 4 outputs plus MIDI I/O and extra hardware controls.
Laptop / Notebook / Netbook
If you want to add better audio capabilities to your laptop, there are several options. The most common are USB, FireWire and PCMCIA/CardBus. If you buy a laptop or notebook, its preferable to choose one with FireWire and/ or PCMCIA/Cardbus ports although FireWire ports are rare today.
USB has the advantage of being ‘Universal’ — USB ports are ubiquitous and now there are a number of USB 2.x class compliant devices confirmed to work with GNU/Linux.
USB
Focusrite Scarlett 2i2 and 2i4 both have 2x combo XLR and TRS inputs, USB 2.x bus powered. 2i2 has 2 outputs (TRS); 2i4 has 4 outputs plus MIDI I/O and extra hardware controls.
The above are all confirmed to work with GNU/Linux, ALSA and JACK but there are other supposed USB 2 class compliant devices available that should work such as the RME Fireface series, Roland duo/tri capture series and most any other devices that claim to work with the iPads.
FireWire
PCMCIA
If your new laptop has an CardExpress connection, this is an nice card: RME PCMCI (CardExpress) card .
The Creative Audigy line seems popular among Linux users.
It is also possible to use an Firewire card via PCMCIA using PCMCIA Firewire Cardbus PC Card — 2Port
Sound cards with linux support
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.
The software, which has not been updated for some time, can be found at ftp://ftp.informatik.hu-berlin.de/pub/Linux/hu-sound/.
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.