In the Windows and Mac worlds, the end user rarely worries about drivers. Hardware manufacturers normally provide binaries, complete with installation utilities and other amenities (mixers, example programs, players, etc.), and updates are often available for free on the Internet. Alas, Linux does not yet enjoy the happy status of those worlds: manufacturers rarely supply native Linux drivers in any form, and Linux developers must often go to great efforts to write usable drivers for the manufacturer's hardware.
Linux applications depend on drivers to enable communications between an application and a hardware device such as a printer, CD-ROM drive, or soundcard. A working Linux sound system can be thought of as a sandwich, with application software as the top slice of bread and sound hardware (soundcard and speakers) as the bottom slice. Sandwiched in the middle is the meat (at least, the meat of this article) -- the audio device control software or soundcard device driver.
A soundcard driver provides the communication interface between an
application and the audio system hardware. The driver operates within
a multistage process: an application requests audio services from the
kernel, the kernel summons the appropriate driver module (e.g.,
/usr/lib/modules/2.4.0/sound/es1370.o for my SB PCI128)
to communicate with the soundcard, and the driver manages the
bit-level manipulations of the soundcard's audio chipset. The driver
acts as a translator for commands received from an application (which
generally doesn't care whether my soundcard is a SoundBlaster Live
Platinum or a PAS16), turning them into the very hardware-specific
commands unique to the actual card, i.e., if I want sound from my SB
Live I must have a Linux-compatible SB Live device driver.
Linux Device Drivers, 2nd Edition
Since drivers are hardware-specific, it should come as no surprise that one of the most frequently asked questions in Linux discussion groups is "Where can I find a driver for my [insert card name here] soundcard ?!". This article will help answer that question and others regarding the somewhat obscure world of Linux audio device drivers:
Let's start by taking a look at the various sources for Linux soundcard drivers.
Copyright © 2009 O'Reilly Media, Inc.