This document tries to help you install and use a Sound Blaster AWE 32 or Sound Blaster AWE 64 from Creative Labs in your Linux system. The reference system is a Debian GNU/Linux system on an Intel i586 platform, but it should work with any other Linux distribution as well as on every platform that is supported by the Linux sound driver (differences are mentioned where they appear, if any).
Be sure to read the Linux Sound HOWTO (see section Additional Information) carefully. I consider my document a supplement to the Sound HOWTO, and often you can find more information about things I have left out there.
The SB AWE 32 sound card provides a raw audio device, standard OPL-2/OPL-3 synthesis, a MPU-401 MIDI port and 32 voices EMU 8000 Wave Table synthesis (for an explanation on these and other terms see the Linux Sound HOWTO). One goal of this document is to help you get all these features to work properly.
The SB AWE 64 has the capabilities of the SB AWE 32 and an additional Wave Guide synthesis Creative Labs is especially proud of. The problem for Linux users is, that the additional 32 voices are software generated and output via the raw wave devices. Because Creative Labs sees no market in Linux drivers, a Wave Guide synthesis sound driver is only available for Windows 3.1 and Windows 95.
This means that, from a Linux user's point of view, the SB AWE 32 and SB AWE 64 are almost identical. From now on I will only refer to the SB AWE in general and will only mention differences where they appear (if any).
Most modern cards for the Intel platform are ISA PnP cards, which is an abbreviation for ``Plug and Play''. This means, that the card has to be configured by the operation system, and this has to be done through an initialization routine at boot time. In general, there are at least three possible ways to do this:
The most commonly used software to initialize PnP cards under Linux are the ``isapnptools'' (see section Sources and section Getting Started). They provide a predictable way to configure all ISA PnP cards in your machine, not only your sound card.
Some device drivers can be built as modules instead of compiling them into the kernel. You can find more information about modules in the Kernel HOWTO and the Module HOWTO (see section Additional Information).
If you have a PnP card, you must install sound support as a loadable kernel module. This means, that you can't build the sound driver into the kernel, but you will have to build it as a module that can be loaded into the kernel at runtime. This is because the kernel will be installed before your ISA PnP card can be configured, and your sound driver has to be loaded after your ISA PnP card is configured.
The sound kernel module can be loaded manually via
insmod sound or
modprobe -a sound or in the appropriate boot script of your Linux system
(in Debian, it is sufficient to append a single line containing
/etc/modules). Another approach is to
kerneld, a daemon that installs and removes kernel
modules as needed.
kerneld may not be the best solution for the AWE
sound driver module, because it takes time to load the module in the
kernel, especially if you want to use Wave Table synthesis and load big
Sound Font banks, which you have to do each time after inserting the
kerneld removes unused modules after one minute by default,
it is perhaps better to insert the sound module manually or at boot
time. Note that inserting the sound module manually or at boot time does prevent
kerneld from removing it when it is idle. By the way: You can
manually insert the sound module and use
kerneld at the same
time. The two methods don't conflict, but
kerneld does not care
about the sound module anymore.
This is especially useful if your mixer settings get disturbed after
removing and reinstalling the module. A solution for this problem will be
given in section
(there is described how you can start your mixer automatically
when the sound module gets inserted). However, it takes time for
kerneld to load the module, to load the sound font bank and to start
your mixer, and for this and other reasons it is better to install the sound module
at boot time and not let
kerneld remove it.
You can install sound support in the kernel as a built-in or as a loadable module. If you have a PnP card, you have to install sound support as a module, because the PnP card needs to be initialized via the isapnptools before the module gets installed.
As you can imagine, you will have to recompile the kernel. I will give you a few hints about it below. For now, let's talk about the sound support in the kernel source. The kernel ships with the Free (Lite) Version of the OSS (USS) sound driver. The current version of this driver (3.5.4) does not support the SB AWE in full, but the SB 16 part of it. So you can have a raw audio device and OPL-2/OPL-3 synthesis if you use it, but you will not be able to play midi music with Wave Table synthesis.
If you want to use the Wave Table device, you can either buy the commercial sound driver from 4Front Technologies (someone please confirm me that it can do it, please), or patch your kernel with the AWE 32 Sound Driver Extension by Takashi Iwai. The former is beyond the scope of this document, I assume you want to use the latter.
The AWE32 Sound Driver Extension (see section Sources) is published under the GNU copyright license and ships with a number of tools to make use of the EMU 8000 wave synthesis of the SB AWE cards.
awedrv software is already included in newer kernel source trees
(starting from some 2.1.x kernels, but perhaps you want to upgrade the
sources in your kernel tree, they may be old.