oreilly.comSafari Books Online.Conferences.


Finding and Installing Drivers
Pages: 1, 2

When All Else Fails...

If you've searched the documentation and databases for the kernel modules, ALSA, and OSS/Linux, then you've almost exhausted the possible sources for Linux audio drivers. A few other independently maintained drivers are listed on the Linux sound apps pages; failing all other possibilities, write to your soundcard's manufacturer, politely inquiring whether they have any plans for supporting Linux, or if they would be willing to provide Linux driver developers with the necessary specifications.

When all else fails, buy a different soundcard. Do some homework, research the resources I've already mentioned, then purchase a card known to work under Linux, with an easily available driver. You still might want to write to the manufacturer of your original card, adding (politely) that the lack of a Linux driver prompted your decision to purchase a different card.

Choosing a Driver

If you are planning for the simplest use of your sound hardware (CD audio, MP3 playback, streaming audio, etc.) and your card is supported, and you just don't want to work very hard at the system setup (or spend any money on it), you should try the driver modules supplied with the kernel. Most modern Linux distributions provide kernels prepared for dynamically adding and deleting precompiled modules. Some include autodetection routines that will automatically configure the sound system with the correct drivers at startup, while other distributions require root privileges to select, configure, and install the needed modules after the initial installation.

If your needs tend towards sophisticated desktop sound (high-end games, digital audio/video editing) or the professional side (multi-channel hard disk recording) you should consider either ALSA or OSS/Linux. Linux is slowly gathering support for digital audio cards suitable for professional audio applications. Specifications for these boards include multichannel digital record and playback, sampling rates exceeding 48 kHz, and advanced synchronization options. They are definitely not soundcards: they do not support an on-board synthesizer, MIDI I/O is not provided, and in some cases external ADC/DAC hardware is required. Linux-friendly professional-grade digital audio cards include the RME Hammerfall (and its relations) and the MIDIman Delta series; a driver for the Hammerfall is available from ALSA, drivers for the Delta cards are available from both ALSA and 4Front.

Boarding The Bus

If you look at the layout of your computer's motherboard you will notice connection traces running between the expansion card slots and the CPU. These connections form a path for data transfer between the CPU and your peripherals; that pathway is known as a bus. Buses come in different kinds and capabilities, and you may need to know something about your system's bus in order to match your soundcard with the correct driver.


Linux support for Industry Standard Interface (ISA) bus soundcards dates from Hannu Savolainen's original kernel driver (written in 1992) for the original 8-bit SoundBlaster. The ISA bus is not generally regarded as sufficiently fast enough for any but the most basic sound services, but if that's what you have then you'll be happy to note that the kernel modules, ALSA, and OSS/Linux all support soundcards made for the now outdated bus.

Plug and Play

Some Linux distributions detect so-called ISA "Plug and Play" (PnP) soundcards during the installation process. If yours did not, or if you're adding a PnP soundcard to your system, you must run the PnP tools pnpdump and isapnp to create and run a PnP configuration file for your soundcard (see the respective man pages for more information regarding the PnP utilities). PnP card detection may also be enabled in the kernel configuration, but the reader should be aware that some cards are more "Plug and Pray" than "Plug and Play", and that you may still need to run the PnP tools to correctly configure your card. Some PnP soundcards are supported by the kernel modules, but you'll find much wider support from the ALSA and OSS/Linux packages.


The Peripherals Component Interconnect (PCI) bus is considered fast enough for serious audio work, and PCI soundcards are currently the norm in modern desktop computers. PCI allows efficient two-way communication with the host CPU, so PCI soundcards are most easily probed and detected by the kernel and OSS/Linux setup utilities. As with the PnP cards, some PCI audio chipsets have driver modules included with the kernel sources, but again a much wider selection is available from ALSA and OSS/Linux. If you are compiling your own kernel you must be sure to enable PCI support in the section for IDE/ATA/ATAPI block devices.


The Linux kernel configuration help for the USB support option offers this definition of the new bus:

The Universal Serial Bus (USB) is a specification for a serial bus subsystem which offers higher speeds and more features than the traditional PC serial port. The bus supplies power to peripherals and allows for hot swapping. Up to 127 USB peripherals can be connected to a single USB port in a tree structure. The USB port is the root of the tree, the peripherals are the leaves and the inner nodes are special USB devices called hubs.

Few audio devices have yet appeared for the USB interface, but at least one USB audio device (the Swissonic Studio D) is reported to work with a recent Linux kernel running on a Toshiba Satellite 2105CDS laptop. The Linux USB Project lists a variety of USB audio devices running under Linux, including digital speakers, a minidisc recorder (the Sony MZ-R70PC), and a 20-bit digital audio output device (the StereoLink 1200). USB audio is not included in the regular kernel sound configuration: you must configure the kernel for both general USB support and USB audio.

Miscellany: PCMCIA Cards And Serial Port MIDI

Yes, the Personal Computer Memory Card International Association (PCMCIA) has a bus. PCMCIA card slots are primarily found on laptop and notebook computers, but soundcard support is sparse under Linux. As of March 9 2001 David Hinds listed no soundcards in his list of "officially" supported PCMCIA cards. Werner Heuser's list of "unofficially" supported cards includes only five soundcards, and only one is verified as working (under the kernel modules, I assume). However, one exceptional PCMCIA audio card is available with an independently maintained Linux driver: the Communication Automation Corporation's Bullet3 is a rather remarkable card that includes a Texas Instrument TMS320C32 DSP and a Crystal Semiconductor CS4231A multimedia codec. A free and unsupported Linux driver is available from CAC's ftp site.

The Linux Soundcard Driver


Inside the Driver

The Future of Linux Audio Driver Support

The standard RS232 serial port is found on most desktop computers, including most laptops. It is not generally regarded as an option for audio interfacing, but it has found some application as an alternative external MIDI port. The KEY MIDIator MS-124W MIDI interface is known to run with Linux: drivers are available from George Hansper's MIDI Axis, John Stone's MIDI on UNIX page, and Dave Topper's MIDIator hack page.

Other Considerations

The following table compares the major sound driver sources for cost, ease of installation and configuration, technical support, and availability of source code:



Ease (0-5):


Sources available:









mail list







Armed with the information you've gathered here you should be able to make a wise decision in your choice of sound card drivers. The next section deals with the more technical aspects of a Linux soundcard driver and some examples of applications programming code for the device driver.

Linux Online Certification

Linux/Unix System Administration Certificate Series
Linux/Unix System Administration Certificate Series — This course series targets both beginning and intermediate Linux/Unix users who want to acquire advanced system administration skills, and to back those skills up with a Certificate from the University of Illinois Office of Continuing Education.

Enroll today!

Linux Resources
  • Linux Online
  • The Linux FAQ
  • Linux Kernel Archives
  • Kernel Traffic

  • Sponsored by: