Mein neues Mainboard GigaByte P35-DS3L hat zwei SPDIF-Ausgänge, welche ALSA nicht standardmässig nutzt. Ich habe mir also mal die Mühe gemacht, den digitalen Ausgang an den Start zu bringen. Zusätzlich sollte auch Softwaremixing funktionieren, damit mehrere Audiostreams gleichzeitig wiedergegeben werden können und auch das Mikro sollte funktionieren. Auf dem Board sitzt eine Intel HD Audio „Karte“ mit einem Realtek ALC 888 Chipsatz. Das ergibt folgende Kernelkonfiguration:

Alsa Kernel Config 1 Alsa Kernel Config 2

Wie man sieht, hab ich unter PCI-Devices nur Intel HD Audio als Modul ausgewählt. Um den Sound beim Systemstart hochzufahren müssen die Module geladen werden. Meine /etc/modules.autoload.d/kernel-2.6 sieht folgendermassen aus:

snd-hda-intel
snd-seq-device
snd-pcm-oss

Wenn die Module geladen wurden kann man mal mit aplay -l und aplay -L schauen, was die Soundkarte so hergibt: henni@henni ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital]
Subdevices: 0/1
Subdevice #0: subdevice #0

henni@henni ~ $ aplay -L
front:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
Front speakers
surround40:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
HDA Intel, ALC883 Digital
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)

Man sieht, dass die Karte zwei Geräte hat. Ein analoges und ein digitales. Das digitale Gerät ist zu finden unter card 0 / device 1. Das werden wir jetzt in unsere ~/.asoundrc einflechten:

henni@henni ~ $ cat .asoundrc
pcm.!default {
type plug
slave.pcm "mic"
}

# this is needed for the mic
pcm.card0 {
type hw
card 0
}

# this enables the mic
pcm.mic {
type asym
playback.pcm "dmixer"
capture.pcm "card0"
}

# dmix output over spdif
pcm.dmixer {
type dmix
ipc_key 1024 # must be unique!
ipc_perm 0660 # sound for everybody (at least in your group)
slave {
pcm "hw:0,1"
channels 6
period_time 0
period_size 512
buffer_time 0
buffer_size 4096
}

bindings {
0 0 # map from 0 to 0
1 1 # map from 1 to 1
}
}

Zum Schluss muss man noch den Mixer einstellen, damit auch tatsächlich Sound kommt:
Alsamixer Playback Alsamixer Capture