Langue: en

Version: 300379 (debian - 07/07/09)

Section: 4 (Pilotes et protocoles réseau)

BSD mandoc


snd_emu10kx - Creative SoundBlaster Live! and Audigy sound cards device driver


To compile this driver into the kernel, place the following lines in your kernel configuration file:
device sound device snd_emu10kx

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf5:



The bridge driver allows the generic audio driver sound(4) to attach to Creative sound cards based on the EMU10K1, CA0100, CA0101, CA0102 and CA0108 DSPs.

The sound cards have a PCM part, which is accessible through one to five pcm(4) devices (see Sx MULTICHANNEL PLAYBACK for details), and MPU401-compatible MIDI I/O controller, which is accessible through the midi device. Wave table synthesizer support is not available.


The driver supports the following sound cards:

The driver does not support the following sound cards (although they have names similar to some supported ones):


By default the driver is loaded with multichannel playback capabilities enabled. If you do not set the hint.emu10kx.0.multichannel_disabled option in your loader.conf5 configuration file you will get up to five DSP devices, one for each sound card output. You can use additional software (like audio/pulseaudio from The Ports Collection to do sound stream demultiplexing. Only ``FRONT'' output can play and record sound from external sources (like line or S/PDIF inputs).


By default multichannel recording capabilities are not enabled when you load the driver. If you enable the hint.emu10kx.0.multichannel_recording option in loader.conf5 you will get one more DSP device that is rate-locked to 48kHz/16bit/mono. This is actually 48kHz/16bit/32 channels on SB Live! cards and 48kHz/16bit/64channels on Audigy cards, but the current implementation of the sound subsystem does not support such an amount of PCM channels. This device can not be opened for read, thus confusing many applications.

Within a multichannel stream, the first half (0-15 or 0-31) is a copy of all DSP outputs, the second half (15-30 or 32-63) is a copy of some DSP inputs. On Live! cards the last substream (31) is used as a sync stream and is always set to 0xc0de. Audigy cards do not need such sync data, because a stream always starts with substream 0.

SB Live! substream map (in byte offsets, each substream is 2 bytes LE)

PCM streams 0..15
+0x20, +0x22
PCM inputs: front left, front right, rear left, rear right, center, sub
DSP inputs 0..8:
sync substream (0xc0de)

Audigy substream map (in byte offsets, each substream is 2 bytes LE)

PCM streams 0..31
PCM inputs: front LR, rear LR, center, sub, ...
DSP inputs 0..16


These are the controls available through the standard OSS programming interface. You can use mixer(8) to change them.

On EMU10K1-based cards the OSS mixer directly controls the AC97 codec. On newer cards the OSS mixer controls some parameters of the AC97 codec and some DSP-based mixer controls.

Qq vol
mixer control for the overall sound volume.
Qq pcm
mixer control for the PCM playback volume. It controls only front output volume in multichannel mode and all output volume in single channel mode.
Qq rec
mixer control acts very differently on EMU10K1 and other cards. On EMU10K1 cards it controls the AC97 codec recording level. On non-EMU10K1 cards it controls the amount of AC97 ``stereo mix''
 entering the DSP. AC97 recording level and AC97 recording source are fixed on CA0100, CA0101, CA0102 and CA0108 cards. The AC97 recording levels are always set to maximum and recording source is always ``stereo mix ''
Qq dig1
is a CD S/PDIF (on-card) volume control
Qq dig2
is an AudigyDrive S/PDIF (Audigy series) or TOSLink (SB Live! series) volume control
Qq dig3
is an on-card S/PDIF volume control
Qq line2
is AudigyDrive "Line In 2" volume control
Qq line3
is AudigyDrive "AUX In 2" volume control

Other OSS mixer controls control the inputs of the AC97 codec.


You can control some of EMU10Kx's operation and configuration parameters through dev.emu10kx. Aq X sysctls. These sysctl(8) values are temporary and should not be relied upon.


Loader tunables are used to set driver configuration. Tunables can be set at the loader(8) prompt before booting the kernel or they can be stored in /boot/loader.conf These tunables cannot be changed from a machine sysctl(8) entry after boot, but you can change them using kenv(1) before loading the driver.
hint.emu10kx. Ao X Ac .disabled
Disables loading a driver instance.
hint.emu10kx. Ao X Ac .multichannel_disabled
Disables multichannel playback support, when one card is represented as several PCM devices.
hint.emu10kx. Ao X Ac .multichannel_recording
Enables experimental multichannel recording support.
hint.emu10kx. Ao X Ac .debug
Set debug output level.
No additional debug options enabled
Enables all DSP outputs to be connected, even those that are known to be unused on a particular card.
Additional debug messages about in-driver events will be printed.
Additional debug messages will be printed when memory allocation fails.


management interface




The device driver first appeared in Fx 7.0 .


An -nosplit The PCM part of the driver is based on the snd_emu10k14 SB Live! driver by An Cameron Grant Aq . The MIDI interface is based on the snd_emu10k14 MIDI interface code by An Mathew Kanner Aq . The device driver and this manual page were written by An Yuriy Tsibizov .


The driver does not detect lost S/PDIF signals and produces noise when S/PDIF is not connected and S/PDIF volume is not zero.

The PCM driver cannot detect the presence of Live!Drive or AudigyDrive breakout boxes and tries to use them (and list their connectors in the mixer).

The MIDI driver cannot detect the presence of Live!Drive or AudigyDrive breakout boxes and tries to enable the IR receiver on them anyway.